Não tenho certeza se o princípio é esse, mas parece que a quantidade de linhas deve ser em partes iguais considerando o tamanho do bloco, então basta dividir a cache pelo bloco.
Se for isso mesmo, a ideia aqui é transformar tudo para uma mesma unidade para fazer a divisão. Então, vamos deixar tudo em b (bit) que é a menor unidade que foi usada para indicar o tamanho da cache.
Bom, sabendo que o bloco é de 8 bytes, ou seja 8B (B maiúsculo), isso equivale a 2^3B, que por sua vez equivale a 2^3.2^3b pois, cada byte são 8 bits. Então temos que o tamanho do bloco é 2^6b (lê-se dois elevado a seis bits).
Já o tamano da cache temos 1Mb, isso equivale a 2^10kb, que é igual a (2^10).(2^10)b que é igual a 2^20b
Divindo o tamanho da cache pelo tamanho do bloco e(tudo em bit), temos 2^20 / 2^6 que é igual a 2^14
Me avisem se eu estiver errado, por favor!
Bons estudos!