-
Data: 2012-10-17 22:28:30
Temat: Re: sortowanie
Od: Baranosiu <r...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 17.10.2012 Edek Pienkowski <e...@g...com> napisał/a:
>> Nie mam pojęcia co przyświecało "geniuszowi" który postanowił
>> zaoszczędzić na pamięci rejestrów, przecież gdyby to były fizycznie
>> osobne komórki pamięci w procesorze, to nie byłoby żadnych problemów z
>> tym związanych.
>
> Rejestr to nie jest komórka pamięci. To znaczy może masz generalnie
> rację, ale to nie jest takie proste. Na wszystkim większym od jakiegoś
> małego Atomka istnieje "register rename", "retire unit", i pozostałe
> elementy pipeline, a z tego wynika, że rejestr o ile w ogóle
> istnieje jako komórka pamięci (jedna lub w ogóle) to łączy się z całą
> architekturą wokoło. Być może MMX/FPU są prościej zaimplementowane,
> być może też jest to historyczna naleciałość - nawet nie wiedziałem.
Z technicznego punktu widzenia rejestr to taka sama pamięć jak RAM czy
cache, a że nie jest podpięty do szyny adresowej i że jego
szyna danych jest podpięta pod inne komponenty, to już inna
bajka, tak po prostu jest w przypadku x86, ale już na przykład w
niektórych procesorach RISC (choćby takie małe Atmegi z rdzeniem AVR)
rejestry są jak najbardziej adresowalne. Takie pierdoły jak "register
rename" wynikają z prostego faktu, że nawet tanie mikrokontrolery za
20zł mają 32 ortogonalne rejestry (nawet Amiga 30 lat temu miała
16 rejestrów 32-bitowych, choć nie w pełni ortogonalnych) a Intel robi
"wielką rewolucję" że w 64-bitowej maszynie raptem dodaje 8
dodatkowych rejestrów do 4 już istniejących (reszta to indeksowe i
segmentowe) i tylko dlatego, że AMD to zrobiło wcześniej, więc trzeba
było "dogonić" konkurencję :D
Pipeline? W 1996 roku na studiach programowałem procesor
SparcUltra, który (pomijając że w pełni 64-bitowy) wykonywał dwie
instrukcje w jednym cyklu zegara i trzeba było uważać jak się pisało
programy w assemblerze, bo jak się po CALL _adres nie dało instrukcji
NOP, to drugi potok mógł zdążyć wykonać instrukcję za "CALL" zanim się
skok wykonał :D Nie daj się złapać na Intelowski marketing, tam po
prostu wewnętrznie siedzi "normalny" RISC na którym chodzi
"interpreter" x86 tylko po to, żeby że tak powiem API procesora było
zgodne w dół (zresztą Intel sam oficjalnie twierdzi, że nie jest to
procesor hardwired, tylko działa na zasadzie mikrokodu :D).
Programowałem w swoim życiu w assemblerze na kilkanaście różnych
architektur, od małych mikrokontrolerów, które nie miały nawet pamięci
RAM (jedyną pamięcią było 16 rejestrów, nawet stosu nie było,
architektura harvardzka, program w pamięci EPROM), do
wieloprocesorowych maszyn SunMicrosystems (EP10000 z 32 dwurdzeniowymi
64-bitowymi, wielopotokowymi procesorami na pokładzie :D) i przyznam
szczerze, że moim zdaniem dwa najgorzej zaprojektowane procesory z
jakimi miałem do czynienia, to rodzina Zilog Z80 i rodzina Intel
x86 (no i mój własnego projektu 6-bitowy procesor zbudowany na
układach TTL, ale to inna bajka, po pół roku pracy cieszyłem się, że w
ogóle ruszył, a zainspirował mnie projekt www.homebrewcpu.com :D)
Podejrzewam (to tylko hipoteza), że w momencie gdy AMD zaczęło
stanowić poważną konkurencję dla Intela (na samych początkach Intel
współpracował z AMD i nawet zlecał im niektóre projekty :D), to trzeba
było wymyśleć jakiś chwyt marketingowy i wymyślili MMX,
zaimplementowali te instrukcje w mikrokodzie i wykorzystali rejestry
FPU aby nie trzeba było hardware modyfikować :D No a potem zgodnie z
filozofią pełnej zgodności wstecz, ta niedoróbka ciągnie się do
dzisiaj (AMD miało odwagę zrezygnować z 3DNow! :D).
> W każdym razie takie eax na pewno istnieje w asm i jako zapisany
> przed context switchem stan (czy w core), ale istnienia fizycznego
> dawno nikt nie udowodnił. Asm definiuje maszynę a procesor ją
> implementuje, ale ma wolną rękę jak to robi.
Definiuje to specyfikacja a nie assembler, assemblerów na dany
procesor może być bardzo wiele i nie mam tu na myśli samych programów
assemblujących czy mnemoniki rozkazów tylko kod maszynowy. Na
przykład w procesorach zrealizowanych na bazie układów FPGA można w
trakcie pracy zmieniać ich architekturę (nie poprzez podmianę
mikrokodu, tylko fizycznie zmienić konfigurację bramek logicznych!).
"Nikt nie widział eax" bo pewnie nikt do środka nie zaglądał :D A tak
na serio, to Intele nie są procesorami tzw. hardwired (takie są na
przykład ARM-y, AVR-y itd.) tylko mają prosty rdzeń i mikrokodem
załatwiają resztę :D W sumie mogliby udostępnić możliwość ładowania
własnego mikrokodu, wtedy każdy mógłby stworzyć swój assembler (choć
od takich rzeczy, to akurat układy FPGA są lepsze :D).
Następne wpisy z tego wątku
- 18.10.12 01:33 Andrzej Jarzabek
- 18.10.12 02:30 Baranosiu
- 18.10.12 11:07 slawek
- 18.10.12 11:28 slawek
- 18.10.12 11:48 slawek
- 18.10.12 11:52 slawek
- 18.10.12 12:49 Edek Pienkowski
- 18.10.12 12:53 Michoo
- 18.10.12 13:09 Edek Pienkowski
- 18.10.12 13:11 Michoo
- 18.10.12 13:17 Edek Pienkowski
- 18.10.12 15:45 slawek
- 18.10.12 15:46 bartekltg
- 18.10.12 15:57 bartekltg
- 18.10.12 19:33 slawek
Najnowsze wątki z tej grupy
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
Najnowsze wątki
- 2025-05-19 lakier bezbarwny akrylowy
- 2025-05-19 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-05-19 Wrocław => Key Account Manager (ERP) <=
- 2025-05-19 Warszawa => MLOps Engineer <=
- 2025-05-19 Zielona Góra => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, P
- 2025-05-19 Warszawa => Sales Executive / KAM <=
- 2025-05-19 Warszawa => Senior Key Account Manager IT <=
- 2025-05-19 Kraków => NMS System Administrator <=
- 2025-05-19 Kraków => NMS System Administrator <=
- 2025-05-19 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-05-19 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-19 Warszawa => Spedytor Międzynarodowy <=
- 2025-05-19 Lublin => Programista Delphi <=
- 2025-05-19 Szczecin => Key Account Manager IT <=
- 2025-05-19 Wrocław => Controlling systems Consultant <=