Patent ID: 8909684

Claim:
A semiconductor device comprising: a semiconductor memory device capable of holding data; and a memory controller which controls a write operation to write data received from a host unit into the semiconductor memory device, and includes an interface to communicate with the host unit, wherein the host unit includes a first processor which executes file system software, and the memory controller includes a second processor that executes software independently of the first processor, wherein the semiconductor device is removable from the host unit, the semiconductor device includes a logical address space including a plurality of address areas each having a write limiting condition according to an address and a type of data to be written into the semiconductor memory device, the memory controller writes a file name and file data associated with the file name by the host unit into the semiconductor memory device, when receiving, from the host unit, alteration requests of the file name and file data for a first file that has been written into the semiconductor memory device, the memory controller rejects the alteration requests, when receiving, from the host unit, write requests for a second file that differs from the first file and has not been written into the semiconductor memory device, the memory controller allows the write requests, and a process for rejecting the alteration requests is executed by the second processor independently of a process in the first processor, wherein a file system of the semiconductor memory device is a File Allocation Table (FAT), the address areas include a directory entry area for storing a file name, a FAT area for storing FAT data, and a data area for storing file data, the controller allows a request for accessing the FAT area from the host unit when the host unit requests overwriting a value with the same value in the FAT area, when the host unit requests overwriting a value indicating an unused area with another value in the FAT area or when the host unit requests overwriting a value indicating an end of a FAT chain with a valid cluster value, otherwise the controller rejects the request for accessing the FAT area from the host unit, and the controller allows a request for accessing the directory entry area from the host unit when the host unit requests overwriting a value with the same value in the directory entry area, or when the host unit requests overwriting a value indicating an unused area with another value in the directory entry area, otherwise the controller rejects the request for accessing the directory entry area from the host unit.