The present invention relates to a storage device and a computer using the same.
A magnetic-disc storage device is commonly used as the auxiliary storage device for information appliances. In this magnetic-disc storage device, data reading/writing operations are performed for each of storage units which are referred to as “sectors”.
In recent years, in substitution for the magnetic-disc storage device as described above, there has been a considerable increase in the alternative employment of storage devices which use semiconductor memories as their storage media. Of these storage devices, a storage device which uses a flash memory as its storage medium is gradually becoming the mainstream at present. Here, the flash memory is a kind of the EEPROM (:Electrically Erasable Programmable Read-Only Memory), i.e., the electrically-erasable and rewritable nonvolatile semiconductor memory.
This flash memory is superior to the magnetic-disc storage device in its data reading/writing speeds. In association with the use of this flash memory, however, there exist the following four limitations: The first limitation is as follows: The unit of reading/writing data (which, generally, is referred to as “a page”) and the unit of erasing data (which, generally, is referred to as “a block”, and which is constituted from a plurality of pages) are determined and fixed. Accordingly, the block is larger than the page in size. The second limitation is as follows: When overwriting data, the data needs to be rewritten again after erasing the data once temporarily. The third limitation is as follows: When writing data into a certain page within a block, the data needs to be written in accordance with the sequence of continuous page numbers. The fourth limitation is as follows: The upper-limit of the erasing number-of-times is determined and fixed on each block basis.
In JP-A-2009-275048, the above-described flash-memory characteristics are taken into consideration. Then, based thereon, the proposal has been made concerning a memory-controlling method for executing the high-performance implementation and long-life implementation of the flash-memory-used storage device. Here, the disclosure is given as follows: “In the case of managing the nonvolatile semiconductor memory, physical blocks are classified into three types, i.e., scratch blocks, data blocks, and erased blocks. A data writing processing from a host device is performed into a scratch block. Then, if empty pages within the scratch block are occupied and lost, this scratch block is addressed as a data block thereinafter. Moreover, as a new scratch block, a single erased block is newly allocated from among the erased blocks. Also, if there occurs a shortage of the erased blocks, a data block containing a small amount of effective data is selected from among the data blocks. Furthermore, all of the effective data contained in this data block are copied into the scratch block. After that, the block erasing is performed, thereby acquiring an erased block.”
Also, in JP-A-11-203191, the proposal has been made regarding a method for suppressing the capacity of a RAM installed into the flash-memory-used storage device. Here, the disclosure is given as follows: “There are provided a first address translation table stored into a volatile storage member, and a second address translation table stored into a nonvolatile storage member. The physical location of the second address translation table stored into the nonvolatile storage member is acquired from a logical sector address associated with a request received by a reception member, and the first address translation table stored into the volatile storage member. Moreover, the second address translation table stored into the nonvolatile storage member is acquired based on the physical location acquired by a first address acquisition member. Furthermore, data is written into the nonvolatile storage member from the logical sector address associated with the request received by the reception member, and the second address translation table.”
Also, in JP-A-2010-157142, the proposal has been made concerning a method for speeding up the response speed to a data writing request from a host computer. Here, the disclosure is given as follows: “A WC (: Write Cache)-expelling control unit compares a WC-resource usage amount with an AF (:Auto Flush) threshold value Caf whose value is smaller than the upper-limit value C1mt. Then, if the WC-resource usage amount has exceeded the AF threshold value Caf, the WC-expelling control unit confirms a state of the organized arrangement in a NAND-type flash memory. Then, if the organized arrangement in the NAND-type flash memory has progressed sufficiently, the control unit expels the data out of the WC into the NAND-type flash memory earlier than usual.”
In JP-A-2009-275048, the description has been given concerning the memory-controlling method for managing a data structure in the page unit. Since this memory-controlling method manages the data in the page unit, this method allows implementation of the high-speed processing. In this memory-controlling method, however, the capacity of a logical-to-physical address translation table becomes larger as compared with the one in a memory-controlling method for managing data in the block unit. What is more, the capacity of this logical-to-physical address translation table increases in proportion to the storage capacity of the storage device. On account of these situations, executing the large-capacity implementation of the storage device requires the set-up of a large-capacity memory for storing the logical-to-physical address translation table. As a result, there exists a problem of bringing about a large-sized implementation of the storage device and an increase in its cost.
In JP-A-11-203191, the description has been given regarding the method for reducing the RAM capacity by storing the logical-to-physical address translation table in such a manner as to be partitioned into the RAM and the flash memory. According to this method, it becomes possible to accomplish the tremendous reduction in the RAM capacity, which has been set as the problem in JP-A-2009-275048. In this method, however, the writing by the mount of two pages, i.e., the address-translation-table information and the data, turns out to occur in response to a writing processing from the host computer. On account of this situation, the processing speed becomes lowered as compared with the one implemented in a case of not writing the address-translation-table information. As a result, there exists a problem of bringing about a wasted expenditure of the rewriting number-of-times of the flash memory.
In order to solve the above-described problem, a method for suppressing the lowering in the processing speed while reducing the RAM capacity simultaneously is made conceivable by employing the following scheme: Namely, the logical-to-physical address translation table is stored into the nonvolatile memory. Simultaneously, a partial content of the logical-to-physical address translation table is held into the RAM as a cache.
An example of the cache-used data-managing method like this has been disclosed in JP-A-2010-157142, i.e., the data-controlling method between the WC (:Write Cache) and the NAND-type flash memory.
In this data-controlling method, WC track information is used as the data-controlling information inside the WC. The WC track information includes information which is held in the cache, such as track addresses and in-track effective sector number. The WC track information, however, holds only the information by the amount of the cache's entry. As a result, even if basically the same cache management information is applied to the cache management of the logical-to-physical address-translation-table information, there still exists the following problem: Namely, it is impossible to grasp at which physical address within the nonvolatile memory the address-translation-table information is stored which is not held in the cache.
Accordingly, in the present invention, an object is to provide a storage device and a computer installing this storage device therein. Here, the storage device and the computer allow prevention of the lowering in the processing speed, and allow the physical-address management within the nonvolatile memory, while simultaneously allowing prevention of a large-sized implementation of the storage device and an increase in its cost.
In order to solve the above-described problems, in the present invention, the logical-to-physical address translation table is stored into the nonvolatile memory. Simultaneously, a partial content of the logical-to-physical address translation table is held into the RAM as a cache. This scheme makes it possible to suppress the lowering in the processing speed while reducing the RAM capacity simultaneously. Also, the management is performed as to at which location (i.e., at which physical address) within the nonvolatile memory the address-translation-table information is stored which is not held in the cache. Simultaneously, there is provided information for identifying whether or not the address-translation-table information is held in the cache. This scheme makes it possible to implement the cache management of the logical-to-physical address translation table.
The present application includes a plurality of configuration units for solving the above-described problems. Its one example is as follows: A storage device 2, including a nonvolatile memory 22 which includes pages 2220 and blocks 222, each of the pages 2220 being a certain predetermined unit of writing data, each of the blocks 222 being a unit of erasing data which is larger than the unit of writing data in size, a RAM 23 which is capable of performing data read/writing processings therefrom/therein, and a memory controller 21 for performing the data reading/writing processings from/into the nonvolatile memory 22 and the RAM 23, wherein the nonvolatile memory 22 stores data 221 and a plurality of partitioned translation tables 240, the writing processing of the data 221 being performed into the nonvolatile memory 22 by an instruction processing device 4, the plurality of partitioned translation tables 240 being created by partitioning, in the page (2220) unit, a logical-to-physical address translation table 220 for managing storage locations of the data 221, the RAM 23 storing a logical-to-physical address translation table cache 230 for storing at least the one or more partitioned translation tables 240, a translation-table management table 235 for managing the partitioned translation tables 240, and a cache management table 236 for managing the logical-to-physical address translation table cache 230, the translation-table management table 235 storing a cache presence-or-absence flag 2352 and a cache entry number 2355, the cache presence-or-absence flag 2352 being used for indicating that the partitioned translation tables 240 are stored into the logical-to-physical address translation table cache 230, the cache entry number 2355 being used for indicating storage destinations of the partitioned translation tables 240 in the logical-to-physical address translation table cache 230, reading/writing processings for the information in the logical-to-physical address translation table 220 between the nonvolatile memory 22 and the RAM 23 being performed in the page (2220) unit.
According to the present invention, the logical-to-physical address translation table is stored into the nonvolatile memory. Simultaneously, only a necessary partial content of the logical-to-physical address translation table is held into the RAM. This scheme makes it possible to reduce the RAM capacity. Also, the partial content of the logical-to-physical address translation table held into the RAM is used as a cache. This scheme allows implementation of a reduction in the writing number-of-times of the logical-to-physical address-translation-table information into the nonvolatile memory, thereby making it possible to suppress the lowering in the processing speed.
Objects, configurations, and effects other than the above-described ones will become apparent from explanations of the following embodiments.
a is a diagram for illustrating a data configuration example of a block header page 2221;
b is a diagram for illustrating a data configuration example of a data page 2222;
c is a diagram for illustrating a data configuration example of a table page 2223;
Hereinafter, referring to the drawings, the explanation will be given below concerning embodiments of the present invention.
Of these devices, the storage device 2 performs data reading/writing operations in accordance with processings from the instruction processing device 4.
The instruction processing device 4 processes instructions stored in the storage device 2 or the main storage memory 5, thereby performing the data reading/writing operations from/into the storage device 2 and the main storage memory 5, and performing processings for the input/output control device 6, the network control device 7, and the display device 8.
The main storage memory 5 performs the data reading/writing operations in accordance with the processings from the instruction processing device 4.
The input/output control device 6 is a device for controlling the input/output of data between (not-illustrated) external devices and the data bus 3. Mentionable examples of these external devices are a keyboard, a mouse, and the externally-installable storage device 2.
The network control device 7 is a device for controlling the input/output of data between (not-illustrated) networks and the data bus 3.
The display device 8 is a device for performing operations such as the display of data in accordance with the processings from the instruction processing device 4.
The storage device 2 includes an I/F (:interface) control unit 20, a memory controller 21, one or more nonvolatile memories 22, and a RAM 23.
The I/F control unit 20 performs the control over data between the instruction processing device 4 and the memory controller 21. The memory controller 21 performs data reading/writing operations within the nonvolatile memories 22 in accordance with the instructions from the instruction processing device 4. In accompaniment with the data reading/writing operations, the memory controller 21 performs a data updating operation within the RAM 23.
The nonvolatile memories 22 store therein a logical-to-physical address translation table 220, and data 221. Bach of the nonvolatile memories 22 described in the present embodiment refers to the following nonvolatile memory: Namely, this nonvolatile memory has a predetermined unit of writing data (i.e., a page), and a unit of erasing data (i.e., a block) which is larger than the unit of writing data in size. Also, when rewriting data, this nonvolatile memory necessitates the execution of this data erasing operation before rewriting this data. Incidentally, the contents of each nonvolatile memory 22 will be described later in detail, using
The RAM 23 stores therein a logical-to-physical address translation table cache 230, a scratch-block management table 231 (
Incidentally, the logical-to-physical address translation table cache 230 held in the RAM 23 is used for storing a partial content of the logical-to-physical address translation table 220 stored in the nonvolatile memories 22.
This RAM 23 may be a nonvolatile memory such as MRAM (:Magnetic RAM), or may be a volatile memory such as SRAM (:Static RAM) or DRAM (:Dynamic RAM). In the case of using a nonvolatile memory, however, the nonvolatile memory is required to be a one which does not necessitate the data erasing operation at the time of the data rewriting. Also, this RAM 23 may be positioned inside the memory controller 21.
The scratch-block group 223 is constituted from one or more scratch blocks 2230. Each scratch block 2230 is constituted from a block header page 2221, data pages 2222, table pages 2223, and empty pages 2224. However, each scratch block 2230 does not include either of the data pages 2222 and the table pages 2223 in some cases.
The data-block group 224 is constituted from one or more data blocks 2240. Each data block 2240 is constituted from the block header page 2221, the data pages 2222, and the table pages 2223. Like each scratch block 2230, however, each data block 2240 does not include either of the data pages 2222 and the table pages 2223 in some cases. Unlike each scratch block 2230, each data block 2240 does not include the empty pages 2224.
The erased-block group 225 is constituted from one or more erased blocks 2250. Each erased block 2250 is constituted from the block header page 2221 and the empty pages 2224. Each erased block 2250 does not include the data pages 2222 and the table pages 2223.
Whatever block 222 included in the nonvolatile memory 22 belongs to any one of the above-described three groups. Moreover, in response to a data writing processing or a block erasing processing, this block 222 transitions its belonging dynamically. Namely, as is illustrated in JP-A-2009-275048 for example, this block 222 performs a dynamical transition of its belonging as follows: A scratch block transitions to a data block. Next, a partial portion of erased blocks is newly allocated to a scratch block. Furthermore, the data block is transitioned to an erased block.
Also, actually, the logical-to-physical address translation table 220 in
a to
Of these pages, as illustrated in
As illustrated in
The page attribute 22222 stores therein a flag which is used when judging whether this page is the data page 2222 or the table page 2223. The logical address 22223 stores therein logical-address information which is assigned by the instruction processing device 4. The data writing number 22224 is a number which is used for judging the newness-or-oldness of the data 22221 if there exist a plurality of data pages (2222) whose logical addresses (22223) are identical to each other.
From the intrinsic point-of-view, the newness-or-oldness of the data 22221 is managed by the respective types of management tables which will be described later. Accordingly, the data writing number 22224 is not absolutely necessary. The presence of the data writing number 22224, however, makes the recovery implementable even if the table information within the RAM is destroyed by some cause or other. Consequently, the number 22224 is described in the present embodiment.
As illustrated in
The table management number 22233 is the management unit in the translation-table management table 235 illustrated in
Incidentally, the block erasing processing is the following processing: Namely, if there occurs a shortage of erased blocks, a partial portion of data blocks is transitioned to an erased block. At this time, data stored in the partial portion of the data blocks is copied into a scratch block. Here, it is necessary to manage which pages have been copied.
The table writing number 22234 is a number which is used for judging the newness-or-oldness of the logical-to-physical address-translation-table value 22231 if there exist a plurality of table pages (2223) whose table management numbers (22233) are identical to each other. As is the case with the data writing number 22224, the table writing number 22234 is not absolutely necessary, either. The presence of the table writing number 22234, however, makes the recovery implementable even if the information within the translation-table management table 235 is destroyed by some cause or other. Consequently, the number 22234 is described in the present embodiment.
On account of these circumstances, the logical-to-physical address translation table 220 illustrated in
Also, table management number 2201 and logical-group number 2200 are assigned for each combination of the logical address 2202 and the physical address 2203. As is the case with the table management number 22233 (refer to
In the logical-to-physical address translation table 220 in
The erasing number-of-times 2341 indicates the number-of-times in which this block has been erased.
The effective-page number 2342 indicates the number of pages which store effective data within the block. Also, the effective-page flag 2343 indicates the position of a page which stores the effective data. The effective-data storing page is represented by “1”, and an ineffective-data storing page is represented by “0”. The rightmost bit of the effective-page flag 2343 represents the 0-th page, and the leftmost bit thereof represents the (N−1)-th page.
The writing-destination page number 2344 indicates a page number which is writable next. If this block belongs to the data-block group 224, and if a writable page is absent, the writing-destination page number becomes equal to N.
Of these plural pieces of information, the storage flag 2351 is a flag for indicating whether or not the partitioned translation table 240 of this table management number 2350 is stored in the nonvolatile memories 22. If the partitioned translation table 240 has been already stored in the nonvolatile memories 22, the flag 2351 indicates “1”. Meanwhile, if the table 240 has been not yet stored therein, the flag 2351 indicates “0”.
The cache presence-or-absence flag 2352 is a flag for indicating whether or not the partitioned translation table 240 of this table management number 2350 is stored in the logical-to-physical address translation table cache 230. If the partitioned translation table 240 is stored therein, the flag 2352 indicates “1”. Meanwhile, if the table 240 is not stored therein, the flag 2352 indicates “0”.
The updating flag 2353 is a flag for indicating that, if this partitioned translation table 240 is held in the logical-to-physical address translation table cache 230, the table information stored in this partitioned translation table 240 is updated. If the table information is updated by such a processing as a request from the instruction processing device 4, the flag 2353 indicates “1”. Meanwhile, if the table information is not updated, the flag 2353 indicates “0”. Namely, taking advantage of the updating flag 2353 makes it possible to make the judgment as to the presence or absence of the updating. This judgment completely prevents a not-updated partitioned translation table 240 from being written into the nonvolatile memories 22, thereby suppressing a lowering in the processing speed.
The expelling count 2354 is information which, if the capacity of the logical-to-physical address translation table cache 230 becomes fully-occupied, is used for determining which of the partitioned translation tables 240 should be written into the nonvolatile memories 22. Although, in the present embodiment, the LRU (:Least Recently Used) scheme is used for the table's expelling from the logical-to-physical address translation table cache 230, some other scheme is also usable. When using some other scheme, the expelling count 2354 may be excluded.
The cache entry number 2355 indicates the storage destination of the partitioned translation table 240 on the logical-to-physical address translation table cache 230.
The physical address 2356 indicates the storage destination of the partitioned translation table 240 on the nonvolatile memories 22. The physical address 2356 is constituted from the combination of physical-block number 2357 and physical-page number 2358.
In the case of an ordinary data cache, the cache holds therein only the information by the amount of the cache's entry. If, however, basically the same management method is assumed and employed in the present embodiment as well, this management method makes it impossible to execute a processing of reading the information stored in the partitioned translation table 240 from the nonvolatile memories 22 into the logical-to-physical address translation table cache 230. On account of this circumstance, regardless of whether or not the partitioned translation table 240 is stored in the logical-to-physical address translation table cache 230, the information stored in all of the partitioned translation tables 240 are held in the translation-table management table 235. Also, in order to recognize which table-management-number (2350)'s table information is held in the logical-to-physical address translation table cache 230, the information stored in the cache presence-or-absence flag 2352 is stored into the translation-table management table 235.
The effective flag 2361 is a flag for indicating whether or not the partitioned translation table 240 is stored in the corresponding cache entry number 2360. If the partitioned translation table 240 is stored therein, the flag 2361 indicates “1”. Meanwhile, if the table 240 is not stored therein, the flag 2361 indicates “0”.
The respective tables stored in the nonvolatile memories 22 and the RAM 23 are configured as described above. In the present invention, of these table configurations, the special ingenuities are given to, in particular, the logical-to-physical address translation table 220 illustrated in
Taking advantage of the tables like this, the data reading processing is executed based on a processing flowchart illustrated in
In
In the flowchart illustrated in
Next, at a step S51, the memory controller 21 confirms whether or not the partitioned translation table 240 (
As a result of the processing at the step S51, the partitioned translation table (240) corresponding to the specified logical address has been acquired on the logical-to-physical address translation table cache 230. In this case, at the next step S501, the memory controller 21 identifies the physical address corresponding to the above-described logical address, using the partitioned translation table 240 on the logical-to-physical address translation table cache 230. Since the partitioned translation table 240 has the configuration illustrated in
Next, at a step S502, in the translation-table management table 235 illustrated in
After that, at a step S503, the memory controller 21 reads the data 221 from the nonvolatile memories 22, using the physical address identified at the step S501.
Next, at a step S52, if the capacity of the logical-to-physical address translation table cache 230 is fully occupied, the memory controller 21 performs a processing of writing the partitioned translation table 240 into the nonvolatile memories 22. The details of the writing processing at this step S52 will be described later, using
Finally, at a step S504, the memory controller 21 issues a reading-finishing report to the instruction processing device 4.
The explanation given until here is the outline of the data reading processing. The step S51 and the step S52, however, can be segmentalized further. Accordingly, the explanation will be further given below concerning these segmentalized processings.
At the step S51, first, at a step S510, it is confirmed whether or not the logical-address-corresponding partitioned translation table (240) received from the instruction processing device 4 is held in the logical-to-physical address translation table cache 230. This confirmation is performed using the cache presence-or-absence flag 2352 stored in the translation-table management table 235 illustrated in
At the step S511, subsequently, it is confirmed whether or not the storage flag 2351 stored in the translation-table management table 235 in
If the storage flag 2351 is “1”, at the step S512, the physical address 2356, i.e., the storage destination of this partitioned translation table 240, is confirmed using
At a step S513, the partitioned translation table (240) corresponding to the physical address 2356 is read from the nonvolatile memories 22. Moreover, the effective flag 2361 stored in the cache management table 236 in
Incidentally, if, at the step S511, the storage flag 2351 is “0”, the effective flag 2361 stored in the cache management table 236 in
After that, at a step S515, the cache presence-or-absence flag 2352 stored in the translation-table management table 235 in
At the first step S520 at the step S52, at first, it is confirmed whether or not the capacity of the logical-to-physical address translation table cache 230 is fully occupied. Then, if the capacity is fully occupied (:Yes), the processing transfers to the side of a step S522, thereby performing the processing for writing the partitioned translation table 240 into the nonvolatile memories 22. Meanwhile, if the capacity is not fully occupied (:No), the processing at the step S52 is finished.
In the case of writing the partitioned translation table 240 into the nonvolatile memories 22, at first, at a step S521, reference is made to the cache presence-or-absence flag (2352) and the expelling count (2354) which are stored in the translation-table management table 235 illustrated in
After that, at a step S522, the updating flag 2353 (
At a step S523, the selected writing-target partitioned translation table 240 is written into the physical address which is identified at the step S53.
Furthermore, at a step S54, the update processings of the scratch-block management table 231 in
Finally, at the step S524, from the physical address 2356 stored in the translation-table management table 235 (
Also, in the translation-table management table 235 (
In addition, reference is made to the cache entry number 2355 (
Incidentally, if, at the step S522, the updating flag 2353 is “0” (i.e., the updating of 240 is absent), the processings at the step S53, the step S523, and the step S54 are not performed. Also, at the step S524 as well, the updating of the physical-block management table 234 (
The step S53 and the step S54, i.e., the main processings within the step S52, can be segmentalized further.
Meanwhile, if the scratch block 2230 has been not allocated, at a step S531, a single erased block 2250 is selected from among the erased blocks 2250 illustrated in
After that, at a step S532, with respect to the erased block (2250) which is illustrated in
Next, at a step S533, the scratch-block management table 231 in
Furthermore, at a step S534, the physical-block number (2313) confirmed at the step S533 is compared with the physical-block number (2340) stored in the physical-block management table 234 in
Also,
If the empty pages are lost, at the step S541, the following series of processings are executed: First, in the scratch-block management table 231 illustrated in
Meanwhile, if the empty pages are present in the scratch block, the processing at the step S541 is not performed. After the step S541 or the step S540, at the step S542, the effective-page number 2342 and the writing-destination page number 2344 stored in the physical-block management table 234 in
A data writing processing is started in response to a trigger that, at a step S600, the memory controller 21 receives writing data and its writing logical address from the instruction processing device 4 via the data bus 3 and the I/F control unit 20.
Next, at the step S53, the memory controller 21 performs the identification of a physical address into which the writing data is to be written. Since this processing has been explained in detail in
After that, at a step S601, the memory controller 21 writes the data into the physical address which is identified at the step S53.
Next, at a step S61, the memory controller 21 performs the updating of each type of management table after having finished the writing. This updating processing will be described later, using
Finally, at a step S602, the memory controller 21 issues a writing-finishing report to the instruction processing device 4.
The explanation given until here is the outline of the data writing processing. The step S61, however, can be segmentalized further. Accordingly, the explanation will be further given below concerning these segmentalized processings.
At the step S61, first, at the step S54, the update processings of the scratch-block management table 231, the data-block management table 232, and the physical-block management table 234 are performed in response to the data writing processing. Since these update processings have been explained in detail in
Next, at the step S51, the reading processing of the partitioned translation table 240 is performed. Since this reading processing has been explained in detail in
Next at a step S610, the before-writing physical address corresponding to the writing logical address is identified from the partitioned translation table 240 (
After that, at a step S611, in the translation-table management table 235 in
After that, at the step S52, the writing processing of the partitioned translation table 240 is performed. Since this writing processing has been explained in detail in
The explanation given until here is the details of the processing at the step S61.
Then, at a step S701, the memory controller 21 makes reference to the data-block management table 232 in
Next, at a step S702, the memory controller 21 confirms whether or not the effective-page number 2342 of the block selected as the erasing target is “0”.
If the effective-page number 2342 is not“0”, at a step S703, the memory controller 21 makes reference to the effective-page flag 2343 stored in the physical-block management table 234 (
The memory controller 21 repeats this copy operation until the effective-page number 2342 of the selected block becomes equal to “0”. When the effective-page number 2342 becomes equal to “0”, the memory controller 21 transfers to a step S704. At this step S704, the memory controller 21 erases the erasing-target block.
Finally, at a step S705, the memory controller 21 executes a series of updating processings of each type of management table. First, in the data-block management table 232 in
The above-described block erasing processing illustrated in
Incidentally, the present invention is not limited to the above-described embodiments, but includes a variety of modified embodiments. For example, in the above-described embodiments, the detailed explanation has been given in order to explain the present invention in an easy-to-understand manner. Accordingly, the present invention is not necessarily limited to the embodiments which are equipped with all of the configurations explained.
Also, a partial element or the entire element of each configuration, each function, each processing unit, and each processing method described above may be implemented using such hardware as, e.g., being designed with integrated circuits. Also, each configuration and each function described above may be implemented with software in such a manner that a processor interprets and executes a program for implementing each function.
Also, the control lines and information lines are only limited to the ones which are conceivable as being necessary when seen from the explanation's point-of-view. Consequently, all of control lines and information lines are not necessarily specified when seen from the commercial product's point-of-view. Actually, it is allowable to conceive that almost all of the configurations are connected to each other.
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2011-036717 | Feb 2011 | JP | national |