External storage device and memory access control method thereof

Information

  • Patent Grant
  • RE45857
  • Patent Number
    RE45,857
  • Date Filed
    Friday, May 18, 2012
    13 years ago
  • Date Issued
    Tuesday, January 19, 2016
    9 years ago
  • CPC
  • US Classifications
    • 001
    Field of Search
    • US
    • 714 718000
    • 714 746000
    • 714 719000
    • 714 799000
    • 714 819000
    • 714 763000
    • 714 E11034
    • 714 006100
    • 714 758000
    • 365 185330
    • 365 230030
    • 365 200000
    • 365 201000
    • CPC
    • G06F11/1068
    • G06F11/1008
    • G06F3/064
    • G06F3/0679
    • G06F11/1072
    • G06F3/0658
    • G06F12/0238
    • G06F11/00
    • G06F11/1004
    • G06F12/00
    • G06F13/1657
    • G06F2212/2022
    • G06F3/0688
    • G11C16/102
    • G11C29/82
    • G11C16/00
  • International Classifications
    • G11C29/00
    • G06F11/10
    • Disclaimer
      This patent is subject to a terminal disclaimer.
Abstract
A storage device, including: a non-volatile semiconductor memory which is electrically erasable; a system interface coupled with an external host system; and a controller reading data from the non-volatile semiconductor memory and transmitting data to the host system via the system interface in response to a read command received by the system interface from the host system; and wherein the controller starts reading (N+n)th sector data from the non-volatile semiconductor memory, while the controller transmits Nth sector data that has been read from the non-volatile semiconductor memory to the host system via the system interface, in response to the read command for successive sector data.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates to an external storage device of a computer using, for example, a static storage device, and more particularly relates to an external storage device for processing error detection and error correction of sector data at a high speed when sector data having an arbitrary byte width are accessed continuously according to a size of a sector unit.


2. Description of Related Art


With regard to background art, in order to simultaneously realize an improvement in reliability and high speed access in memory control, as disclosed in Japanese Patent Laid-Open No. Hei 6-105443 (1994), there is a system where data of an x-byte width outputted from a memory are divided into an odd number part (x/2 byte width) and an even number part (x/2 byte width), and regarding each of the odd number part and the even number part, error detection and error correction are performed using error correcting codes, and data of an x/2 byte width as outputted from the odd number part and the even number part are continuously outputted to a system bus of an x/2 byte width by an interleave control method.


In order to perform the error detection and the error correction for sector data having an m-byte (e.g., 512 byte) width, the sector data of an m-byte width must be divided into an n-byte (e.g., one byte) unit for m/n times (m is a multiple of n) and then inputted to error correcting means.


However, since error detection and error correction in the background art as described above are performed for data having a same byte width as that of the system bus, a differing byte arrangement cannot be applied as it is to error detection and error correction for sector data having an m-byte width larger than the byte width of the system bus. Moreover, as a further disadvantage in the background art as above described, both the odd number part and the even number part require individual error correcting means.


The teachings of each of any above- or below-listed art are herein incorporated by reference.


SUMMARY OF THE INVENTION

An object of the present invention is to provide an external storage device where a time required for error detection and error correction is reduced when error detection and error correction are performed for sector data having an m-byte width larger than the byte width of the system bus, and to realize a memory access at a high speed.


Another object of the present invention is to provide an external storage device where a time required for error detection and error correction is reduced using a single error correcting means, and to realize a memory access at a high speed.


In order to attain the foregoing objects, the present invention provides an external storage device comprising: a system interface section for conducting an interface with a host computer; error correcting means for performing error detection and error correction for sector data constituted by data having a byte number larger than that of a bus width of a system bus connecting the system interface section and the host computer; a first memory and a second memory as static storage devices each having a memory bus with a same bus width as that of the system bus for storing sector data; and control means for controlling a reading and writing operation of sector data from the host computer to the first memory and the second memory, wherein in response to a write command from the host computer, the control means stores a plurality of sector data attendant on the write command in the size of a sector unit alternately in the first memory and the second memory, and in response to read command from the host computer, the control means reads out the first sector data among a plurality of sector data required by the read command from the first memory and supplies the read-out sector data to the error correcting means, and then the control means reads out the sector data of the first memory and the second memory simultaneously, so that while the N-th (where N is a natural number) sector data from one of the first memory and the second memory are transferred to the system interface section, the (N+1)th sector data from the other are transferred to the error correcting means.


In this preferred external storage device, data changing means selectively connects the memory bus of the first memory to one of the system interface section and the error correcting means, and also selectively connects the memory bus of the second memory to the other, and during the read access from the host computer, the control means alternately controls the data changing means so as to selectively and alternately read out the sector data of the first memory and the second memory.


In a write access of sector data from the host computer to the first and second memories, a write buffer for temporarily storing the sector data may be provided to effect storage of the sector data in the first and second memories through the write buffer.


In another embodiment, in place of the first memory and the second memory, a memory having a memory bus width of twice that of the system bus for storing sector data may be used. In this case, in response to write command from the host computer, the control means stores odd-numbered sector data (among a plurality of sector data) attendant on the write command using, for example, an upper side of the memory bus and memory, and also stores even-numbered sector data using, for example, a lower side of the memory bus and memory. In response to a read command from the host computer, the control means reads out the first sector data among a plurality of sector data required by the read command from the upper side of the memory and supplies the readout sector data to the error correcting means, and then the control means reads out the sector data at the upper side and the lower side of a memory address simultaneously, so that while the N-th (where N is a natural number) sector data from one of the upper side and the lower side of the memory address are transferred to the system interface section, the (N+1)th sector data from the other are transferred to the error correcting means.


Also in a memory access control method of an external storage device according to the present invention, the external storage device having a static storage device storing sector data and comprising a first memory storing odd-numbered sector data of sectors of a plurality of continuous sectors of an access object and a second memory storing even-numbered sector data of sectors as the static storage device and error correcting means performing error detection and error correction for the sector data are used. When write access is performed from a host computer to the plurality of continuous sectors, odd-numbered sector data together with error correcting codes are stored in the first memory and also even-numbered sector data together with error correcting codes are stored in the second memory alternately in a size of a sector unit. When a read access is performed from the host computer to the plurality of continuous sectors, the first sector data are read out from the memory and error detection and error correction are performed by the error correcting means and while the first sector data having the error detection and error correction finished are transferred from the first memory to the host computer, the second data are simultaneously read out from the second memory and transferred to the error correcting means. Subsequently, while the second data having the error detection and error correction finished are transferred from the second memory to the host computer, third sector data are simultaneously read out from the first memory and transferred to the error correcting means. In a similar manner, while the N-th sector data having the error detection and error correction finished are transferred to the host computer, the (N+1)th sector data are simultaneously read out and transferred to the error correcting means.


According to the present invention, control means (e.g., a microprocessor) can store a plurality of sector data of a write object in a memory so that the N-th sector data and the (N+1)th sector data can be read out simultaneously. Thereby, at any time, the N-th sector data can be outputted to a system bus by data changing means, and (N+1)th sector data can be simultaneously outputted to error correcting means. Consequently, since a time required for the error detection and error correction for the (N+1)th data can be performed simultaneously during the time the Nth data are outputted to the system bus, the time (as experienced by the external storage arrangement) required for the error detection and error correction for the sector data can be reduced apparently (i.e., made transparent to a host computer).


Also since the error detection and error correction are always executed only for singular sector data which is subsequent to the sector data currently being transferred to the host computer, a single error correcting means may be used well.


The foregoing and other objects, advantages, manner of operation, novel features and a better understanding of the present invention will become apparent from the following detailed description of the preferred embodiments and claims when read in connection with the accompanying drawings, all forming a part of the disclosure hereof this invention. While the foregoing and following written and illustrated disclosure focuses on disclosing embodiments of the invention which are considered preferred embodiments at the time the patent application was filed in order to teach one skilled in the art to make and use the invention, and to otherwise satisfy the best mode disclosure requirements under U.S. patent law, it should be clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims.





BRIEF DESCRIPTION OF THE DRAWINGS

The following represents brief descriptions of the drawings, wherein:



FIG. 1 is a block diagram showing a system configuration of an external storage device of the invention.



FIG. 2 is a block diagram showing a configuration of a system interface section 13.



FIG. 3 is a block diagram showing a configuration of data changing means 11.



FIG. 4 is a diagram showing a truth table of a read data selecting circuit 116.



FIG. 5 is a diagram showing a truth table of an error correcting means input data selecting circuit 117.



FIGS. 6-11 are flow charts showing operation of a host computer 2.



FIG. 12 is a block diagram showing a system configuration of another embodiment of an external storage device of the invention.



FIG. 13 is a block diagram showing a configuration of data changing means.



FIG. 14 is a block diagram showing a system configuration of still another embodiment of an external storage device of the invention.



FIG. 15 is a block diagram showing a configuration of data changing means 93.



FIG. 16 is a timing chart showing an operation example of a write processing in an embodiment of the present invention.



FIG. 17 is an explanation diagram of a first memory 4 and a second memory 5.



FIG. 18 is a timing chart showing an operation example of a read processing in an embodiment of the present invention.



FIG. 19 is a timing chart subsequent to the timing chart in FIG. 18.



FIG. 20 are views of a memory card containing an external storage device of the invention.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Before beginning a detailed description of the subject invention, mention of the following is in order:


When appropriate, like reference numerals and characters are used to designate identical, corresponding or similar components in differing figure drawings.


Embodiments of the present invention will be described using the accompanying drawings as follows. More particularly, FIG. 1 is a block diagram showing a system configuration of a first embodiment of an external storage device 1000 according to the present invention. A memory control unit 1 writes or reads sector data to a first memory 4 and a second memory 5 according to a command from a host computer 2, such memory control unit receiving the command of the host computer 2 by a control signal 22 and an external bus 32.


The host computer 2 is connected to a system bus 3 by a host computer bus 31, and performs read and write operations of the sector data to the memory control unit 1 using the control signal 22 and the system bus 3.


The first memory 4 and the second memory 5 are storage means storing the sector data respectively, and a flash memory is used in a preferable embodiment although use of the present invention is not limited thereto. The flash memory is a known non-volatile semiconductor memory where electric erase and rewrite of data are possible in the size of a sector unit of a predetermined byte number (e.g., 512 bytes). However, the present invention can be applied also to other memory device and arrangement, and especially static storage devices.


A local bus 6 is a bus connecting the memory control unit 1, a write buffer 7 and a microprocessor 8. The write buffer 7 is a storage means for temporarily storing the sector data written by the host computer 2, and is connected to the local bus 6 by a write buffer bus 61. The microprocessor 8 is connected to the local bus 6 by a microprocessor bus 62, analyzes the command set to the memory control unit 1 by the host computer 2 and sets the operation to be performed by the memory control unit 1. In this preferred embodiment, when a bus width of the system bus 3 is, for example, M bytes, a bus width of the local bus 6 is also M bytes to match that of the system bus 3, and also, a bus width of each of a first memory bus 111 and a second bus 112 is M bytes to match that of the system bus 3.


Data changing means 11 selectively directs the sector data from the first memory bus 111 and the second memory bus 112 onto an ECC bus 113 and an internal data bus 114. Error correcting means 12 generates emir correcting codes for sector data for output to the internal data bus 114, also performs error detection and error correction of sector data input from the ECC bus 113, and informs the microprocessor 8 of the results of the error detection and error correction using a signal line 19. A system interface section 13 receives any command fur memory access from the host computer 2 along the control signal 22 and the external bus 32. In response to such memory access command, the system interface section 13 outputs an interrupt signal 131 to the microprocessor 8. Also the system interface section 13 generates an appropriate read signal 132, a write signal 133, a transfer finishing signal 134 and a timing signal 135 to control read/write of sector data by the control signal 22.


When the host computer 2 instructs writing of sector data, the write signal 133 is outputted and the sector data from the host computer 2 are stored from the internal data bus 114 into the write buffer 7 in accordance with a timing of the timing signal 135. Also when the host computer 2 instructs reading of sector data, the read signal 132 is outputted and the sector data of the first memory bus 111 or the second memory bus 112 are read out in accordance with a timing of the timing signal 135 and directed to the internal data bus 114 by the data changing means 11 and outputted from the system interface section 13 to the computer 2. Further the sector data are outputted to the host computer 2, and at the same time the sector data (e.g., next sequential sector data) of the first memory bus 111 or the second memory bus 112 are directed into the ECC bus 113 by the data changing means 11 (under control of a signal from the microprocessor 8 along a signal line 18) and error detection and error correction are performed in the error correcting means 12.


In a preferred embodiment, components along a lower side of the system interface section 13, or contained within the outline designated by 1000 (in FIG. 1) can be contained within a memory card (e.g., flash memory card), views of which are shown in FIG. 20.



FIG. 2 is a block diagram showing a configuration of the system interface section 13. A data buffer 136 performs buffering of sector data from the external bus 32 and sector data from the internal data bus 114. The command from the host computer 2 is set to an access setting register 137 along the line 22. The command indicates the front address of the sector data to be accessed, a type of access (read or write) and the number of sectors (e.g., range of sector numbers or addresses) to be accessed. When the host computer 2 sets the command to the access setting register 137, the access setting register 137 outputs an interrupt signal 131. Also the access setting register 137 outputs a read signal 132 or a write signal 133 responsive to the set command. A control signal decoding section 138 outputs a transfer finishing signal 134 and a timing signal 135 from a control signal 22. The transfer finishing signal 134 is outputted when the access to data of one sector is finished. The timing signal 135 is generated from the control signal 22 when the host computer 2 reads or writes the sector data. A status register 139 stores data indicating the state of the memory control unit 1. When the interrupt signal 131 is outputted and when the transfer finishing signal 134 is outputted, the status register 139 is set to the busy state. Also the status register 139 is set to the ready state by the microprocessor 8. When the status register 139 is in the busy state, the host computer does not read and write the sector data.



FIG. 3 is a block diagram showing configuration of the data changing means 11. A data selection setting register 115 is a storage means set by the microprocessor 8 using, for example, a signal along a signal line 18, where information to select the data to be outputted to the ECC bus 113 and the internal data bus 114 from the first memory bus 111 or the second memory bus 112 is set. A read data selecting circuit 116 selects data to be outputted to the internal data bus 114 from the first memory bus 111 or the second memory bus 112 according to a content of the data selection setting register 115. An error correcting means input data selecting circuit 117 selects data to be outputted to the ECC bus 113 from the first memory bus 111 or the second memory bus 112 according to a content of the data selection setting register 115.



FIG. 4 shows a truth table of the read data selecting circuit 116. Data to be outputted to the internal data bus 114 are selected from the first memory bus 111 or the second memory bus 112 according to a content of the data selection setting register 115. FIG. 5 shows a truth table of the error correcting means input data selecting circuit 117. Data to be outputted to the ECC bus 113 are selected from the first memory bus 111 or the second memory bus 112 according to content of the data selection setting register 115.


When a bus width of the system bus 3 is one byte, operation of the host computer 2 with regard to reading or writing of the sector data will be described using a flow chart as follows. More particularly, FIG. 6 in a flow chart when the host computer 2 reads or writes the sector data. First, in step S001, a command is set to the access setting register 137 within the system interface section 13. The command includes the sector number of the access start sector and the number of sectors to be accessed continuously. And then the status register 139 is supervised (step S002) by the host computer 2. If the status register 139 is set in the ready state, the host computer 2 reads or writes the data buffer 136 in the size of a one byte unit (step S003). Operation of step S003 is repeated for data of one sector until a read or write operation is finished (step S004). If a read or write operation for all sector data is not finished (“No” branch of step S005), the operations from steps S002 to S004 are repeated, and when a read or write operation for all sector data is finished, the read or write operation of the host computer 2 is finished.



FIG. 7 to FIG. 11 are flow charts showing operation of the microprocessor 8. First, in step S101, the microprocessor 8 supervises the outputting of an interrupt signal 131 indicating that the host computer 2 has set a command to the access setting register 137. If the interrupt signal 131 is outputted, the microprocessor 8 reads out the access setting register 137 and analyzes the command set by the host computer 2 (step S102). Subsequently in step S103, if a type of access requested is a “write” operation, step S104 is executed, and if a “read” operation is requested, operation of a flow chart shown in FIG. 9 is executed.


When command of the access setting register 137 indicates a “write” operation, in order that the sector data to be written by the host computer 2 are stored in the write buffer 7, the microprocessor 8 outputs an address 81 to the write buffer 7 (step S104), and sets a ready state to the status register 139 (step S105). Subsequently, if data of one sector are stored from the host computer 2 to the write buffer 7, a transfer finishing signal 134 is outputted from the control signal decoding section 138. If the microprocessor 8 detects that the transfer finishing signal 134 is outputted in step S106, error correcting codes stored in the error correcting means 12 are read out (step S107). Subsequently, the microprocessor 8 executes operation of a flow chart shown in FIG. 8.


More particularly, turning now to FIG. 8, if the sector data stored in the write buffer 7 are the (2N−1)th (that is, odd-numbered) sector data, the first memory address 82 for the first memory 4 is outputted (step S109), and sector data are transferred from the write buffer 7 to the first memory 4 and further the error correcting codes are stored in the first memory 4 (step S110). Conversely, if the sector data stored in the write buffer 7 are the 2N-th (that is, even-numbered) sector data, the second memory address 83 for the second memory 5 is outputted (step S111), and sector data are transferred from the write buffer 7 to the second memory 5 and further the error correcting codes are stored in the second memory 5 (step S112).



FIG. 17 shows a state of data stored in the first memory 4 and the second memory 5. As clearly seen from FIG. 17, data of one sector (here 512 bytes) and error correcting codes generated therefore are stored in each address of the first and second memories. Error correcting codes in this preferred embodiment consist of one code (here 3 bytes) given to the data of one sector.


When a writing operation of all sector data from the host computer 2 is finished, the microprocessor 8 repeats operations from step S101. When it is not finished, operations from step S104 to step S112 as above described are repeated (S113).


If the command of the access setting register 137 indicates a “read” operation, operation of a flow chart shown in FIG. 9 is executed. More particularly, turning now to FIG. 9, first, the host computer 2 performs error detection and error correction for sector data to be read first. Since (2N−1)th (i.e., odd-numbered) sector data are stored in the first memory 4, in order to input the first sector data to the error correcting means 12, the microprocessor 8 sets a ‘1’ to the data selection setting register 115 (step S114). Thereby in the memory control unit 1, sector data read from the first memory 4 are directed within the data changing means 11 into the ECC bus 113 and are then outputted, and error detection and error correction for the sector data read from the first memory 4 are performed in the error correcting means 12. Here, from the first memory 4, the sector data and the error correcting codes subsequent thereto are outputted and the error correcting codes are inputted to the error correcting means 12. Thereby in the error correcting means 12, the sector data read from the first memory 4 are decoded and any error therein can be detected. Also in the memory control unit 1, if outputting of the sector data read from the first memory 4 are finished for the error correcting means 12, the transfer finishing signal 134 is outputted to the microprocessor 8. If the microprocessor 8 detects that the transfer finishing signal 134 is outputted (step S115), the decoding results stored in the error correcting means 12 are read out (step S116), and a decision is effected regarding whether any error is generated (i.e., detected) or not (step S117). If an error is generated, the microprocessor 8 makes the error correcting means 12 start the error correction processing thereby to determine an error position and correction pattern, and returns and writes correction results to the sector data having error generated and stored in the first memory 4 (step S118). If no error is generated, process is advanced to step S119 in FIG. 10.


More particularly, in turning to FIG. 10, in step S119, the microprocessor 8 confirms whether the sector data to be outputted to the host computer 2 are the (2N−1)th (i.e., odd-numbered) data or not. Instep S120, the microprocessor 8 sets ‘0’ to the data selection setting register 115, so that the (2N−1)th sector data are outputted to the host computer 2 and also the 2N-th sector data are inputted to the error correcting means 12. In a next step S121, an address of sector data to be outputted to the host computer 2 is outputted to the first memory address 82, and an address of the sector data performing error detection and error correction is outputted to the second memory address 83.


In step S122, the microprocessor 8 sets “1” to the data selection setting register 115, so that the 2N-th sector data are outputted to the host computer 2 and also the (2N+1)th sector data are inputted to the error correcting means 12. In step S123, an address of the sector data performing error detection and error correction is outputted to the first memory address 82, and address of the sector data to be outputted to the host computer 2 is outputted to the second memory address 83. Then, the microprocessor 8 sets the status register 139 to the ready state (step S124).


More particularly, the status register 139 is set to the ready state, thereby the host computer 2 reads the sector data for the memory control unit 1. In step S125, a decision is effected regarding whether the transfer finishing signal 134 is outputted or not. If a reading operation for data of one sector is finished, a transfer finishing signal 134 is outputted from the control signal decoding section 138 of the memory control unit 1. More particularly, the transfer finishing signal 134 is outputted, thereby the microprocessor 8 reads out the decoding results stored in the error correcting means 12 (step S126), and a decision (step S127; FIG. 11) is effected regarding whether an error is generated (i.e., detected) or not. If an error is generated, the microprocessor 8 makes the error correcting means 12 start an error correction processing to thereby determine an error position and correction pattern, and the correction results are returned and written to the sector data in the first memory 4 or the second memory 5 (step S128) having such error therein. If no error is generated, the process is advanced to step S129. When the host computer 2 finishes reading of all sector data, the microprocessor 8 repeats operations from step S101, and when it is not finished, operations are repeated from steps S119 to S128 as above described (step S129).


Next, a specific processing example of the device of FIG. 1 will be described using the timing charts shown in FIG. 16, FIG. 18 and FIG. 19. More particularly, FIG. 16 shows a write operation writing a sector data from the host computer 2 to the memories 4, 5. At the time “t0,” if a write command is set from the host computer 2 to the access setting register 137, at the time “t1,” an interrupt signal 131 is generated and such interrupt is applied to the microprocessor 8. Also at the time “t1,” the status register 139 is changed to indicate a busy signal. Then, at the time “t2,” the status register 139 is changed to indicate a ready signal and the microprocessor 8 generates an address 81 to the write buffer 7. At the time “t3” or later, data 1 to 512 representing 512 bytes are written in sequence one byte at a time into the assigned address positions of the write buffer 7 according to the timing signal 135. Also the data 1 to 512 representing 512 bytes are inputted from the internal data bus 114 to the error correcting means 12 according to the timing signal 135, and the error correcting means 12 generates error correcting codes. If the final data of 512 bytes are written at the time “t4,” a transfer finishing signal 134 is outputted at the time “t5.” Then, the sector data stored in the write buffer 7 in such manner are written in the first memory 4 or the second memory 5 as described in FIG. 8. The storage results stored within the memories 4, 5 become as shown in FIG. 17.



FIG. 18 and FIG. 19 show a read operation reading the sector data of the memories 4, 5 as requested from the host computer 2. First in FIG. 18, at the time “t6,” a read command is set from the host computer 2 to the access setting register 137, and then at the next time “t7,” an interrupt signal 131 is generated and the interrupt is applied to the microprocessor 8. In this example, data of plural sectors at the address “100” or later shall be read out continuously. At a time “t8,” the address “100” of the first sector to be read out is given to the first memory address 82, and at a time “t8” or later, the data of 512 bytes and the accompanying error correcting codes of 3 bytes are read out from the first memory bus 111 in sequence one byte at a time according to the timing signal 135. These data are outputted to the ECC bus 113 and then inputted to the error correcting means 12.


Next, referring to FIG. 19, in order that the data of the first sector with the error check finished are outputted in turn to the internal data bus 114 (that is, to the side of the host computer 2), a directing state of the data changing means 11 is reversed. At a time “t9,” the address of the first memory address 82 remains “100” and the address of the second memory address 83 is made “101.” At a time “t10” or later, the sector data of the address “100” are read out again from the first memory 4. The sector data are outputted to the internal data bus 114. Simultaneous with outputting of the “100” address sector data, the data of 512 bytes of the second sector and the accompanying error correcting codes of 3 bytes are read out in sequence one byte at a time from the address “101” of the second memory 5, and are then outputted to the ECC bus 113 communicating with the error correcting means 12. After the reading of both sector data are finished, at the time “t1,” in turn, the address “101” of the second memory 5 having an error check finished is outputted to the memory address 82 of the first memory 4 and the second memory address 5 remains at the address “101.” The directing state of the data changing means 11 is then reversed. Thereby at the time “t12” or later, the sector data of the address “101” are outputted to the internal data bus 114, and at the same time the sector data of the address “102” corresponding to a next sector are outputted to the side of the ECC bus 113. Thus during reading of data of continuous sectors, the sector data are obtained continuously on the internal data bus 114. As a result, it appears to the host computer 2 as if the time for error check processing by the error correcting means 12 did not exist.


As above described, according to this embodiment, the microprocessor 8 stores odd-numbered sector data stored in the write buffer 7 to the first memory 4 and also stores even-numbered sector data to the second memory 5. Accordingly, since the host computer 2 can read the N-th sector data and simultaneously can output the (N+1)th sector data to the error correcting means 12, the time required for error detection and error correction to the (N+1)th sector data can be reduced apparently (i.e., made transparent to the host computer).



FIG. 12 is a block diagram showing a system configuration of another embodiment of an external storage device according to the present invention. More particularly, except for a memory 9, a memory bus 91 and data changing means 92, this embodiment has the same configuration as that of FIG. 1 and performs a same operation. A memory 9 has a bus width which is twice as large as that possessed by each of the first memory 4 and the second memory 5 in FIG. 1, and is connected by a memory bus 91 to data changing means 92 of a memory control unit 1 and a local bus 6. The data changing means 92 selectively directs upper data and lower data from the memory bus 91 into an internal data bus 114 and an ECC bus 113.



FIG. 13 is a block diagram showing a configuration of the data changing means 92. A data selection setting register 115, a read data selecting circuit 116 and an error correcting means input data selecting circuit 117 perform the same operation as that shown and described with respect to the block diagram of FIG. 3. Data from the memory bus 91 are inputted as upper data 911 and lower data 912 to a read data selecting register 116 and an error correcting means input data selecting circuit 117. The read data selecting register 116 outputs the upper data 911 or the lower data 912 to the internal data bus 114 according to a content of the data selection setting register 115. Also the error correcting means input data selecting circuit 117 outputs the upper data 911 or the lower data 912 to the ECC bus 113 also according to a content of the data selection setting register 115.


That is, also for the memory 9 having the bus width twice as large as that of the system bus 3, since the microprocessor 8 stores the (2N−1)th (odd-numbered) sector data stored in the write buffer 7 to upper bit memory positions and stores the 2N-th (even-numbered) sector data to lower bit memory positions on the same memory bus, the host computer 2 can simultaneously output the N-th sector data to the internal data bus 114 and can output the (N+1)th sector data to the error correcting means 12. Consequently, a time required for the error detection and the error correction to the (N+1)th sector data can be reduced apparently (i.e., made transparent to a host computer 2).



FIG. 14 is a block diagram showing a system configuration of another embodiment of an external storage device according to the present invention. In the configuration of FIG. 14, the write buffer 7 shown in the block diagram of FIG. 1 is not used. That is, the sector data written by a host computer 2 are not stored temporarily to the write buffer, but are written directly to a first memory 4 or a second memory 5. Therefore when the host computer 2 writes the sector data, data changing means 93 outputs data by directing the same from an internal data bus 114 to a first memory bus 111 or a second memory bus 112.


More particularly, FIG. 15 is a block diagram showing a configuration of the data changing means 93. A data selection setting register 115, a read data selecting circuit 116 and an error correcting means input data selecting circuit 117 perform the same operation as that shown and described with respect to the block diagram of FIG. 3. A write data selecting circuit 118 outputs data of an internal data bus 114 by directing the same to a first memory bus 111 or a second memory bus 112 according to a content of the data selection setting register 115. When the data selection setting register 115 is ‘0’, the sector data of the internal data bus 114 are outputted to the first memory bus 111, and when the data selection setting register 115 is ‘1’, the sector data of the internal data bus 114 are outputted to the second memory bus 112.


That is, since the write data selecting circuit 118 of the data changing means 11 outputs the (2N−1)th (odd-numbered) sector data to the first memory bus 111 and outputs the 2N-th (even-numbered) sector data to the second memory bus 112, the (2N−1)th sector data can be stored in the first memory 4 and the 2N-th sector data can be stored in the second memory 5. Thereby since the host computer 2 can read the N-th sector data and simultaneously can output the (N+1)th sector data to the error correcting means 12, the time required for the error detection and the error correction to the (N+1)th sector data can be reduced apparently (i.e., made invisible to the host computer 2).


This concludes the description of the preferred embodiments.


Although the present invention has been described with reference to a number of illustrative embodiments thereof, it should be understood that numerous other modifications and embodiments can be devised by those skilled in the art that will fall within the spirit and scope of the principles of this invention. More particularly, reasonable variations and modifications are possible in the component parts and/or arrangements of the subject data changing means arrangement within the scope of the foregoing disclosure, the drawings and the appended claims without departing from the spirit of the invention, e.g., the following represents a non-exhaustive list of modifications which might readily be apparent to one skilled in the art to which the present invention is directed: data obtained from the first memory or second memory may be temporarily stored in buffer memories before outputting to the internal data bus or error correcting means; and, the data within the error correcting means which has been subjected to error detection and correction may be outputted onto the internal data bus rather than performing a redundant reading from the memory.


In addition to variations and modifications in the component parts and/or arrangements, uses with alternative non-static memories or with internal memories will also be apparent to those skilled in the art. More particularly, while the above disclosure has discussed applications of the subject combination arrangement with respect to static memories, it will be apparent to those skilled in the art that each of the subject combination arrangements are not so limited to such usage, but instead, could find application in a tremendous number of other uses, e.g., the combination arrangement disclosed above might have application with respect to dynamic memories.

Claims
  • 1. A storage device, comprising: a non-volatile semiconductor memory which is electrically erasable and which has first and second portions coupled to first and second buses;a system interface coupled with an external host system; anda controller reading data from said non-volatile semiconductor memory and transmitting said data to said host system via said system interface in response to a read command received by said system interface from said host system; andwherein said controller starts reading (N+n)th sector data from said first portion of said non-volatile semiconductor memory via said first bus, while said controller transmits Nth sector data that has been read from said second portion of said non-volatile semiconductor memory via said second bus, to said host system via said system interface, in response to said read command for successive sector data, where N and n are integers.
  • 2. A storage device as claimed in claim 1, wherein said controller, in response to said read command for successive sector data,reads said Nth sector data from said non-volatile semiconductor memory into said controller,carries out data processing for said Nth sector data,transmits said Nth sector data after said data processing to said host system via said system interface,starts reading said (N+n)th sector data from said non-volatile semiconductor memory for said data processing for said (N+n)th sector while said controller transmits said Nth sector data after said data processing to said host system via said system interface,carries out said data processing for said (N+n)th sector data, andtransmits said (N+n)th sector data after said data processing to said host system via said system interface.
  • 3. A storage device as claimed in claim 2, wherein said data processing is error correction processing of successive sector data.
  • 4. A storage device as claimed in claim 1, comprising an error correction circuit for said successive sector data, and wherein said controller starts transmitting said (N+n)th sector data from said non-volatile semiconductor memory to said error correction circuit, while said controller transmits said Nth sector data that has been carried out error correction processing by said error correction circuit, to said host system via said system interface.
  • 5. A storage device as claimed in claim 1, wherein said “n” is one.
  • 6. A storage device as claimed in claim 1, wherein a size of said sector data is 512 bytes.
  • 7. A storage device as claimed in claim 1, wherein said non-volatile semiconductor memory is a flash memory.
  • 8. A storage device as claimed in claim 1, wherein said non-volatile semiconductor memory is electrically erasable in a size of a sector unit.
  • 9. A storage device, comprising: a non-volatile semiconductor memory which is electrically erasable and which has first and second portions coupled to first and second buses;a system interface coupled with an external host system; anda controller reading data from said non-volatile semiconductor memory and transmitting said data to said host system via said system interface in response to a read command received by said system interface from said host system; andwherein said controller carries out data processing for sector data that has been read from said non-volatile semiconductor memory, andwherein said controller starts reading (N+n)th sector data from said first portion of said non-volatile semiconductor memory via said first bus for said data processing for said (N+n)th sector data, while said controller transmits Nth sector data that has been carried out said data processing after having been previously read from said second portion of said non-volatile semiconductor memory via said second bus, to said host system via said system interface, in response to said read command for successive sector data, where N and n are integers.
  • 10. A storage device, comprising: a non-volatile semiconductor memory which is electrically erasable and where data is stored in sector data divisions, where said non-volatile semiconductor memory has a first memory section and a second memory section storing alternating sectors of the data, respectively, and where said first memory section and said second memory section are accessed by first and second buses, respectively;a system interface coupled with an external host system; anda controller reading successive sectors of said data from said non-volatile semiconductor memory, responsive to a read command for successive sectors from said host system, and transmitting said data to said host system via said system interface;wherein in response to said read command for successive sector data, said controller reads an (N+n)th sector of sector data of said data, from said first memory section of said non-volatile semiconductor memory via said first bus, while said controller transmits an Nth sector of sector data of said data, that has been read from said second memory section of said non-volatile semiconductor memory via said second bus, to said host system via said system interface, where N and n are integers.
  • 11. A storage device as claimed in claim 10, wherein said controller, in response to said read command for successive sectors,reads said Nth sector from said non-volatile semiconductor memory into said controller,carries out data processing for said Nth sector,transmits said Nth sector after said data processing, to said host system via said system interface,reads said (N+n)th sector from said non-volatile semiconductor memory for said data processing for said (N+n)th sector, while said controller transmits said Nth sector after said data processing to said host system via said system interface,carries out said data processing for said (N+n)th sector, andtransmits said (N+n)th sector after said data processing, to said host system via said system interface.
  • 12. A storage device as claimed in claim 11, wherein said data processing is error correction processing of successive sectors.
  • 13. A storage device as claimed in claim 10, comprising an error correction circuit for said successive sectors, and wherein said controller starts transmitting said (N+n)th sector from said non-volatile semiconductor memory to said error correction circuit, while said controller transmits said Nth sector data having completed error correction processing by said error correction circuit, to said host system via said system interface.
  • 14. A storage device as claimed in claim 10, wherein said “n” is one.
  • 15. A storage device as claimed in claim 10, wherein a size of said sectors is 512 bytes.
  • 16. A storage device as claimed in claim 10, wherein said non-volatile semiconductor memory is a flash memory.
  • 17. A storage device as claimed in claim 10, wherein said non-volatile semiconductor memory is electrically erasable in a size of a sector data division.
  • 18. A storage device, comprising: a non-volatile semiconductor memory which is electrically erasable and which has first and second portions coupled to first and second data portions of a combination bus acting as first and second buses, respectively;a system interface adapted to couple data and commands between the system interface and an external host system; anda controller that reads data from the non-volatile semiconductor memory and transmits the data to the system interface in response to a read command received by the system interface;wherein the controller starts reading second sector data from the non-volatile semiconductor memory via the second data portion of the combination bus as the second bus, while the controller transmits first sector data that has been read from the non-volatile semiconductor memory via the first data portion of the combination bus as the first bus to the system interface, in response to the read command.
  • 19. A storage device as claimed in claim 18, wherein the controller, in response to the read command for successive sector data, reads Nth sector data from the non-volatile semiconductor memory into the controller,carries out data processing for the Nth sector data,transmits the Nth sector data after the data processing to the system interface,starts reading (N+n)th sector data from the non-volatile semiconductor memory for the data processing for the (N+n)th sector while the controller transmits the Nth sector data after the data processing to the system interface,carries out the data processing for the (N+n)th sector data, andtransmits the (N+n)th sector data after the data processing to the system interface.
  • 20. A storage device as claimed in claim 19, wherein the data processing comprises error correction processing for the successive sector data.
  • 21. A storage device as claimed in claim 19 comprising an error correction circuit for the successive sector data, and wherein the controller starts transmitting said (N+n)th sector data from the non-volatile semiconductor memory to the error correction circuit, while the controller transmits error-corrected Nth sector data to the system interface.
  • 22. A storage device as claimed in claim 19, wherein “n” is one.
  • 23. A storage device as claimed in claim 18, wherein a size of the sector data is 512 bytes.
  • 24. A storage device as claimed in claim 18, wherein the non-volatile semiconductor memory comprises flash memory.
  • 25. A storage device as claimed in claim 18, wherein the non-volatile semiconductor memory is electrically erasable in a size of a sector unit.
  • 26. A storage device as claimed in claim 18, wherein the first and second data portions are more particularly, upper and lower data portions, respectively, of the combination bus.
  • 27. A storage device, comprising: a non-volatile memory which is erasable and which has first and second portions coupled to first and second buses;a system interface coupled with an external host system; anda controller reading data from said non-volatile memory and transmitting said data to said host system via said system interface in response to a read command received by said system interface from said host system; andwherein said controller starts reading (N+n)th addressable-subdivision data from said first portion of said non-volatile memory via said first bus, while said controller transmits Nth addressable-subdivision data that has been read from said second portion of said non-volatile memory via said second bus, to said host system via said system interface, in response to said read command for successive addressable-subdivision data, where N and n are integers.
Priority Claims (1)
Number Date Country Kind
07-179075 Jul 1995 JP national
CROSS REFERENCE TO RELATED APPLICATION

This is a reissue application of U.S. application Ser. No. 11/599,388, now U.S. Pat. No. 7,721,165, which is a continuation of U.S. application Ser. No. 10/748,156, filed Dec. 31, 2003 now U.S. Pat. No. 7,234,087, which is a continuation of U.S. application Ser. No. 09/750,707, filed Jan. 2, 2001 (now U.S. Pat. No. 6,701,471), which is a continuation of U.S. application Ser. No. 09/544,609, filed Apr. 6, 2000 (now U.S. Pat. No. 6,199,187), which is a division of U.S. application Ser. No. 09/046,705, filed Mar. 24, 1998 now abandoned, which is a continuation of U.S. application Ser. No. 08/679,960, filed Jul. 15, 1996 (now U.S. Pat. No. 5,732,208). This application relates to and claims priority from Japanese Patent Application No. 07-179075, filed on Jul. 14, 1995. The entirety of the contents and subject matter of all of the above is incorporated herein by reference.

US Referenced Citations (126)
Number Name Date Kind
4064558 Hughes et al. Dec 1977 A
4389715 Eaton, Jr. et al. Jun 1983 A
4498146 Martinez Feb 1985 A
4780855 Iida et al. Oct 1988 A
4888773 Arlington et al. Dec 1989 A
4905242 Popp Feb 1990 A
4949309 Rao Aug 1990 A
4953122 Williams Aug 1990 A
4970692 Ali et al. Nov 1990 A
5021944 Sasaki et al. Jun 1991 A
5053990 Kreifels et al. Oct 1991 A
5058116 Chao et al. Oct 1991 A
5067111 Asano et al. Nov 1991 A
5123016 Müller et al. Jun 1992 A
5142540 Glasser Aug 1992 A
5172338 Mehrotra et al. Dec 1992 A
5198380 Harari Mar 1993 A
5200959 Gross et al. Apr 1993 A
5257367 Goodlander et al. Oct 1993 A
5267241 Kowal Nov 1993 A
5268319 Harari Dec 1993 A
5270979 Harari et al. Dec 1993 A
5291584 Challa et al. Mar 1994 A
5293236 Adachi et al. Mar 1994 A
5295255 Malecek et al. Mar 1994 A
5297029 Nakai et al. Mar 1994 A
5297148 Harari et al. Mar 1994 A
5305282 Choi Apr 1994 A
5315541 Harari et al. May 1994 A
5335234 Matteson et al. Aug 1994 A
5341487 Derwin et al. Aug 1994 A
5361227 Tanaka et al. Nov 1994 A
5396468 Harari et al. Mar 1995 A
5418752 Harari et al. May 1995 A
5422842 Cernea et al. Jun 1995 A
5428621 Mehrotra et al. Jun 1995 A
5430859 Norman et al. Jul 1995 A
5459850 Clay et al. Oct 1995 A
5469558 Lieberman et al. Nov 1995 A
5471478 Mangan et al. Nov 1995 A
5473753 Wells et al. Dec 1995 A
5477495 Tanaka et al. Dec 1995 A
5485474 Rabin Jan 1996 A
5491816 Matoba et al. Feb 1996 A
5499337 Gordon Mar 1996 A
5504760 Harari et al. Apr 1996 A
5508971 Cernea et al. Apr 1996 A
5509018 Niijima et al. Apr 1996 A
5509134 Fandrich et al. Apr 1996 A
5519843 Moran et al. May 1996 A
5530828 Kaki et al. Jun 1996 A
5532962 Auclair et al. Jul 1996 A
5537577 Sugimura et al. Jul 1996 A
5544356 Robinson et al. Aug 1996 A
5572466 Sukegawa Nov 1996 A
5579502 Konishi et al. Nov 1996 A
5603001 Sukegawa et al. Feb 1997 A
5612964 Haraszti Mar 1997 A
5629949 Zook May 1997 A
5630093 Holzhammer et al. May 1997 A
5640506 Duffy Jun 1997 A
5642316 Tran et al. Jun 1997 A
5644539 Yamagami et al. Jul 1997 A
5649148 Gresham Jul 1997 A
5663901 Wallace et al. Sep 1997 A
5689727 Bonke et al. Nov 1997 A
5719808 Harari et al. Feb 1998 A
5732208 Tamura et al. Mar 1998 A
5734816 Niijima et al. Mar 1998 A
5761220 Zook Jun 1998 A
5764571 Banks Jun 1998 A
5778418 Auclair et al. Jul 1998 A
5802551 Komatsu et al. Sep 1998 A
5841712 Wendell et al. Nov 1998 A
5844910 Niijima et al. Dec 1998 A
5845313 Estakhri et al. Dec 1998 A
5859804 Hedberg et al. Jan 1999 A
5878059 Maclellan Mar 1999 A
5889711 Yang et al. Mar 1999 A
5896327 Yang Apr 1999 A
5909390 Harari Jun 1999 A
5909541 Sampson et al. Jun 1999 A
5920515 Shaik et al. Jul 1999 A
5936971 Harari et al. Aug 1999 A
5940335 Kirihata Aug 1999 A
5956524 Gajjar et al. Sep 1999 A
5995413 Holzmann et al. Nov 1999 A
6002620 Tran et al. Dec 1999 A
6031758 Katayama et al. Feb 2000 A
6041368 Nakatsuji et al. Mar 2000 A
6058047 Kikuchi May 2000 A
6108253 Ohta Aug 2000 A
6115785 Estakhri et al. Sep 2000 A
6119245 Hiratsuka Sep 2000 A
6125469 Zook et al. Sep 2000 A
6145051 Estakhri et al. Nov 2000 A
6230233 Lofgren et al. May 2001 B1
6236601 Katayama et al. May 2001 B1
6317371 Katayama et al. Nov 2001 B2
6347051 Yamagami et al. Feb 2002 B2
6370059 Kato et al. Apr 2002 B2
6373758 Hughes et al. Apr 2002 B1
6388920 Katayama et al. May 2002 B2
6421279 Tobita et al. Jul 2002 B1
6426893 Conley et al. Jul 2002 B1
6434034 Wallace et al. Aug 2002 B1
6445626 Hsu et al. Sep 2002 B1
6466478 Park Oct 2002 B1
6542405 Katayama et al. Apr 2003 B2
6567334 Yamagami et al. May 2003 B2
6639857 Kang et al. Oct 2003 B2
6701471 Tamura et al. Mar 2004 B2
6728138 Katayama et al. Apr 2004 B2
6766409 Komatsu et al. Jul 2004 B2
7002844 Park Feb 2006 B2
7064995 Yamagami et al. Jun 2006 B2
7289363 Ha Oct 2007 B2
7327624 Yamagami et al. Feb 2008 B2
7366016 Kato et al. Apr 2008 B2
7616485 Katayama et al. Nov 2009 B2
7617485 Hayama et al. Nov 2009 B2
7746697 Kato et al. Jun 2010 B2
8064257 Katayama et al. Nov 2011 B2
20030088611 Gajjar et al. May 2003 A1
20040022249 Katayama et al. Feb 2004 A1
20140199461 De Baets Jul 2014 A1
Foreign Referenced Citations (33)
Number Date Country
0 357 361 Mar 1990 EP
0 360 526 Mar 1990 EP
0 548 564 Jun 1993 EP
0 615 184 Sep 1994 EP
62-36799 Feb 1987 JP
62-239252 Oct 1987 JP
63-200398 Aug 1988 JP
63-219045 Sep 1988 JP
2-24752 Jan 1990 JP
2-62687 Mar 1990 JP
2-123442 May 1990 JP
3-131951 Jun 1991 JP
4-308971 Oct 1992 JP
4-311236 Nov 1992 JP
4-354218 Dec 1992 JP
05-274219 Jan 1993 JP
5-67005 Mar 1993 JP
5-33252 Apr 1993 JP
5-274219 Oct 1993 JP
06-020483 Jan 1994 JP
6044144 Feb 1994 JP
6-105443 Apr 1994 JP
6-110793 Apr 1994 JP
06-119128 Apr 1994 JP
6-124596 May 1994 JP
7-44669 Feb 1995 JP
7-56816 Mar 1995 JP
07-056816 Mar 1995 JP
9-212429 Aug 1997 JP
63-219045 Sep 1998 JP
2001-501000 Jan 2001 JP
4563465 Nov 2008 JP
WO097-32253 Apr 1997 WO
Non-Patent Literature Citations (20)
Entry
HN58064P-25, HN58064P-30, HN58064P-45 Preliminary 8192-word×8-bit Electrically Erasable and Programmable ROM, (5 pgs.).
HN58064 Series, 8192-word×8-bit Electrically Erasable and Programmable ROM, (6 pgs.).
Lahti, W. et al: “Store Data in a Flash”, BYTE, Nov. 1990, pp. 311-313, 315 and 317.
Momodomi, et al: “A 4-Mb NAND EEPROM with Tight Programmed Vt, Distribution,” IEEE Journal of Solid-State Circuits, vol. 26, No. 4, Apr. 1991, pp. 492-496.
Pashley, R. et al: “Flash Memories: the Best of Two Worlds,” IEEE Spectrum, vol. 26, No. 12, Dec. 1989, pp. 4-6 and 30-33.
Wszola, S., et al: “Review Flashdisk: Not Your Father's RAM Disk”, BYTE, Sep. 1990, pp. 214-215.
Niijima, et al, “Design of a Solid-State File Using Flash EEPROM” (IBM J. Res. Develop., vol. 39, No. 5, Sep. 1995, pp. 531-543.
Defendants' Invalidity Contentions memo (including Exhibits B and F1-F12), in Eastern District of Texas, Case No. 2:11-CV-391-JRG (Aug. 3, 2012).
Iwata, et al., A High-Density NAND EEPROM with Block-Page Programming for Microcomputer Applications, IEEE Journal of Solid-State Circuits, vol. 25, No. 2, Apr. 1990, pp. 417-424.
Markus Levy, Interfacing Microsoft's Flash File System, Reprinted with permission from Circuit Cellar, Inc., Jun./Jul. 1991, pp. 4-318-4-325.
Curt Fritze, News Release, Revolutionary High Performance, High Capacity Romdisk Solid-State Disk and Derive Emulator, Jan. 15, 1991.
Kynett, et al., An In-System Reprogrammable 32K×8 CMOS Flash Memory, IEEE Journal of Solid-State Circuits, vol. 23, No. 5, Oct. 1988, pp. 1157-1163.
Keith Fritze, Programming Interface Specification, Feb. 24, 1992, pp. 1-13.
John Reimer, Fujitsu Microelectronics, Inc., PC Card Standard Release 1.0, Personal Computer Memory Card International Association, Nov. 1990.
Exhibit A—Motivation to Combine References.
Ehibit C—Motivation to Combine References.
Ehibit D—Motivation to Combine References.
Ehibits H-1 Thru H-10.
Ehibits G-1 Thru G-21.
Ehibits E-1 Thru E-27.
Divisions (1)
Number Date Country
Parent 09046705 Mar 1998 US
Child 09544609 US
Continuations (4)
Number Date Country
Parent 10748156 Dec 2003 US
Child 11599388 US
Parent 09750707 Jan 2001 US
Child 10748156 US
Parent 09544609 Apr 2000 US
Child 09750707 US
Parent 08679960 Jul 1996 US
Child 09046705 US
Reissues (1)
Number Date Country
Parent 11599388 Nov 2006 US
Child 13475679 US