Final answer:
The correct answer is option (b) 21 bits, which includes 11 tag bits for the address, 8 bits for data, and typically 2 or more bits for control information such as the valid and dirty bits in an associative cache mapping system.
Step-by-step explanation:
The correct answer is option (b) 21 bits. To determine the size of each word in the cache memory, we need to consider the tag size, which must uniquely identify each block of the main memory. With an 8K-byte main memory, there are 8192 bytes total. Since we have 2K words of cache, we need enough bits to distinguish each block in main memory that could potentially map to one word in the cache. The size of the cache word has to account for the actual data word size, the tag, and possibly some additional control bits, such as valid bit or dirty bit.
In associative mapping, any block can be placed into any line; thus, the tag must contain enough bits to uniquely identify each block of memory. Since 8K is double the size of 2K, the blocks in memory are effectively 4 bytes each (8K bytes / 2K words). Therefore, we need enough bits to represent all the possible blocks. There are 2^11 blocks because 2^11 equals 2048, which is the number of words in 2K. We need 11 bits for the tag. If we assume each word is one byte, then we have 8 bits for data. Together with the tag (11 bits), we would have 8 + 11 = 19 bits. However, we must also account for at least a valid bit, which adds another bit, bring us to 20 bits. Therefore, option (d) 20 bits is closer, but since none of the options perfectly fits this analysis, and assuming there might be even more control bits (such as a dirty bit), the best bet, considering standard control bits, would be (b) 21 bits.