The subject specification relates generally to voltage application and in particular to sensing current from a voltage application upon a memory cell.
Recent developments have taken place regarding storage of information in a digital format. Storing information in a digital format includes storing individual bits of information as an ‘I’ (e.g., a high state) or as an ‘O’ (e.g., a low state). This type of information storage permeates many applications including photography, interpersonal communication, music recording, as well as others. Various memory types exist to digitally store information with different characteristics. These memory types have different characteristics that make them applicable for different types of applications. For example, a memory type that cannot be re-written can be beneficial for data that is necessary for a system to operate properly. This provides a greater likelihood that the information will be available when needed by the system.
One specific development is the introduction of flash memory technology. Flash memory is a memory type that is readable, re-writeable, and non-volatile. In addition, many flash memory devices are small and portable. This allows for usage of flash memory in an array of personal applications. A common flash memory device can be accessed by an array of different electronic devices, where electronic devices likely read information stored on flash memory device. The ability to re-write to flash memory allows a user to use the memory as temporary storage location. For example, a user can store a photograph in a flash memory device and transfer the photograph to a desktop computer. Once the transfer is complete, the user can store to cells that were previously used. In addition, flash memory is easily transportable since it does not need a constant source of power to retain memory.
The following presents a simplified summary of the specification in order to provide a basic understanding of some aspects of the specification. This summary is not an extensive overview of the specification. It is intended to neither identify key or critical elements of the specification nor delineate the scope of the specification. Its sole purpose is to present some concepts of the specification in a simplified form as a prelude to the more detailed description that is presented later.
Application of excessive voltage to a memory cell can cause damage to the cell or destroy the cell. Therefore, the subject specification allows for sensing current that results from the application of voltage upon the memory cell. Based on current, a sensor component can determine the state of the cell and if the voltage applied to the memory cell is at a dangerous level. Based on determinations by the sensor component, the application of voltage can be stopped before there is damage to the memory cell.
In addition, the subject specification allows for improved operation of a flash memory device. Since there is tracking of the current that is produced from a state change, voltage application can be changed in real time to allow for optimal memory cell manipulation. If the current of a cell is dropping, then there can be an increase in voltage upon the memory cell to allow for a faster state change if an increased voltage level will not damage the memory cell.
The following description and the annexed drawings set forth certain illustrative aspects of the specification. These aspects are indicative, however, of but a few of the various ways in which the principles of the specification may be employed. Other advantages and novel features of the specification will become apparent from the following detailed description of the specification when considered in conjunction with the drawings.
a illustrates a representative first part of a methodology in accordance with an aspect of the subject specification.
b illustrates a representative second part of a methodology in accordance with an aspect of the subject specification.
The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.
As used in this application, the terms “component,” “module,” “system”, “interface”, or the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. As another example, an interface can include I/O components as well as associated processor, application, and/or API components. The designation ‘I’ and ‘1’ can be used to signify a high logical state and are to be used interchangeably. The designation ‘O’ and ‘0’ can be used to signify a low logical state and are to be used interchangeably.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
In another embodiment, the receiving component 102 receives requests from within the flash memory device 100 to change the state of the cell component 104. For example, the flash memory device 100 can configure to erase information if it has not been accessed in a specific period (e.g., the information has not been accessed in twenty-four months). A command can arrive from another portion of the flash memory device 100 to erase information after the specific period. In a further embodiment, the receiving component 102 can communicate wirelessly to receive commands for state changes on the cell component 104.
A storage component 106 operates to keep a record of various activities that take place with regard to the flash memory device 100. For example, each time a command is received by the receiving component 102, the storage component 106 can create a record of the command. The storage component 106 can also make comparisons based on information concerning the request and execution of the request. Records of comparisons can also be saved in the storage component 106. Furthermore, the storage component 106 can keep records about a voltage application component 108, sensor component 110, and/or cell component 104.
A voltage application component 108 places a voltage upon the cell component 104. Application of a voltage upon the cell component 104 includes applying a current to the cell component 104. A sensor component 110 can constantly determine what current is passing through it, which is representative of the voltage applied to the cell component 104 and how the cell component 104 is reacting to the application of current. This allows for a verification voltage and a state-change voltage to take place at the same time.
In another embodiment, the sensor component 110 only takes samples of the current passing through it as opposed to constantly determining the current. For example, the sensor component 110 can takes samples at a specific increment of time (e.g., every nanosecond). In another example, the sensor component 110 performs intelligent sampling of current. The sensor component 110 can increase or decrease the duration between samples taken based on the results of a sample. If the current is at a level that is near a state change for the cell component 104, then the sensor component 110 can increase the amount of samples taken.
The sensor component 110 can have several capabilities toward regulating operation of the flash memory device 100 and in turn the voltage application component 108. In one embodiment, the sensor component 110 has the capability of stopping a voltage application. For example, the sensor component 110 can determine that the cell component 104 has changed states and the application of any more voltage could cause damage to the cell component 104. Therefore, the sensor component 110 stops voltage application. Regulating can be considered any action the sensor component takes in response to a sensed current and/or voltage. For example, regulating can be forcing the voltage application component 108 to stop providing voltage. In another example, regulating can be informing the voltage application component 108 as to the status of voltage application without forcing an action.
In another embodiment, the sensor component 110 regulates operation by sending a message to the voltage application component 108. For example, the sensor component 110 can determine that the state of the cell component 104 has changed and application of any more voltage could cause damage to the cell component 104. The sensor component 110 can send a message to the voltage application component 108 advising that voltage application should stop. However, the voltage application component 108 ultimately determines when to stop voltage application.
In a further embodiment, the sensor component 110 can communicate with the storage component 106. The characteristics of voltage application upon the cell component 104 can be saved in the storage component 106. For example, the rate in which the state changes in the cell component 104 can be determined by the sensor component 110. The sensor component 110 can keep a record of this and store the record in the storage component 106.
In operation, voltage is applied to the charge-holding component to change a state of the cell component 104. The sensor component 110 determines current that passes through it to detect the state of the charge-holding component. For example, one Amp can initially pass through the sensor component 110. However, as the state of the cell changes, current can switch to two Amps. The sensor component 110 can sense the change and have internal logic to determine how to proceed.
Under Ohm's law, current is equal to voltage over resistance. Voltage is known because it is supplied from the voltage application component 508 and this information can be accessed by the sensor component 510. The sensor component 508 determines the current traveling to the cell component 504. With the voltage and current known, the resistance can be determined of the cell component 504. Resistance can relate to a state of the cell component. The sensor component 510 can reference the storage component to determine what resistance equals what state (e.g., 1-Ohm equals ‘0010’). The sensor component 510 can communicate with the voltage application component 508 with appropriate information.
In one embodiment, a rise in current can mean the cell is almost complete with a state change. Therefore, the sensor component 110 instructs the voltage application component 106 to lower or stop voltage supply. In another embodiment, a rise in current can mean more voltage should be applied to the cell component. Therefore, the sensor component 110 instructs the voltage application component to increase the voltage supply. The sensor component 110 can specifically tell the voltage application component 108 what voltage to supply. However, the sensor component 110 can instruct the voltage application component 108 to increase the voltage without a recommendation as to what voltage to apply.
The subject specification allows for state changing without switching between a verification and state changing. Performing the switch uses a lot of overhead and draws a large amount of system resources. This allows for operation in real time. This can take place for operations other then changing the state of a cell component in flash memory. For example, information in the subject specification can apply to charging a capacitor. Therefore, a cell component represents any component that can react to a voltage application. A cell component includes a memory cell.
In the displayed configuration, a relationship should be known between a verify/read level and a state change current. This allows the sensor component 210 to know the difference between a state change voltage application and a read voltage application. In addition, the configuration 200 can use a fixed, stepped, or ramped gain and a fixed, stepped, or ramped drain. Use of this configuration can eliminate a verify/state-change/verify sequence and instead have verification take place during a state-change. Core current could be higher during a state-change, but it could average out with a faster state-change speed.
In the displayed configuration, a relationship should be known between a verify/read level and a state change current. This allows the sensor component 310 to know the difference between a state-change voltage application and a read voltage application. In addition, the configuration 300 can use a fixed, stepped, or ramped gain and a fixed, stepped, or ramped drain. Use of this configuration can eliminate a verify/state-change/verify sequence and instead have verification take place during a state-change. Core current could be higher during a state-change, but it could average out with a faster state-change speed.
An error check component 512 can process errors found in the flash memory device 500. Processing errors can entail a variety of actions. For example, the error check component 512 can attempt to correct errors that take place concerning the flash memory device 500. In another example, the error check component 512 can simply identify the errors and store error information in the storage component 506. In a further example, the error check component can attempt to determine why an error took place without actually correcting the error. This information can be communicated with an auxiliary device. It is to be appreciated that the error check component can process errors found in components in other portions of the subject specification.
In one embodiment, the error check component 512 performs checks relating to the receiving component 502. For example, the receiving component 502 cannot accept commands from remote locations (e.g., a wireless device sending an instruction to the receiving component). The error check component can store a record of this error in the storage component 506. Later, an auxiliary diagnostic system can access the records of the storage location 506 and attempt to correct and listed errors.
In another embodiment, the error check component 512 performs checks relating to the storage component 506. For example, the storage component 506 can be deleting information if it has not been accessed in a certain amount of time (e.g., one month). However, there is no instruction for the storage component 506 to operate in this manner. Therefore, this would be an improper action by the storage component 506. The error check component 512 can attempt to stop the storage component 506 from deleting information when it should not delete information.
In a further embodiment, the error check component 512 performs checks relating to the voltage application component 508. The error check component 512 can hold information on what standard voltages should be applied to the cell component 504. The voltage application component 508 can attempt to apply a voltage that is well beyond normal limits. The error check component 512 can identify that the voltage level is not within normal limits and stop the application from taking place. This can be beneficial because the application of a wrong voltage can damage or destroy the cell component 504.
In yet another embodiment, the error check component 512 performs checks relating to the sensor component 510. For example, the sensor component 510 can malfunction and not correctly sense current or not sense current at all. The error check component 512 can act as a secondary sensor component and attempt to make sure the cell component 504 is not damaged if the sensor component 510 fails. In addition, the error component can instruct a shutdown of the voltage application component 508 if the sensor component is in error.
In yet a further embodiment, the error check component 512 performs checks relating to the cell component 504. For example, the cell component 504 can provide inconsistent reaction to the application of voltage. This can lead to a misread by the sensor component 510 and ultimately lead to damage to the cell component 504. The error check component 512 can identify the error of the cell component and 504 and attempt to protect the cell component 504 from damage.
An optimization component 602 operates to allow the flash memory device 600 to operate at full or near-full potential. In one embodiment, the optimization component 602 processes the command received by the receiving component 604. During processing, the optimization component 602 determines what voltages should be applied to the cell component to allow for the fastest state change (e.g., information to allow the voltage application component to operate more efficiently). This can take place by the optimization component 602 observing characteristics of the cell component 606 and making estimations based on a desired state. In general, the optimization component 602 calculates efficiency information. Calculated information is transferred to the voltage application component 610 where the calculated information is implemented. The senor component 612 can regulate the implementation of calculated information and override voltage application if necessary or desirable.
In another embodiment, the optimization component 602 streamlines operations within the flash memory device. For example, process raw data into a format allowable for storage. This will allow other components to perform other tasks and allow for quicker access to information in the storage component 608.
An authorization component 702 performs a check to determine if the state of the cell component should change. For example, the cell component 706 can contain important information that would cause a detrimental situation if it were to be erased (e.g., a password to access financial records). The authorization component 702 can check to make sure the flash memory device 700 received an authorized request. That can be done in a number of different manners.
In one embodiment, the authorization component 702 can check if a request to change a state came from a specific user. Information on authorized users can be saved on the storage component 708 or it can be saved in internal memory of the authorization component 702. In another embodiment, the authorization component 702 has a password that should be provided before a state change takes place. In a further embodiment, a request contains authentication information that should be checked by the authorization component 702 before a state change takes place on a cell component 706. For each embodiment, the authorization component 702 can reject a request that is considered unauthorized.
Ultimately, the voltage application component 710 applies a voltage upon the cell component 706. The sensor component 712 tracks current from the application of voltage upon the cell component. Based on various parameters, the sensor component 712 can change the amount of voltage applied by the voltage application component 710. For example, if the current is drastically changing, then it could be a sign that the voltage should be stopped. Therefore, the sensor component can stop voltage application upon the cell component 706.
A notification component 802 sends messages about voltage application upon the cell component 806 (e.g., functionality of the flash memory device 800). The notification component 802 can send notices about the displayed components as well as related component within the flash memory device 800. Furthermore, the notification component 802 can send information about devices in conjunction with the flash memory device 800 (e.g., an attached person computer that made the request).
For example, the notification component 802 can compile a report about operations within the flash memory device 800. The report can contain an array of information, ranging from where to request originated to the performance of the sensor component 812 during operation. The report can be stored in the storage component 808 and send out to an auxiliary device.
A check component 902 verifies functions within the flash memory device 900. In one embodiment, the check component 902 compares information received in the request (e.g., host system information) with information located in the storage component 908. In another embodiment, the check component 902 can determine if the voltage application component 910 is applying a correct amount of voltage. The check component 902 can make a record of determinations made or attempt to correct inconsistent information. For example, if the voltage application component is applying 10 volts, but request stated 9.98 volts should be used, then the check component 902 can force the voltage application component 910 to apply the proper voltage. In a further embodiment, the check component 902 can request a user to verify a state change request. If the request is not properly verified, then it can be denied.
A page buffer 1004 is a temporary placeholder for information, such as an instruction passing from a receiving component 102 of
A memory array 1006 is a storage location for a flash memory device 1000. Cell components disclosed in various parts of the subject specification can form a memory array 1006. Typically, a memory array 1006 comprises a number of individual cell components that can contain information in bits, with typical cells holding one to four bits for information. It is to be appreciated that information of the subject specification can apply to cell components capable of containing more then four bits of information. In one embodiment, various storage components disclosed in the subject specification integrate into the memory array 1006. In another embodiment, storage components disclosed in the subject specification are independent of the memory array 1006 and can be of a different memory type then the memory array 1006.
A sensing block 1008 functions to monitor occurrences that take place within the flash memory device 1000. For example, a sensing block 1008 can determine if a voltage application component disclosed in the subject specification has begun operation. A pump 1010 provides a high voltage for operations that require such a voltage. For example, some state-change functions require a relatively high level of voltage for proper operation. The pump 1010 can integrate with the voltage application component 108 of
A data flow control unit 1014 controls many major functions of the flash memory device 1000. Functions generally includes writes, reads and erases, as well as several of the functions performed by components of the subject specification. For example, the voltage application component 108 can integrate with the data flow control unit 1014 to allow for state changes. However, in another embodiment, the voltage application component can integrate with the pump 1010. In addition, other components, such as the sensor component 110 of
An observation component 1102 monitors a response of voltage application upon a cell component. Commonly, this takes place by observing current that application of voltage upon a cell component produces. A balance component 1104 regulates a voltage application component as to the response of the cell component from the voltage application. For example, the balance component 1104 sends information observed by the observation component 1102 to a voltage application component.
Information can include instructions that the voltage application component must follow and/or data upon which the voltage application component can choose to act. The balance component 1104 can send information by using a communication component 1106. The communication component 1106 can communicate through a variety of manners, including wireless communication.
In addition, the sensor component 1108 can include a storage component 1108. Information about the observation component 1102, balance component 1104, and/or communication component 1106 can be saved in the storage component 1108. Furthermore, intelligent decisions made by the sensor component 1100 can refer to the storage component 1108. For example, a current can change from one Amp to half of an Amp. The storage component 1108 can contain information about what a current change signifies. The balance component 1104 accesses contained information and can make a determination on how to regulate based on that information.
A voltage is applied to change the state of the cell component 1206. Action 1206 follows guidelines of the instruction received at event 1202. As the voltage is applied to the cell component to change the state 1206, there is sensing of current passing from a voltage supply to a cell component 1208. As the sensing takes place, two checks occur. The first check 1210 determines if an applied voltage level should change. The sensing of current 1208 can be configured to determine if there should be a voltage change based on the observed current. For example, the observed current can change from 0.5 Amp to 1 Amp. This change can signify that there should be a change in an applied voltage upon a cell component. If there needs to be a new voltage, then the methodology 1200 returns to action 1206.
A second check determines if voltage application should stop 1212. When a cell component reaches a desired state, further programming could render damage to the cell component. Therefore, the application should be stopped 1214. If the application should not be stopped, then the methodology 1200 returns to a check if the applied voltage should change 1210.
a and
If the request is authorized, then the methodology 1300 can verify the request 1310. For example, the request can be compared with similar requests to determine how the methodology should perform in later actions. Furthermore, verification allows for a check with a user. For example, if there is a request to change an academic grade file, a conformation request to verify can be produced. While not shown, the verification can act as a check. An unverified request can be denied.
A verified request can be optimized, which can entail calculating an optimization 1312. This allows the methodology 1300 to operate at an improved efficiency. For example, there can be a calculation of a cell component state and a comparison between a current state and a desired state. The optimization component can calculate a voltage that is expected to obtain the new state in the fastest time possible. There is engagement of error checks related to voltage administration upon the cell component 1314. This can entail identifying errors or attempting to fix errors related to a state change.
A voltage is administered to change the state of the cell component 1316. In common operation, action 1316 follows instruction received in action 1302 in conjunction with optimization characteristics calculated at event 1312. As there is administration of voltage to the cell component to change the state 1316, there is sensing of current passing from a voltage supply to a cell component 1318. 1318 is sensing an impact from a voltage administration upon a cell component.
As the sensing takes place, two checks occur. The first check 1320 determines if an applied voltage level should change. According to one embodiment of the subject specification, the change is to allow the methodology 1300 to operate faster. The sensing of current 1318 can be configured to determine if there should be a voltage change based on the observed current. For example, the observed current can change from two Amps to one Amp. An observed current change such as this can signify that there should be a change in an applied voltage upon a cell component. If there needs to be a new voltage, then the methodology 1300 returns to action 1316.
A second check determines if voltage application should stop 1322. When a cell component reaches a desired state, further programming could render damage to the cell component or destroy the cell component. Therefore, the application should be stopped 1324 if the state has successfully changed. The checks 1320 and 1322 show communication between sensing and voltage application. Therefore, these checks show sending information related to the impact from the voltage administration. In addition changing the voltage and/or stopping the voltage show implementing sent information. If the application should not be stopped, then the methodology 1300 returns to a check if the applied voltage should change 1320. Notification can be supplied concerning various actions disclosed in the methodology 1300.
What has been described above includes examples of the subject specification. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the subject specification, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject specification are possible. Accordingly, the subject specification is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.