Dlaczego nie ma 256-bitowych lub 512-bitowych mikroprocesorów?

95

W 8-bitowym mikroprocesorze szyna danych składa się z 8 linii danych. W 16-bitowym mikroprocesorze magistrala danych składa się z 16 linii danych i tak dalej.

Dlaczego nie ma 256-bitowego mikroprocesora ani 512-bitowego mikroprocesora? Dlaczego po prostu nie zwiększają liczby linii danych i nie tworzą 256-bitowego mikroprocesora lub 512-bitowego mikroprocesora?

Jaka jest przeszkoda, która uniemożliwia utworzenie 256-bitowego mikroprocesora lub 512-bitowego mikroprocesora?

Michael Harris
źródło
20
Nawet marketing nie może po prostu stale zwiększać liczby na zawsze.
Olin Lathrop
82
Dlaczego nie ma jeszcze maszynki do golenia 256 ostrzy?
Rocketmagnet,
11
@OlinLathrop Kasa Gillete Fusion Power z 5 ostrzami i baterią!
Brendan Long,
6
Odpowiedź jest mniej więcej taka sama jak na to pytanie: mamy samochody 1 i 2 i 3 i 4 i 5 i 6 oraz 8 i 12 i 16 cylindrów. Dlaczego nie mamy samochodów z 32 i 64 i 128 cylindrami?
Russell McMahon
13
@ Russell: Ponieważ wówczas wystąpiłby globalny niedobór cylindrów.
Olin Lathrop,

Odpowiedzi:

110

Pomyśl o tym. Czym dokładnie jest procesor „256-bitowy”? Co sprawia, że ​​bitowość procesora jest na pierwszym miejscu?

Myślę, że jeśli nie zostaną wykonane dalsze kwalifikacje, bitowość procesora odnosi się do jego szerokości ALU. Jest to szerokość liczby binarnej, którą może obsłużyć natywnie w jednej operacji. Procesor „32-bitowy” może zatem działać bezpośrednio na wartościach do 32 bitów w pojedynczych instrukcjach. Twój 256-bitowy procesor zawierałby zatem bardzo dużą jednostkę ALU zdolną do dodawania, odejmowania, ORowania, ANDowania itp. 256-bitowych liczb w pojedynczych operacjach. dlaczego tego chcesz? Jaki problem sprawia, że ​​duża i kosztowna jednostka ALU jest warta posiadania i płacenia, nawet w przypadkach, gdy procesor liczy tylko 100 iteracji pętli i tym podobne?

Chodzi o to, że musisz zapłacić za szerokie ALU, niezależnie od tego, czy używasz go często, czy tylko niewielką część jego możliwości. Aby uzasadnić 256-bitową ALU, musisz znaleźć wystarczająco ważny problem, który naprawdę może przynieść korzyści z manipulowania 256-bitowymi słowami w pojedynczych instrukcjach. Chociaż prawdopodobnie możesz podać kilka przykładów, nie ma wystarczającej liczby takich problemów, które sprawiają, że producenci czują, że kiedykolwiek uzyskają zwrot znacznych inwestycji wymaganych do wyprodukowania takiego układu. Jeśli istnieją niszowe, ale ważne (dobrze finansowane) problemy, które mogą naprawdę skorzystać z szerokiego ALU, to zobaczylibyśmy bardzo drogie, wysoce ukierunkowane procesory dla tej aplikacji. Ich cena uniemożliwiłaby jednak szerokie zastosowanie poza wąską aplikacją, dla której została zaprojektowana. Na przykład, jeśli 256 bitów umożliwi wojskowym zastosowanie pewnych aplikacji kryptograficznych, prawdopodobnie pojawią się wyspecjalizowane 256-bitowe procesory kosztujące od 100 do 1000 dolarów. Nie umieściłbyś jednego z nich w tosterze, zasilaczu, a nawet samochodzie.

Powinienem również wyjaśnić, że szeroka ALU nie tylko sprawia, że ​​ALU jest droższa, ale także inne części układu. ALU o szerokości 256 bitów oznacza również, że muszą istnieć ścieżki danych o szerokości 256 bitów. Samo to zajmie dużo krzemu. Dane muszą skądś pochodzić i gdzieś iść, więc aby efektywnie korzystać z szerokiej jednostki ALU, potrzebne byłyby rejestry, pamięć podręczna, inna pamięć itp.

Inną kwestią jest to, że możesz wykonać dowolną arytmetykę szerokości na dowolnym procesorze szerokości. Możesz dodać 32-bitowe słowo pamięci do innego 32-bitowego słowa pamięci na PIC 18 w 8 instrukcjach, podczas gdy możesz to zrobić w tej samej architekturze skalowanej do 32 bitów w zaledwie 2 instrukcjach. Chodzi o to, że wąska ALU nie powstrzymuje cię przed wykonywaniem szerokich obliczeń, tylko że szerokie obliczenia potrwają dłużej. Jest to zatem kwestia szybkości, a nie możliwości. Jeśli spojrzysz na spektrum aplikacji, które wymagają użycia określonych liczb szerokości, zobaczysz, że bardzo niewiele wymaga 256-bitowych słów. Koszt przyspieszenia tylko kilku aplikacji za pomocą sprzętu, który nie pomoże innym, po prostu nie jest tego wart i nie stanowi dobrej inwestycji w rozwój produktu.

Olin Lathrop
źródło
9
Nienawidzę tego mówić, ale nie zgadzam się tutaj. Pozwól, że przedstawię przykład: Renderowanie grafiki w grach wideo. To mały rynek, o którym słyszałeś, że wart jest 10 miliardów dolarów.
Rocketmagnet
39
@Rocket: Po pierwsze, OP zapytał o mikroprocesor , a nie procesor graficzny. Po drugie, renderowanie grafiki nie wymaga szczególnie szerokich słów. Wiele mniejszych operacji można wykonywać równolegle, ale nie nazwałbym 8 rdzeni procesora równolegle, z których każdy działający na danych 32-bitowych, procesorem „256-bitowym”. Czy nazywasz swój czterordzeniowy komputer PC „procesorem 256-bitowym” tylko dlatego, że każdy rdzeń może działać natywnie na 64-bitowych danych? Myślę, że to niewłaściwe użycie tego terminu i nawet marketing Intela nie wydaje się rozstawiać wielu rdzeni w ten sposób.
Olin Lathrop,
30
@Rocket: SIMD to inny rodzaj paralelizmu, ale nadal nie nazwałbym go szerokim ALU, tylko kilka małych ALU działa ściśle równolegle. Nie można wykonać dodawania 256-bitowego ze wszystkimi przeniesieniami, na przykład na takim procesorze SIMD. Równoległość to nie to samo, co szerszy ALU. Wygląda na to, że starasz się być przeciwny. Być może możesz spierać się z sformułowaniami o tym, co jest równoległe w porównaniu z szerszym, ale stosowanie niekonwencjonalnych definicji, a następnie twierdzenie, że inne interpretacje są oszałamiająco złe, to po prostu udział w konkursie na sikanie.
Olin Lathrop,
15
@Rocket: Tylko dlatego, że procesor może pracować na 256 bitach jednocześnie, wykonując kilka operacji równolegle, nie czyni go „256-bitowym” procesorem. Oznaczałoby to, że może on działać bezpośrednio na liczbach o szerokości 256 bitów, czego nie może. Jak sam powiedziałeś, nie ma przeniesienia między oddzielnymi równoległymi jednostkami ALU, co sprawia, że ​​nie jest to 256-bitowa ALU. Wygląda na to, że masz nietypową definicję bitowości procesora. Nie jest to liczba bitów, które może przetworzyć jednocześnie, ale szerokość słowa, które może przetworzyć jako całość.
Olin Lathrop,
19
Kiedy byłem w szkole, uczono nas, że ludzie oprogramowania mierzyli bitowość pod względem „zestawu logicznego” instrukcji, a ludzie sprzętu mierzyli bitowość pod względem szerokości magistrali. Tak więc 8088 był 16-bitowym procesorem dla ludzi oprogramowania i 8-bitowym procesorem dla ludzi sprzętu. 8086 był 16-bitowy dla wszystkich. Oczywiście osoby zajmujące się marketingiem wzięłyby największą możliwą liczbę, więc miejmy nadzieję, że nie przeczytają tego komentarza i nie zaczną sprzedawać 512-bitowych procesorów! :-)
Mark Harrison,
34

Cóż, nie wiem o 256 lub 512 bitach, ale słyszałem o 1024 bitowym procesorze (nie mogę go teraz znaleźć). Słowo to brzmi VLIW , bardzo długie słowo instrukcji . To jest magistrala instrukcji, a nie szerokość magistrali danych. Zaletą jest to, że można wdrożyć równoległość poziomu instrukcji (ILP) na dużą skalę.

Moje pierwsze spotkanie z ILP musiało mieć miejsce 20 lat temu z DSP Motoroli, które miały instrukcje dotyczące wykonywania MAC (zwielokrotniania i gromadzenia AC) podczas przenoszenia danych do iz pamięci, abyś mógł wykonać nowy MAC na następnej instrukcji, bez marnowania czas między dwoma MAC do przenoszenia danych.
Obecnie istnieją również sterowniki ogólnego przeznaczenia oferujące tę opcję. VLIW stosuje to na znacznie większą skalę.

20

Dalsza lektura
Architektura VLIW

stevenvh
źródło
większość obliczeń finansowych :( wpada teraz na ten problem
jestem tak zdezorientowany
Myślałem, że x86 to procesor VLIW. ;-)
Macke
1
@MarcusLindblom Tylko jeśli przez VLIW masz na myśli słowa instrukcji o zmiennej długości. ;-)
CVn
3
@ AK4749 W takim przypadku Twoje prognozy są równie prawdopodobne, że zostaną odrzucone przez banki, które obsługują Twoje transakcje przy użyciu „prawdziwych” reguł księgowych. Oznacza to, że jeśli wykonasz plan oparty na tych regułach, nie da to oczekiwanych rezultatów, ponieważ prawdziwe banki będą stosować prawdziwe reguły rachunkowości, a nie nanocentową precyzję. I oczywiście, ponieważ rynki są niepewne. Jeśli więc 1 cent błąd na początku daje 1 bilion dolarów błędu na wyjściu, ten 1 bilion dolarów to tylko efekt symulacji, a nie coś, z czego klienci powinni korzystać przy planowaniu.
Photon
1
Oczywiście nigdy nie wykorzystaliby dziesięcioletnich prognoz jako podstawy dla bieżących decyzji, nawet ja jako programista nie byłby tak głupi. Jednak (i ​​dla jasności, rozwiązaliśmy problem rozbieżnych błędów, więc nie istnieje), najwięksi klienci faktycznie wymagają tego rodzaju możliwości do jakichkolwiek niecnych celów, których nie chcą ujawniać swoim dostawcom. Ponadto, pracując przez kilka lat w przestrzeni finansowej, mogę powiedzieć, że firmy finansowe faktycznie używają obliczeń o wyższej precyzji (1/2)
tak zdezorientowany
28

„Bitowość” mikroprocesora jest zwykle definiowana w kategoriach wielkości rejestrów ogólnego przeznaczenia. Rozmiar określa, jak duże liczby procesor może obsłużyć natywnie i do jakiej ilości pamięci może uzyskać dostęp. 64-bitowe liczby są wystarczające dla prawie każdego algorytmu, a ilość adresowalnej pamięci (16 milionów terabajtów) wystarcza na dość długi czas. Zwiększenie rozmiaru rejestrów ogólnego przeznaczenia po prostu nie ma żadnej korzyści. Z drugiej strony obszar jednostek logicznych arytmetycznych (ALU) służących do wykonywania operacji na rejestrach skaluje się z kwadratem liczby bitów. 256-bitowy ALU byłby 16-krotnie większy i znacznie wolniejszy.

Z drugiej strony warto rozszerzyć procesor, aby umożliwić wykonywanie wielu mniejszych operacji jednocześnie. W rzeczywistości procesory Intel Sandy Bridge i Ivy Bridge właśnie to robią, mają 256-bitowe rejestry SIMD i mogą wykonywać na nich dwie operacje arytmetyczne i jedną operację pamięci na cykl. Można więc usprawiedliwić nazwanie ich procesorami 256-bitowymi, a nawet 768-bitowymi, jeśli ktoś był sprytnym sprzedawcą, który chciałby naginać regularnie używane terminy.

Mrówka osocza
źródło
To imponująca architektura.
Trygve Laugstøl
6
+1 dla „podstępnego marketera, który chce nagiąć regularnie używane terminy”.
Dan Neely,
14

Po pierwsze, rozmiar bitu procesora jest zwykle określany przez abstrakcyjną architekturę widoczną dla programisty języka maszynowego, a nie przez szczegóły implementacji, takie jak rozmiar magistrali danych.

Na przykład Motorola 68000 jest 32-bitowym procesorem. Posiada 32-bitowe rejestry danych i 32-bitowe rejestry adresów. Teraz pierwsza wersja tej rodziny architektonicznej ujawnia tylko 24 bity linii adresowej. Ponadto istnieją warianty, które mają tylko 8-bitową szynę danych (więc procesor 32-bitowej pamięci wykonuje procesor jako wiele cykli dostępu).

A teraz pytanie: dlaczego nie przejść do 256 i 512. Procesory „natywnie” manipulują kilkoma rodzajami danych, dlatego warto przyjrzeć się, co oznaczają 256 lub 512 bitów dla każdego z tych typów danych osobno. Mamy liczby całkowite, wskaźniki i zmiennoprzecinkowe.

  1. Liczby całkowite: Programy mają duży przebieg z liczb całkowitych 32- i 64-bitowych. Jeśli ograniczenie to 64 bity, poprawką jest posiadanie zaimplementowanych programowo liczb całkowitych bignum. Języki wysokiego poziomu mogą implementować typy liczb całkowitych, dzięki czemu operacje płynnie przełączają się między „fixnums” i „bignums”. Oczywiście bierzesz wydajność za pomocą bignum, ale musisz wziąć to pod uwagę na dużym obrazie: ile operacji w programie to operacje bignum. Liczby 256 lub 512 bitów nie eliminują zapotrzebowania na bignum, zwiększają tylko zapas, zanim będziemy musieli przejść na bignum. Jeśli chcesz manipulować 2048-bitowymi kluczami publicznymi, 512-bitowe liczby całkowite nie będą działać (ale bignum z 512-bitowymi cyframi może być szybkie).

  2. Wskaźniki: Szersze wskaźniki pozwalają na dwie rzeczy: szersze przestrzenie adresowe i dodatkowe metadane przechowywane we wskaźniku. Przestrzenie adresowe są w dzisiejszych czasach wirtualne i mogą się powiększać, nawet jeśli wspomnienia nie rosną. Zasugerowano, że jeśli masz 128-bitowe wskaźniki, przestrzeń adresowa jest tak ogromna, że ​​możesz umieścić wszystkie procesy przestrzeni użytkownika systemu operacyjnego i jądra w losowych miejscach w pojedynczej niechronionej przestrzeni, i jest mało prawdopodobne kolidować. Zamiast po prostu tworzyć większą przestrzeń adresową, grubsze wskaźniki mogą być używane do przenoszenia bitów, które nie są bitami adresowymi, takich jak informacje o obiekcie referencyjnym (typ, rozmiar i inne informacje) lub informacje związane z bezpieczeństwem. Prawdopodobnie istnieje pewna „optymalna grubość” dla tego rodzaju rzeczy, a jeśli miałbym zgadywać, nadal ograniczałbym ją do 128 bitów. Nie robi Wydaje się, że sensowne jest przechodzenie do 256-bitowych wskaźników, nie wspominając o 512. Grubsze wskaźniki mają wadę: nadymają wszystkie struktury danych, które zawierają wskaźniki. I ogólnie rzecz biorąc, chcesz, aby wskaźniki miały ten sam rozmiar, w przeciwnym razie potrzebujesz komplikacji w architekturze zestawu instrukcji (np. Segmenty pamięci), dzięki czemu będziesz mieć pełne wskaźniki (deskryptor i przesunięcie segmentu) lub tylko wskaźniki lokalne (przesunięcie w obrębie pewnego zrozumiałego segmentu) .

  3. Typy zmiennoprzecinkowe: więcej bitów w liczbach zmiennoprzecinkowych oznacza większą precyzję. Powiedziałbym, że typy zmiennoprzecinkowe odnoszą największe korzyści z szerszej reprezentacji. 256 lub 512-bitowy zmiennoprzecinkowy poprawi stabilność kodu numerycznego i jakość obliczeń naukowych wymagających wielu iteracji i będzie kumulował błędy po drodze. Precyzja w liczbach zmiennoprzecinkowych to nie to samo co precyzja w liczbach całkowitych: nie możemy rozdzielić typu liczb zmiennoprzecinkowych na zakresy, takie jak fixnum kontra bignum. Większa precyzja w zmiennoprzecinkowym wpływa na jakość wszystkich niedokładnych liczb, niezależnie od tego, czy są one bliskie zeru, czy mają dużą wielkość. Więcej bitów w wykładnikach zmiennoprzecinkowych może również znacznie rozszerzyć zakres liczb zmiennoprzecinkowych i znacznie szybciej niż dodawanie bitów do liczby całkowitej bignum.

Z tych powodów podejrzewam, że dominującym trendem w przyszłości będzie wzrost szerokości sprzętowych liczb zmiennoprzecinkowych, niekoniecznie po nim wzrost szerokości wskaźników i liczb całkowitych.

Pamiętaj, że liczby zmiennoprzecinkowe były wcześniej w porównaniu z innymi typami w przeszłości. Na przykład przez pewien czas mieliśmy przewagę 32-bitowych procesorów obsługujących 64-bitowe podwójne zmiennoprzecinkowe IEEE. Wynika to z faktu, że chociaż możesz wiele zrobić z 32-bitowymi wskaźnikami i liczbami całkowitymi, 32-bitowe zmiennoprzecinkowe są bardzo ograniczone do każdej poważnej pracy liczbowej.

Jedną bardzo, bardzo przydatną funkcją, która byłaby miło widzieć w reprezentacjach zmiennoprzecinkowych, byłoby kilka zapasowych bitów dla znacznika typu. Implementacja typów zmiennoprzecinkowych w dynamicznych językach wysokiego poziomu (w których obiekty mają typ, ale w lokalizacjach pamięci przechowują wartości dowolnego typu) jest trudnością, ponieważ podczas gdy zapasowe bity można znaleźć w wskaźnikach i obiektach podobnych do liczb całkowitych w celu umieszczenia części identyfikując typ, jest to trudne w przypadku liczb zmiennoprzecinkowych. Często zdarza się, że liczby zmiennoprzecinkowe są przydzielane do stosu. Niektóre schematy kradną bity z mantysy, więc typy zmiennoprzecinkowe w tym języku tracą precyzję w porównaniu do liczb zmiennoprzecinkowych w innych językach na tej samej maszynie.

Kaz
źródło
Niezły opis. Nawiasem mówiąc, popularne procesory x86 miały od 80 lat 80-bitowy zmiennoprzecinkowy, od pierwszej sprzętowej jednostki zmiennoprzecinkowej, jeśli dobrze pamiętam. 80 bitów jest wewnętrznymi jednostkami FPU, następnie generalnie eksportowane są 32 lub 64 bity.
Olin Lathrop,
Technicznie już zrobione. Google „nan boxing” lub „nun boxing”. Bardziej obiecujące są tagi typu sprzętowego w 64-bitowych ARM, ale niestety nie będzie to wkrótce.
whitequark
3
Możliwe było uzyskanie bezpośredniego dostępu do wersji 80. W latach 90., kiedy uczyłem się programować w TurboPascal, istniał 80-bitowy typ float.
Dan Neely
@ DanNeely: czasami myślałem, że procesory skorzystałyby z typów zmiennoprzecinkowych współrzędnych 3d, łączących albo trzy 80-bitowe liczby w 256-bitowy fragment, albo trzy 42-bitowe liczby w 128-bitowy fragment lub trzy 21-bitowe liczby w 64-bitową porcję. Zastanawiam się, jak trudne byłoby takie wdrożenie i jak przydatne może być?
supercat
@supercat GPGU Wikipedia: Większość operacji na GPU [NVidia] działa w sposób wektorowy: jedna operacja może być wykonana na maksymalnie czterech wartościach jednocześnie. Na przykład, jeśli jeden kolor <R1, G1, B1> ma być modulowany innym kolorem <R2, G2, B2>, GPU może wygenerować wynikowy kolor <R1 * R2, G1 * G2, B1 * B2> w jednym operacja.
Kaz
9

W rzeczywistości nie pomaga ci to zrobić nic przydatnego. 64-bitowe liczby zapewniają wystarczającą precyzję do prawie wszystkich celów (choć systemy Intel mają 80-bitowy zmiennoprzecinkowy), ale dodatkowe linie zwiększają koszty i zużycie energii, a jednocześnie mają niewielki negatywny wpływ na szybkość zegara.

Historycznie procesory używają minimalnej liczby bitów, która ma praktyczny sens zgodnie z ich przeznaczeniem. Dzięki postępowi technologicznemu możliwe stały się szersze autobusy i ALU, stąd zwiększenie wielkości autobusów w celu szerszego zastosowania:

  • 4 bity: wystarczy na cyfrę, dlatego jest praktyczny dla kalkulatorów, kas fiskalnych itp. (W stylu BCD) (co jest raczej ograniczonym obszarem)
  • 8 bitów: wystarczająca dla znaku (ASCII), praktyczna dla systemów przetwarzania tekstu (który jest BARDZO szeroki obszar), również dla dźwięku niskiej jakości
  • 16 bitów: gdy popularne były 16 bitów, 2 ^ 16 adresów pamięci było rozsądną ilością (przynajmniej znacznie bardziej rozsądną niż 2 ^ 8 lub 2 ^ 32). 16 bitów zapewnia całkiem akceptowalną jakość dźwięku, a większość przetworników analogowo-cyfrowych daje mniej niż 16 bitów wyniku, dlatego obliczenie z takimi wartościami w 16 bitach ma sens
  • 32 bity: 32 bity odpowiadają dokładności większości (ale nie wszystkich) wielkości mierzonych przez człowieka i chyba, że ​​masz do czynienia z dużymi bazami danych 2 ^ 32 adresy były wystarczające do większości praktycznych celów.
  • 64 bity: posiadanie> 2 ^ 32 bajtów pamięci jest teraz praktyczne.
  • 128 bitów: w tej chwili niewielka przewaga nad 32, z wyjątkiem kryptografii. Kiedy spodziewamy się więcej niż 2 ^ 64 bajtów na dysku twardym? prawdopodobnie nie wkrótce.
pjc50
źródło
1
„640K powinno wystarczyć każdemu.” -Bill Gates (1981)
jippie
6
@jippie - Gates nigdy tak nie powiedział.
Rocketmagnet
1
W rzeczywistości większość 8-bitowych procesorów była w stanie zaadresować 2 ^ 16 bajtów pamięci, a 16 gorzkich 2 ^ 32, 80386 (32 bity) teoretycznie może również adresować 2 ^ 64 bajtów (4 GB) pamięci, co byłoby całkiem bezużyteczne w każdym razie w tych dniach ...
Axel
1
20
3
@Michael - od zawsze, i widziałem to przez całą moją karierę: bardzo niewielu naprawdę wizjonerskich menedżerów produktów. Anegdota: na początku lat 70. XX wieku, podczas wykładu Roberta Noyce'a na temat przyszłości mikroprocesorów, przewiduje obecną miniaturyzację, a ktoś z publiczności mówi: „Cholera, nie chciałbym zgubić całego komputera zepsuty w podłodze”. Na co Noyce odpowiedział pogardliwie: „W ogóle tego nie rozumiesz. Nie obchodzi cię to, co straciłeś; będziesz miał tysiące innych”. To były wczesne lata siedemdziesiąte. Robert Noyce był wizjonerem.
stevenvh
9

W rzeczywistości takie procesory istnieją i są wspólne, w zależności od tego, jak zdefiniujesz bitowość. Teraz prawie na pewno używasz jednego. Jak wyjaśnił Olin, w przypadku liczb 256-bitowych nie ma większego zastosowania, ale co z liczbami 4 x 32-bitowymi? Co jeśli ALU mógłby dodać 4 pary liczb 32-bitowych jednocześnie. Takie ALU (które znam) zostały po raz pierwszy zaimplementowane w superkomputerach wektorowych w 1970 roku. Pierwszy raz miałem taki komputer, kiedy miałem jedno z procesorów Intel Pentium z MMX.

Facet Intel MMX

Pamiętasz tych facetów?

Układy MMX miały zestaw instrukcji pojedynczej instrukcji - wiele danych ( SIMD ), co pozwala na dodanie 1 × 64-bitowej pary, 2 × 32-bitowej pary, 4 × 16-bitowej pary lub 8 × 8-bitowej pary.

Ale to nic. Nowoczesna karta graficzna ma procesor graficzny (który kiedyś oznaczał jednostkę przetwarzania grafiki, ale teraz oznacza jednostkę przetwarzania ogólnego). Są to często szerokie implementacje SIMD, zdolne do rozgałęziania, ładowania i przechowywania na 128 lub 256 bitach jednocześnie. Prototypowa mikroarchitektura Intel firmy Larrabee zawiera więcej niż dwa 512-bitowe rejestry SIMD na każdym z jej rdzeni.

Karta graficzna SIMD

Należy pamiętać, że SIMD nie należy mylić z wielordzeniowym. Każdy rdzeń procesora będzie miał swoją własną szeroką jednostkę ALU zdolną do dodania zestawu liczb całkowitych.

Rocketmagnet
źródło
1
„1 × 16-bitowa para, 2 × 32-bitowe pary, 4 × 16-bitowe pary lub 8 × 8-bitowe pary” Czy na pewno masz rację?
CVn
4
Na pierwszy rzut oka wyglądało to na singiel Kraft z logo Intela
Chris Laplante
4
Zmienne 4x32 bitowe to wciąż tylko 32 bity. Bitowość jest maksymalną indywidualną liczbą całkowitą, na której ALU może operować. Robienie tego wiele razy równolegle nie zwiększa szerokości bitów. -1
Connor Wolf,
3

Ponieważ jeszcze tego nie potrzebujemy.

Zwykle bitowość (którą zdefiniowałbym jako liczbę bitów w rejestrze) przekłada się mniej więcej bezpośrednio na ilość pamięci adresowalnej. Jest to oczywiście uproszczone, ponieważ w zależności od procesora mogą istnieć rejestry o 2-krotności długości bitowej lub istnieją techniki pozwalające obejść te ograniczenia pamięci (czy ktoś pamięta programowanie w 16-bitowych oknach?).

Axel
źródło
3

„Dlaczego po prostu nie zwiększają liczby linii danych i nie tworzą 256-bitów”

Wszystkie procesory Intel pasujące do gniazda LGA-2011 mają w rzeczywistości 256 pinów danych, łączących się z 256 liniami danych na płycie głównej, które prowadzą do pamięci DRAM. Byłbym trochę zaskoczony, gdyby najnowszy laptop lub komputer stacjonarny, z którego korzystałeś, nie miał co najmniej 256 linii danych. Czy mogę zapytać, skąd bierze się ten błędny pomysł, że „nie ... po prostu zwiększają liczbę linii danych”?

LGA-2011 Gniazdo Zestawienie danych , punkt 6.1, wskazuje, że te procesory mają kołki 256 danych i 76 kołki adres (adresy Bank + adres pamięci).

Davidcary
źródło
-1

ponieważ nie ma aplikacji, która potrzebuje lub ma możliwość reprezentowania danych przy użyciu więcej niż 128 bitów jednocześnie.

i wiesz, procesory multimedialne i karty graficzne dotrą tam znacznie wcześniej niż procesory na płytach głównych, tylko dlatego, że w przypadku zdjęć / filmów sensowne jest użycie tak dużych danych do przetworzenia na raz.

Paulo
źródło
-4

System komputerowy oznacza maszynę komputerową, która wymaga pewnych danych wejściowych i daje pewne dane wyjściowe. Musimy zadowolić komputer w tych liniach, dlatego programiści zaczęli testować, mając 3 magistrale, a mianowicie magistralę adresową, magistralę danych i magistralę sterującą. 1) Pobieranie magistrali adresowej / Wybierz konkretny adres w pamięci dla operacji odczytu / zapisu. 2) Magistrala danych następnie pobiera dane Prezentuje te dane do / z procesora i pamięci do celów przetwarzania / przechowywania. 3) Magistrala sterująca Utwórz protokół kontrolujący interfejs i prosi system o jego przestrzeganie.

Są one wymagane do wykonania użytecznych obliczeń dla użytkownika / serwera / klienta. Ogólnie wydajność (szybkość wykonania zadania, mniej błędów itp.) Zależy od wyczyszczenia szyjek butelek w systemie. tzn. jeśli procesor jest w stanie przetwarzać z szybkością znacznie wyższą niż prędkość transferu z dysku twardego, szyjka butelki występuje na dysku twardym. Podobnie musimy mieć odpowiednią szybkość przetwarzania dla określonych prędkości danych i szerokości kodu.

Od samego początku, z różnych powodów, takich jak złożoność sprzętu, koszt, wymaganie, efektywne algorytmy i główny powód, dla którego zakres rynku jest główną przeszkodą w produkcji wysokiej szerokości magistrali danych, jak wspomniał gospodarz pytania, powiedzmy 256 bit lub 512 bitów. To jest możliwe! Ale wymaganie nie jest jeszcze obecne, zakres rynku nie jest jeszcze widoczny w dzisiejszych potrzebach i braku komplementarnej obsługi oprogramowania.

256-bitowy procesor oznacza szerokość magistrali danych, którą dany procesor może obsłużyć, lub jednostka ALU może przetwarzać w jednym wykonaniu. Zaczęliśmy od 4 bitów, następnie 8,16,32, a obecnie 64, a nawet 128 bitów, które są obecnie produktami o zasięgu rynkowym.

Dlatego przed zadaniem tych pytań musisz zawsze zobaczyć popyt po stronie rynku i jego zakres. W historii jest to jedyny prosty sposób na zrozumienie sposobów życia. Jeśli nie możesz sobie na to pozwolić, jak możesz to kupić? a jeśli nie możesz go kupić, to w jaki sposób producent może produkować? a jeśli nie może produkować, to nie ma istnienia dla tego produktu !!

Sri Kryszna
źródło
6
Pisanie wielkich liter rzeczowników sprawia, że ​​jest to trudne do odczytania.
pjc50,
hmm, tak, muszę zacząć to robić.
Sri Krishna
@ pjc50 Może on jest z Niemiec? Och, czekaj, „Pytanie” i „Kup” również są pisane wielkimi literami, może nie ...
Alex