A cache controller is connected to a processor and a main memory. The
cache controller is also connected to a cache memory that can read and
write at a speed higher than the main memory. The cache memory is
provided with a plurality of cache lines that include a tag area storing
an address on the main memory, a capacity area storing a capacity value
of a cache block, and a cache block. When a read request is executed from
the processor to the main memory, the cache controller checks whether the
requested data is present in the cache memory or not. A cache capacity
determination unit determines a capacity value for the cache block and
supplies to a capacity area.