Jak duże jest 128 bitów?
Wraz z pojawieniem się systemu Windows 7 w architekturze 32-bitowej i 64-bitowej, panuje przekonanie, że następne procesory i systemy operacyjne będą 128-bitowe. Czy to prawda; i czy jest to następny naturalny postęp?
Co to jest 128 Bitowe przetwarzanie danych? Cóż, zaczynając od obliczeń 32-bitowych, CPU jest w stanie przetworzyć 232 bity informacji, czyli 4,294,967,296 lub nieco ponad 4 gig. 64 bitowe obliczenia to podobnie 264 lub 18,446,744,073,709,551,616; czyli ponad 18 eksobajtów pamięci (kwintylionów). To jest tylko dla 64 bitów. A 128 bitów? To jest 2128 lub 3,4028236692093846346337460743177e+38 bitów. To jest bardzo dużo bitów do pracy. Więc czy jest to konieczne? To jest pytanie; bity operacyjne i bity dostępne to dwie różne rzeczy. Czy komputery, a co ważniejsze oprogramowanie, mogą korzystać z takiej przestrzeni bitowej?
Procesor
Odniesienie się do poprzedniego pytania będzie zależało od struktury procesora. Procesor posiada rejestry, jednostki ALU (arytmetyczno-logiczne), które wykonują operacje matematyczne, oraz magistralę danych, która przenosi dane z pamięci podręcznej do pamięci. Cykl pobierania-wykonywania jest ważny w odniesieniu do tego, jak dane są przetwarzane.
Rejestry nie są częścią pamięci, są to raczej tymczasowe obszary przechowywania i działają pod przykrywką jednostki sterującej. Przyjmują one instrukcje lub dane i wykonują operacje logiczne lub arytmetyczne. Więcej informacji można znaleźć na temat roli CPU lub jednostki mikroprocesorowej.
Rejestry w CPU
Co robi rejestr?
Rejestry otrzymują informacje z pamięci lub z CPU, przechowują je tymczasowo i przekazują dalej zgodnie z poleceniami jednostki sterującej. Rejestry są związane z zegarem, gdzie instrukcja w rejestrze jest wykonywana w jednym cyklu zegara. Liczba rejestrów jest różna w różnych komputerach; każdy z nich jest przeznaczony do wykonywania określonej funkcji. Rejestry mają określoną pojemność w zależności od liczby bitów, z jaką zostały zaprojektowane. Normalnie w mikrokomputerze znajduje się 14 rejestrów.
1]Rejestr akumulatora jest specjalnym rejestrem danych i przechowuje wynik ostatniego kroku przetwarzania ALU.
2]Rejestry widoczne dla użytkownika dzielą się na rejestry danych i rejestry adresowe.
3]Rejestry adresowe są używane do przechowywania rejestrów pamięci i następnej porcji danych.
4]Rejestry danych przechowują dane.
5]Rejestry stanu są używane do określenia czy instrukcja powinna zostać wykonana czy nie.
6]Rejestry stałe są używane do przechowywania wartości tylko do odczytu.
7]Rejestry zmiennoprzecinkowe przechowują liczby zmiennoprzecinkowe.
8]Rejestry ogólnego przeznaczenia przechowują dane i adresy.
9]Rejestry specjalnego przeznaczenia są używane do przechowywania stanu programu i składają się z licznika programu,
10]wskaźnika stosu i
11]rejestrów stanu.
12]Licznik programu przechowuje adres następnej instrukcji do wykonania.
13]Rejestr instrukcji przechowuje instrukcję podczas jej wykonywania.
14]Rejestr indeksowy przechowuje indeks adresów pamięci.
Możesz przeczytać o Wizualnej interpretacji działania procesora i dowiedzieć się dodatkowych informacji o rejestrach.
Rozszerzenie adresu fizycznego w procesorach 32-bitowych
Czy istnieje zatem sposób, który sprawi, że procesor 32-bitowy będzie działał jak 64-bitowy? Właściwie jest. Nazywa się to Physical Address Extension (PAE).
Physical Address Extension jest techniką, która pozwala procesorom adresować więcej pamięci niż jest dostępne z założenia. Można to zrobić tylko na systemach x86, gdzie 32 bity mogą być wykonane do pracy do 64 bitów. Jest to osiągane, gdy rejestr adresujący dzieli całkowitą pamięć na różne banki przestrzeni, gdzie może następnie umożliwić dostęp do pełnej pamięci. Tak jak 32-bitowy rejestr danych otrzymuje dane, może podzielić dane do drugiego banku i uzyskać 64-bitową operację i jest przetwarzany w jednym cyklu.
Gdy proces ten jest wprowadzony na miejsce, 32-bitowe rejestry działają w porozumieniu, aby naśladować 64-bitowy rejestr. To pozwala cyklowi CPU pracować, aby przetworzyć dwa rejestry i wysłać je do ALU do przetwarzania w jednym cyklu. Ale to nie jest jedyna dostępna implementacja CPU.
Non-Uniform Memory Access
Inną implementacją CPU jest Non-Uniform Memory Access (NUMA), która pozwala CPU na dostęp do pamięci niezależnie od odległości adresów pamięci. Ponieważ niektóre lokalizacje pamięci są bliżej procesora, podczas gdy inne są dalej, to zajmie więcej czasu dla procesora do przetwarzania danych w pamięci, która jest dalej. Aby rozwiązać ten problem, CPU jest podzielony na węzły, więc przetwarzanie odbywa się na węzeł, a więc szybciej, niezależnie od fizycznej lokalizacji pamięci. Aplikacje są wtedy w stanie wykorzystać 64-bitowe przetwarzanie w 32-bitowym środowisku, jeśli NUMA jest na miejscu. To rodzi pytanie: czy ten typ przetwarzania może pozwolić na 128-bitowe operacje?
64 Bit and 128 Bit OS
Używanie 128-bitowych systemów nie jest nieuniknione, podczas gdy istnieją procesy w CPU, które mogą być wykorzystane, aby 32-bitowy procesor działał jak 64-bitowy, a 64-bitowy procesor działał jak 128-bitowy. Jeśli rozszerzenie adresu fizycznego, które obecnie dotyczy tylko systemów x86 (32-bitowych), zostałoby zmodyfikowane dla systemów 64-bitowych, aby umożliwić im działanie jak systemy 128-bitowe, to byłoby to krok w kierunku pracy ze 128 bitami. To samo dotyczy modyfikacji wykorzystujących NUMA, w tym przypadku z powodu liczby miejsc w pamięci, które są oddalone od procesora muszą być używane, ponieważ 64-bitowe CPU’s będzie naturalnie większy rozmiar niż 32-bitowy CPU.
Wreszcie, istnieją pewne aplikacje, takie jak 128-bitowe szyfrowanie lub kryptografia, które mogą naturalnie korzystać z 128-bitowego CPU. Proces szyfrowania będzie szybszy, ponieważ zajmie tylko jeden cykl przetwarzania, aby wykonać szyfrowanie. Ale to pokazuje, że aby w pełni wykorzystać 128-bitowy procesor, trzeba mieć aplikacje, które są napisane do łączenia się bezproblemowo do operacji CPU.
W tym momencie, to jest jedna z największych wad w praktyce aplikacji. Większość aplikacji są nadal napisane tylko dla poziomu 32-bitowego, nie są one nawet na poziomie 64-bitowym. To zajmie programów do projektowania oprogramowania, które zostały przepisane do tworzenia 128-bitowych aplikacji. Programy do projektowania oprogramowania, takie jak Visual Studio, .Net Framework, SQL Server 2005, czy SQL Server 2008, musiałyby tworzyć 128-bitowe aplikacje. Ale nie są one na tym poziomie – teraz generują aplikacje 32-bitowe.
Co osiągnie 128-bitowy proces?
Większa i szybsza moc obliczeniowa jest naturalną odpowiedzią na to pytanie. Złożone aplikacje, które wymagają dużej mocy obliczeniowej, tj. przetwarzania, które może być wykonane w jednym cyklu procesora, są idealne. Są to operacje inżynierskie, matematyczne lub naukowe. Są to wyrafinowane modelowanie finansowe lub ekonomiczne. Są to również złożone procesy medyczne, biologiczne lub chemiczne, które muszą być wykonywane szybko. Każda z tych aplikacji, które muszą generować wyniki szybko może korzystać z systemu operacyjnego, który może być w synchronizacji z 128 bit CPU. Możesz przeczytać ruch o 128-bitowych problemów architeture w Windows 128 Bit Architecture – How much RAM can a Processor Handle.
Intel Micro Architecture Image: Wikimedia Commons
Intel 1820 Architecture Image: Wikimedia Commons
Numa: Image Wikimedia Commons
Ten post jest częścią serii: 64 Bit Computing vs 32 Bit Computing
As CPU’s get more sophisticated, so do the operating systems that support them. Dzieje się to teraz z 64-bitowego komputera i starszego 32-bitowego komputera. Zrozumienie, jak rozmiar procesora wpływa na system operacyjny, jest celem tej serii artykułów.
- Różnica między Windows7 X64 i X86
- Porównanie różnic między 32-bitowym i 64-bitowym systemem Windows 7
- Czy możemy osiągnąć 128-bitową operacyjność systemu operacyjnego i co to da?
.