# Approximate cache size & cache line size from optimal tile size

I wrote a program that multiplies two $$N\times N$$ matrices represented as 2D arrays by tiling the matrices into subsets with variable tile size. Each matrix element is an 8-Byte integer. I tested the runtime with a number of tile sizes ranging from $$1$$ to $$N$$ and found that the runtime is optimal with a tile size of $$S$$.

I ran this program on a computer that has 3 cache levels and I know the cache size, line size, and associativity of each but suppose I didn't. Is there a way that I could approximate the cache size and cache line size of one or all components of my memory hierarchy using the information I wrote in the first paragraph?