Uczę się na koniec egzaminu semestralnego i jestem mylony z następującym pytaniem. Jeśli procesor ma 16-bitową magistralę adresową i 8-bitowe słowa, ile pamięci w KB może adresować? Z mojego zrozumienia wynika, że może on adresować 64 KB, jednak w tym celu użyłem 2 ^ 16 = 65 536. W tych obliczeniach nigdy nie uwzględniono 8-bitowych słów, więc nie jestem pewien, czy jest poprawny. Co również oznacza 8-bitowe słowa?
Twoje zdrowie
Odpowiedzi:
Słowo w większości architektur to największy element danych, który można przenieść do iz pamięci roboczej w ramach jednej operacji.
Największy możliwy rozmiar adresu, używany do oznaczenia lokalizacji w pamięci, jest zwykle nazywany słowem sprzętowym.
Tak więc twój procesor będzie w stanie adresować 64 KB (2 ^ 16), ale będzie w stanie przesłać tylko w jednej operacji 8 bitów.
źródło
Słowo maszynowe lub zwykle tylko słowo jest największą jednostką danych, którą CPU może manipulować jako całość za pomocą wspólnych instrukcji. Nie ma to nic wspólnego z adresowaniem pamięci.
Liczy się jednostka rozdzielczości adresu , która zwykle jest 8-bitowym bajtem nawet w architekturze 16/32/64 bitów. Nie musi być równy rozmiarowi słowa maszynowego, ale prawdopodobnie tak jest w twoim przypadku.
8-bitowa jednostka adresowalna w połączeniu z 16-bitową magistralą adresową wynosi 64 KB pamięci RAM, którą procesor może adresować.
źródło
W kontekście rozmiar słowa odpowiada rozmiarowi adresu opisującemu magistralę pamięci. Do pamięci miga 16 bitów, dzięki czemu może ona wybrać 64 lokalizacje. Następnie każda lokalizacja zawiera 8 bitów.
Rozmiar słowa w tym przypadku może, ale nie musi, odpowiadać rozmiarowi jednostki obliczeniowej procesora, i może, ale nie musi, odpowiadać logicznej ziarnistości w adresowaniu.
Na przykład procesor może reklamować 16-bitową magistralę (w tym celu). Używa 16-bitowych adresów w swoich instrukcjach i podobnie jak twój przykład ma 64ki. Ale ma 15 bitów magistrali adresowej i 16 bitów magistrali danych. Wymaga tylko adresów 32ki i zawsze otrzymuje 2 bajty z każdej lokalizacji. (Jeśli instrukcja chciała 1 bajtu, wysłałaby adres z najmniejszym brakującym bitem, w tym kroku pobrała oba bajty, a następnie spojrzała na najmniejszy bit pożądanego adresu, aby zdecydować, której połowy użyć).
Należy pamiętać, że wspomniane przez innych przełączanie banków, PAE itp. Nie są tutaj istotne. Jednostka zarządzania pamięcią może używać adresów 16-bitowych i mieć 20-bitowy adres sprzętowy, więc procesor musi się przełączać i mapować, aby wykorzystać rzeczywisty 20-bitowy zakres adresów układów pamięci RAM, które można adresować.
Pamiętaj, aby w odpowiedziach podać jednostki. „64ki”. Czego? 8-bitowe słowa, dzięki czemu (wciąż) 64 bajty adresowalnej pamięci RAM. Ten krok eliminuje zamieszanie i sprawia, że takie problemy stają się banalne.
źródło
W obliczeniach musisz także użyć wielkości słowa. Odpowiedź to 64 KB.
Możesz zaadresować 2 ^ 16 słów, a każde słowo ma 8 bitów (= 1 bajt). Dlatego jest to 64 KB.
Jeśli rozmiar słowa wynosił 16 bitów. Odpowiedź wynosiłaby 128 KB.
źródło
Są dwie strony tego, co twój instruktor prawdopodobnie chce, abyś mu powiedział i jaka jest rzeczywistość.
Najpierw prawdopodobnie instruktor chce, żebyś mu powiedział.
„16 bitów może adresować 2 ^ 16 lokalizacji pamięci, każda lokalizacja to 8 bitów. Więc możemy adresować pamięć 524288 bitów (65536 oktetów).”
Odzwierciedla to jednak raczej uproszczony światopogląd. Rzeczywistość jest bardziej skomplikowana i udzielenie ostatecznej odpowiedzi wymaga więcej informacji. Niektóre ze sposobów, w jakie prawdziwe systemy mogą być bardziej skomplikowane, obejmują:
źródło