A FLASH controller is disclosed. The controller comprises a
USB interface unit. The
USB interface unit implements a
USB standard that has a
bus speed equal or greater than 12 Mb / s. The controller includes an internal
bus coupled to the USB interface unit; and a FLASH interface unit coupled to the internal
bus. The FLASH interface unit includes FLASH controller logic that allows the
throughput for access to the
FLASH memory to match the speed of the USB standard. Advantages of the FLASH controller in accordance with the present invention include (1) utilizing the higher speed USB interface such as the USB 2.0 standard, which substantially increases the serial
throughput between USB host and FLASH controller; (2) utilizing more advanced FLASH
control logic which is implemented to raise the
throughput for the
FLASH memory access; (3) utilizing an intelligent
algorithm to detect and access the different FLASH types, which broadens the sourcing and the supply of
FLASH memory; (4) by storing the
software program along with data in FLASH memory which results in the cost of the controller being reduced, and also makes the
software program field changeable and upgradeable; and (5) providing high integration, which substantially reduces the overall space needed and reduces the complexity and the cost of manufacturing.