2013-05-26 22 views
6

Nie po raz pierwszy przyszło mi to do głowy, ale dzisiaj grałem w starą grę SNES, gdy pomyślałem o tym ponownie i chciałem uzyskać odpowiedź od ludzi, którzy wiedzą o niej więcej niż ja.Jak działa komputer X-bitowy z liczbami 2X-bitowymi?

Weźmy na przykład Super Nintendo. Jest to system 16-bitowy. Z 16 bitami możesz liczyć do 65536 lub 2^16. Jak więc maszyna radzi sobie ze mną, mając na przykład wynik większy niż 65536?

+0

Powiązane pytanie: http://stackoverflow.com/questions/12718536/how-does-a-32bit-computer-work-with-large-bit-numbers-ex -512bit-integers – reima

Odpowiedz

4

W rzeczywistości jest to nieco bardziej skomplikowane, ale prostym wyjaśnieniem jest to, że 16-bitowy procesor może wykonywać operacje na liczbach 16-bitowych w ramach jednej operacji i radzić sobie z większymi liczbami, które trzeba rozłożyć. Na przykład, aby dodać dwie liczby 32-bitowe, należy dodać co najmniej znaczące słowa w jednej operacji, a następnie dodać najbardziej znaczące słowa, a następnie dodać dowolne bity przenoszenia.

Oczywiście jest to znacznie wolniej (3 instrukcje zamiast jednego), ale w razie potrzeby można wykonać prawie każdą operację. Jest to powód, dla którego procesory z większymi słowami mogą być szybsze; mogą wykonywać większe operacje za pomocą pojedynczej instrukcji zamiast kilku instrukcji. Z punktu widzenia programistów, kompilator zwykle się tym zajmie, nigdy nie robiłbyś tego ręcznie, chyba że piszesz zespół.

W rzeczywistości jednak wiele procesorów ma dedykowany sprzęt do wykonywania operacji matematycznych, więc wywoływanie procesora 32-bitowego lub 64-bitowego naprawdę ma więcej wspólnego z adresowaniem pamięci i rozmiarem rejestrów.

+2

To prawie zawsze dwie instrukcje, a nie trzy. Większość rodzin procesorów ma specjalną instrukcję dodawania dwóch liczb i bitu przenoszenia, okazuje się, że koszt sprzętu do dodania bitu przenoszenia jest minimalny. Ma to sens, jeśli wyobrażacie sobie, że liczby są już podzielone na mniejsze fragmenty z propagandowymi bitami przenoszącymi - kto zauważyłby dodatkowy banderol przenoszony do LSB, który normalnie go nie ma. –

+1

@DietrichEpp W MIPS nie ma flagi i musisz użyć 3 instrukcji, aby to zrobić. Jest to naprawdę dziwny wyjątek w architekturach komputerowych o wysokiej wydajności –

0

Rzeczywistym ograniczeniem procesora z mniejszą liczbą bitów jest to, że nie może adresować tyle pamięci, 32 bity mogą adresować tylko 4 gb. Pod względem operacji matematycznych zarówno procesor 16-bitowy, jak i 32-bitowy są równoważne z A FTTM (skończoną maszyną taśmującą), a zatem mają podobną moc obliczeniową. Na przykład BigInteger java może być tak duży, jak chcesz

Powiązane problemy