Saya dapat dengan mudah memahami bagaimana .bss dan kode memiliki representasi fisik dalam prosesor yang memiliki bank memori untuk instruksi yang dapat dihitung oleh penghitung program dan bss (simbol awal blok) hanyalah data global. Tapi kemudian ada tumpukan untuk variabel lokal dan tumpukan untuk memori dinamis. Bagaimana benda-benda ini diletakkan di sirkuit secara fisik?
sumber
Secara logis tumpukan, dan tumpukan biasanya hanya memori; pada tingkat implementasi, mereka diharapkan akan dilayani terutama dari cache. Di sebagian besar sistem mereka tiba di sana secara dinamis melalui algoritma caching, tetapi ada sistem yang mendukung lokasi eksplisit dalam cache atau memori lain yang lebih cepat dari biasanya, dan kemungkinan juga yang mendukung petunjuk bahwa data tertentu harus memiliki prioritas preferensial untuk penempatan di sana sebagai ruang memungkinkan.
Desain perangkat lunak tingkat rendah dan generator kode kompiler mudah-mudahan mempertimbangkan pengaturan akses data yang cenderung menghasilkan pemanfaatan cache yang baik, vs. kesalahan cache yang konstan.
Beberapa prosesor memiliki register alamat pengirim, yang berfungsi sebagai semacam tumpukan cache eksplisit sedalam-dalam (mungkin ada juga yang memiliki beberapa tumpukan perangkat keras yang dalam, meskipun contoh tidak muncul dalam pikiran).
sumber