referring now to fig2 a digital system 200 , which may be a computer ( personal computer ( pc )), digital camera , etc ., is illustrated to include a host 202 , a controller device 204 and a flash memory unit 206 . although not shown in detail , the host 202 includes a central processing unit ( cpu ), i . e ., the &# 34 ; brain &# 34 ; of the digital system , coupled to access information through the controller device 204 from and to the memory unit 206 which , as depicted , is comprised of at least two flash memory devices in accordance with the present invention . each of these devices may be an integrated circuit . the host 202 is shown to communicate with the controller 204 through host bus 218 and the controller device 204 is shown coupled to the memory unit 206 through the memory signals 205 . the controller device 204 is an integrated circuit ( or semiconductor ) shown to include a host interface circuit 208 , a microprocessor 210 , and a flash interface circuit 214 . the host interface 208 is depicted to be coupled to the host 202 through host bus 218 , which includes an address bus , a bi - directional data bus and control signals ( not shown separately ). depending on the architecture of the host being employed , the host address and data busses may be comprised of a single bus carrying both address and data information by multiplexing address and data signals onto the same bus . it should be noted that the term bus as used herein includes multiple electrical conductors or signal lines . the host bus 218 may be a pcmcia interface , an ata interface or other kinds of interfaces employed by the industry . the host interface 208 is shown coupled to the host bus 218 and is further shown to be coupled through a microprocessor bus 230 to the microprocessor 210 . microprocessor 210 is further coupled to the flash interface 214 through the microprocessor bus 230 , which facilitates communication of address and data information and control signals therebetween . the flash interface 214 includes a space manager block 226 . the flash interface circuit 214 is coupled to the memory unit 206 through a flash address bus 234 , a bidirectional flash data bus 236 and flash control signals 238 . in operation , the host 202 may be required to access the memory unit 206 during performance of various operations such as reading and writing . in doing so , the host 202 provides the address of a block of information it wishes to access ( commonly referred to as the logical block address ( lba )) to the controller 204 through the host bus 218 . in pc applications , a block of information is typically a sector as employed in conventional hard disk drives , with each sector typically having 512 bytes of data , although other - sized sectors may be similarly employed . microprocessor 210 executes instructions in the form of program code from a volatile memory structure ( such as rom ( read - only memory ) or ram 270 , ( read - and - write memory )) located either within or outside of the microprocessor 210 block to instruct the space manager 226 to translate the lba , provided by the host , to the next unused ( or free ) addressable storage block location available within the memory unit 206 . the translated address is commonly referred to as a physical block address ( pba ). the space manager may employ any one of a variety of algorithms to find the next available ( or free ) block located within the flash memory devices . an example of a space manager is disclosed in the earlier - referenced u . s . pat . no . 5 , 485 , 595 , the disclosure of which is herein incorporated by reference , particularly with reference to fig1 - 13 , although other space management methods and apparatus may likewise be employed by the present invention . the microprocessor 210 includes a register ( s ) 211 for maintaining track of the number of free blocks within each of the flash devices 242 - 248 of the memory unit 206 . this register may be a register file or any other kind of volatile storage space commonly employed by microprocessors for storage . the pba designated by the space manager 226 is communicated through the memory signals 205 to the memory unit 206 . at this time , it should be noted that the flash interface circuit 214 is coupled to receive the lba provided by the host ( to the host interface circuit 208 ) through the microprocessor bus 230 . memory unit 206 generally includes a plurality of nonvolatile memory devices , such as flash or eeprom type of memory , ( these devices may also each be a chip or integrated circuit as commonly referred to in the industry ), labeled as 242 - 248 ( in fig2 ). each one of the nonvolatile devices , shown in the preferred embodiment of fig2 has a capacity of 4 mbytes and is therefore capable of storing 8192 sectors with each sector being 512 bytes . nonvolatile devices and blocks of alternative sizes may be similarly employed . in fig2 the controller 204 is further shown to include a data buffer 250 , which is shown coupled through the microprocessor bus 230 to the microprocessor 210 , the flash interface circuit 214 and the host interface 208 , for temporary storage of the information stored and retrieved from the memory unit 206 . an ecc block 252 is coupled through the microprocessor bus 230 to the microprocessor 210 and the data buffer 250 for operating on the data that is stored within the memory unit 206 for detection and correction of errors that may be included in the data . the space manager 226 is coupled to the host interface circuit 208 through the microprocessor bus 230 as well as the flash interface circuit 214 . the space manager 226 includes a space manager state machine 254 and a space manager table 256 . the space manager state machine 254 operates , among other functions , to find the next available free space within the memory unit 206 . the space manager table 256 is used for storing status information , such as location of stored information and availability of storage space within the memory unit 206 , as will be discussed shortly in further detail . the flash interface circuit 214 provides chip enable signals and ready / busy ( rdy / bsy *) signals to the memory unit 206 . in the embodiment shown in fig2 the memory signals 205 include a plurality of control signals comprising chip enable signals and rdy / bsy * signals . each of the chip enable signals and rdy / bsy * signals is coupled to one of the nonvolatile devices 242 - 248 . the chip enable signals , when active , select the nonvolatile device that is to be operated on by the controller 204 . since each nonvolatile device receives its own chip enable signal , the controller 204 can initiate a separate operation relative to each of nonvolatile devices and at the same time monitor those operations . for example , nonvolatile device 242 may be updated with information supplied by the host while nonvolatile device 244 is being erased . the significance of having a separate rdy / bsy signal for each nonvolatile device is that the controller can monitor the status of each of the nonvolatile devices simultaneously without interfering with the operation of the other nonvolatile devices . in an alternative embodiment , two rdy / bsy * signals may be used for operating all of the nonvolatile devices by coupling a first one of the rdy / bsy * signals to the even - numbered ( or every other ) nonvolatile devices and coupling a second one of the rdy / bsy signals to the odd - numbered nonvolatile devices . this decreases the number of signals needed between the controller 204 and the memory unit 206 . the controller 204 then manages the write and erase operations based upon the even and odd numbering of the nonvolatile devices . the controller searches for the maximum number of free blocks available in the even and odd nonvolatile devices depending upon which nonvolatile device has an ` old ` block thereby requiring erasing . if the ` old ` block that is to be erased is in one of the even - numbered nonvolatile devices , the controller searches for a free ( or available ) block within the odd - numbered nonvolatile devices so that simultaneous execution of erase and write operations on the memory unit 206 is effected . fig3 depicts the memory unit 206 in addition to the status of the information stored in the memory unit 206 , as organized within the space manager table 254 . in an embodiment of the present invention , as shown in fig3 the information in each of the nonvolatile devices 242 - 248 is organized into blocks with each block including 16 sectors , although alternatively , each block may include less or more number of sectors . each nonvolatile device is shown to include a predetermined number of blocks , for example , nonvolatile device 242 includes n number of blocks , nonvolatile device 242 includes m number of blocks , nonvolatile device 246 includes x number of blocks and nonvolatile device 248 includes y number of blocks . while each nonvolatile device may include a different number of blocks than other nonvolatile devices , in the embodiment shown and discussed herein , each nonvolatile device includes the same number of blocks . for example , each nonvolatile device may include 1024 blocks such that the memory unit 206 has the capacity to store 4096 blocks or 32 mbytes of information ( each block having 16 sectors and each sector having 512 bytes ). the table 254 is shown to include information regarding each block within the memory unit 206 . the information for the blocks 0 through n - 1 of the nonvolatile device 242 is stored at the top of the table 254 , followed by remaining blocks of the nonvolatile devices 244 - 248 . each row of the table 254 contains fields of information regarding the status of the blocks within the memory unit 206 . specifically , a virtual physical block address ( vpba ) field 260 includes address information regarding the location of the corresponding block within the memory unit 206 . each row of the table 254 further includes flag fields such as a ` used ` flag field 262 , an ` old ` flag field 264 and a ` defect ` flag field 266 . the ` used ` flag field maintains flag information which indicates whether or not the corresponding block within the memory unit 206 is free . when set , this flag indicates that the corresponding block contains information . the ` old ` flag field 264 represents information regarding whether or not information of the corresponding block has been superseded such that the most recent information now resides in another block within the memory unit 206 . the ` defect ` flag field 266 contains information regarding whether or not the corresponding block within the memory unit 206 is defective . the information within the table 254 is updated by the microprocessor 210 ( in fig2 ). referring now to fig4 a and 4b , a flow chart is shown of the steps performed in carrying out a write operation . most of these steps are performed by the microprocessor 210 ( in fig2 ) by executing the program stored in either the rom or a ram device 270 ( in fig2 ). in fig4 a , at 272 , a write operation begins and the host 202 ( in fig2 ) issues a write command at step 274 to the controller 204 ( in fig2 ). the write command includes an address indicating the location that is to be written by the host in addition to the data being stored . at step 276 , the controller 204 ( in fig2 ), upon receipt of the write command , translates the host - provided address from a chs format to an lba format and operates to effectively divide that address by 16 by shifting and masking the 4 lsbs of the address as discussed earlier herein above . at 278 the determination is made as to whether or not any of the blocks within the memory unit 206 are ` old ` and need to be erased . this determination is made by the space manager 226 ( in fig2 ) by looking for the ` old ` flag field 264 in table 254 ( in fig3 ) to be set for any of the blocks within the memory unit 206 . this may be performed in the background without requiring a host - initiated command , although preferably waiting for a command from the host has certain advantages . specifically , when the command from the host is a read command , and the address of the block being read is an ` old ` pba address , the controller services the host - initiated read command before starting an erase command . otherwise , the controller has to first wait until the erase operation is completed prior to servicing the host - initiated read command and this adversely impacts system performance . referring back to fig4 a , at step 280 , if any blocks are ` old `, the information within the block has been superseded by new information . the erase operation is commenced erasing those blocks that are marked ` old `. however , if at 278 there are no blocks that are marked as ` old `, the erase operation at step 280 is skipped . next , it is determined at 282 whether the host - provided address is the address of a block that has been written to by the host prior to being erased . in such a case , the ` used ` flag in the ` used ` flag field 262 ( in fig3 ) of table 254 would be set for that particular block . assuming that the host - provided address is the address of a block that has been previously written to , the method presented in fig4 a is continued by performing step 284 of searching for a free block that has not been written to prior to the blocks last erasure . the free ( or available ) block is going to be located in one of the nonvolatile devices 242 - 248 wherein the greatest number of free blocks reside and which is other than the nonvolatile device that includes the previously written block . for example , if the previously - written block , as determined at 282 is within the nonvolatile device 242 ( in fig2 ), then the free block located at step 284 in fig4 a will be located in a nonvolatile device other than the nonvolatile device 242 and it will be located in one of the nonvolatile devices 244 - 248 wherein the greatest number of free blocks are located . it should be noted that the number of free blocks within each of the nonvolatile devices 242 - 248 is maintained in a register ( s ) 211 ( in fig2 as explained earlier ) for each nonvolatile device and accessed by the microprocessor 210 . upon power - up , the microprocessor 210 , by executing the program residing within the ram 270 or the rom initializes the registers 21 1 that maintain the number of free blocks for each of the nonvolatile devices to a value that represents the number of free blocks for each nonvolatile device by examining every block of the memory unit 206 . this value excludes any defective blocks , but all remaining blocks would be included in the free block value or count for each chip , which the microprocessor 210 maintains . referring back to fig4 a , after 282 , if the host - provided address is not the same as the block that was previously written to by the host , then step 286 is performed at which a search takes place for a free block within the memory unit 206 and particularly within one of the nonvolatile devices 242 - 248 that has the greatest number of free blocks . after steps 286 and 284 , step 288 is performed at which the pba associated with the free block that was found at steps 284 and 286 becomes the destination pba . accordingly , the vpba field 260 ( in fig3 ) of table 254 contains the destination pba corresponding to the free block . the destination pba is located in a row of the table 254 that is identified by the lba calculated at step 276 . the destination pba is ultimately provided to the memory unit 206 for use in identifying the block within which the new information ( or host - provided data ) will be stored . at step 290 in fig4 b , the data provided by the host is written to the block addressed by the destination pba within the memory unit 206 . also , the value representing the number of free blocks for the nonvolatile device in which the host - provided data is being written , is decremented a by one to reflect the current number of free blocks available within that nonvolatile memory device . at 300 , the erase operation is checked for completion ; if still in progress , the process awaits completion of the erase operation . at step 301 , the value representing the number of free blocks relative to the nonvolatile device in which the ` old ` block was erased , is incremented by one . at 302 , basically the same test that was performed at 282 in fig4 a is again performed to determine whether the block being written is the same as the block previously written prior to the last erase operation of the same block . if so , at step 304 , the remaining information , if need be , is moved from the old block to the new block . that is , within the memory unit 206 , any block data that was not updated during the storage of the host - provided data , is moved from the block addressed by the old pba ( the old pba identifies the location of the block within the memory unit 206 that contained the previously - written host data ) to the destination pba . for example , if certain sectors of a block ( as discussed above , a block contains 16 sectors in the preferred embodiment , although others sizes of blocks may be employed using the present invention ) have been previously written and are now being rewritten , the remaining sectors of the previously - written block that are not being updated need to be moved to corresponding sectors within the new block of the memory unit 206 where the host - provided data was written ( this is actually the location of the free block ). this move operation at step 304 may employ algorithms that were disclosed in a previously filed application and referred to hereinabove , entitled &# 34 ; moving sectors within a block of information in a flash memory mass storage architecture &# 34 ;, assigned application ser . no . 08 / 831 , 266 , and filed on mar . 31 , 1997 . the disclosure of this application is incorporated herein by reference . upon completion of the move operation at step 304 , step 306 is performed during which the ` old ` block where information was moved therefrom is marked as ` old ` by setting the ` old ` flag field 264 in table 254 ( in fig3 ). this indicates that the ` old ` block within the memory unit 206 needs to be erased since its data has been superseded . this completes the write operation . upon power - up , the controller 204 ( in fig2 ) assigns a predetermined number of blocks to each of the nonvolatile memory devices 242 - 248 in accordance with the capacity of each device . this information is later used by the space manager to search only those blocks that are assigned to the device having the greatest number of free or available blocks , as described above . thus , the method and apparatus of the present invention as described hereinabove cause erase operations to be performed in the background during write operations thereby increasing system performance . furthermore , during a write ( or store ) operation , a search for free blocks of the entire nonvolatile memory unit is avoided as is done by prior art systems . in the present invention , in the search for a free block is conducted only within one of the nonvolatile devices , i . e . the device with the greatest number of free blocks . this significantly improves system performance by avoiding a lengthy search and as more devices are added to obtain higher memory capacity , the reduction in the time to search for free blocks becomes even more notable . moreover , by searching for a free block within the nonvolatile device having the greatest number of free blocks , there is a fairly equal usage of nonvolatile memory devices which is of significance due to the characteristics associated with flash or eeprom type of memory cells in having a limited lifetime in effectively maintaining their storage capability . although the present invention has been described in terms of specific embodiments it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art . it is therefore intended that the following claims be interpreted as covering all such alterations and modification as fall within the true spirit and scope of the invention .