Tuesday 8 January 2013

Memory - Cache Memory

- Terletak di antara processor dan main memory.


- Kecil dan mahal. 

Processor dapat membaca data dari cache lebih cepat dibanding dengan main memory atau RAM.


 Apabila microprocessor membaca data, ia akan membaca data dari cache memory  terlebih dahulu untuk menjimatkan masa. 

-  RAM juga boleh dianggap sebagai cache memory dalam hard disk storage kerana apabila computer dihidupkan, semua kandungan RAM didapatkan dari hard disk. RAM mempunyai suatu kawasan yang istimewa dipanggil disk cache untuk menyimpan data yang baru dibaca.

- Salah satu cara memory controller dapat mengenal pasti sama ada value yang 'addressed' dalam memory sedia ada dalam cache adalah dengan menyimpan kedua-dua address dan value dari main memory di dalam cache. ( Address yang disimpan dalam sejenis memori dipanggil  associative memory atau content addressable memory).

- Satu sifat  associative memory atau content addressable memory ialah address suatu value akan 'returned' jika value itu disimpan di dalam memori. Jika tidak, satu mesej bahawa value itu tidak dapat dalam associative memory akan 'returned' .



- Jika address tidak didapatkan dalam associative memory, maka value akan didapat dari main memory.

Associative memory sangat mahal, kerana satu 'comparator' diperlukan oleh setiap kata di dalam memori, supaya semua bandingan boleh dibuat secara parallel.

- Satu cara yang lebih menjimatkan ialah menggunakan direct mapping. Sebahagian daripada memory address (biasanya ialah  low order digits of the address)   yang dipanggil index digunakan untuk 'address' satu kata di dalam cache. Bagi  high-order bits in the address yang dipanggil tag, disimpan dalam cache memori dengan data.

- Block merupakan unit of copying. Kalao data yang diakses terdapat di tahap atas, 'hit' didapat manakala 'miss' didapat jika data yang diakses tidak didapati. Block disalin dari tahap rendah. 

hit ratio = hits/accesses
  miss ratio = misses/accesses
          = 1- hit ratio
time taken =  miss  penalty      

- Block yang lebih besar sepatutnya merendahkan miss rate tetapi dalam cache saiz tertentu, block yang besar maksudnya block yang lebih sedikit pertandingan yang lebih banyak pula meningkatkan miss rate. Block yang besar dianggap pollution.
    
[ On cache hit, CPU proceed normally. 
  On cache miss, 
  •  stall the CPU pipeline
  •  Fetch block from next level of hierarchy
  • Instruction cache miss
         - Restart instruction fetch

  • Data cache miss

         - Complete data access ]

-  Memory stall cycles = (memory accesses/program)*miss rate*miss penalty
                                  = (instruction /program)*(misses/instruction)*miss penalty

- Averag memory access time(AMAT) = hit time + miss rate *miss penalty 





KANG YI SHIN
B031210356

No comments:

Post a Comment