Z łatwością rozumiem, w jaki sposób .bss i kod mają fizyczne reprezentacje w procesorze, który ma zestaw pamięci dla instrukcji, które licznik programu może policzyć, a bss (blokowy symbol początkowy) to tylko dane globalne. Ale jest też stos zmiennych lokalnych i sterta pamięci dynamicznej. Jak te rzeczy są fizycznie wprowadzone w obwód?
źródło
Logicznie rzecz biorąc stos i sterty są zwykle tylko pamięcią; na poziomie implementacji będą one jednak obsługiwane przede wszystkim z pamięci podręcznej. W większości systemów docierają tam dynamicznie za pomocą algorytmów buforowania, ale istnieją systemy, które obsługują wyraźną lokalizację w pamięci podręcznej lub innej pamięci szybszej niż zwykle, i prawdopodobnie także te, które obsługują pozostawianie wskazówek, że określone dane powinny mieć pierwszeństwo przy umieszczaniu tam, ponieważ pozwala na miejsce.
Mam nadzieję, że projektowanie niskopoziomowego oprogramowania i generatorów kodu kompilatora uwzględnia organizację dostępu do danych, która może skutkować dobrym wykorzystaniem pamięci podręcznej w porównaniu do ciągłych braków pamięci podręcznej.
Niektóre procesory mają rejestr adresów zwrotnych, który działa jako rodzaj jednopunktowej pamięci podręcznej stosu jawnego (prawdopodobnie są też te z kilkoma głębokimi stosami sprzętowymi, choć przykłady nie przychodzą mi do głowy).
źródło