(*) na wstępie chciałbym podkreślić, że nie uważam, że zjadłem wszystkie mózgi świata

Możliwe, że moja interpretacja nie wszędzie jest prawidłowa, staram się jednak do danych podchodzić jak najbardziej racjonalnie. Możliwe, że do części ograniczeń podchodzę zbyt rygorystycznie, ale jeśli mam rację to....
To że coś jest 16-bitowe, nie znaczy, że jest powolne, (...) co w takim razie oznacza 16-bitowość w odniesieniu do LISY, DENISE, blittera lub coppera?
1) w kontekście blittera - rozmiar próbki danych jaka przetwarzana w jednym cyklu operacji. Nie ma to związku z szerokością rejestrów i prędkością szyny. Blitter AGA, nawet jakby miał 128bitowy rejestr/bufor, będzie przetwarzał dane w 16 bitowych paczkach. Prosty blit wiersza 320 bit zajmie 20 cykli (od 80 do 160 taków zegara 7MHz, zależnie od liczby kanałów blittera). Tak jak przy OCS/ECS. Blitter 32 bitowy potrzebowałby na to 10 cykli. Im większa wydajność blittera, tym większa część ekranu będzie mogła się zmienić w przeciągu 1 ramki obrazu. Chyba czujesz tą różnicę? Choćby na dwukrotnym skróceniu czasu zajętości szyny?
2) w przypadku coppera - rozmiar słowa jakim operuje. 16 bitowy copper potrzebuje 2 dostępów do RAM (polecenie+wartość) dla polecenia MOVE. 32 bitowemu wystarczyłby 1 dostęp dla 16bitowych rejestrów.
16 bitowy copper nie jest w stanie w jednej operacji zmodyfikować wpisu rejestrów koloru LISY. Oczywiście taka podmiana w AGA nie jest tak spektakularna jak w ECS, ale jednak w efekcie na AGA przestaje działać trick "CHUNKY MODE" - 12 bitowy ekran CHUNKY o rozdzielczości bodajże 80x256.
Inna kwestia to, że 32 bitowy copper również by nie mógł tego zrobić... Ale to już raczej należy przenieść do dyskusji "dlaczego aga nie ma chunky mode w ogóle?"
3) W przypadku LISY - szerokość rejestrów kontrolujących układ, a więc prędkość i elastyczność "konfiguracji". Część z nich musisz konfigurować dwoma operacjami 16bit, zamiast jedną 32 bit. Oznacza to większą zajętość procesora/coppera niż jest konieczne. Oczywiście, podstawowe pytanie - jak często taka (re)konfiguracja następuje? To już zależne od indywidualnych przypadków....
4) W przypadku Alice - 16bit - szerokość dostępu do szyny danych, a w efekcie: ilość danych przekazywanych do układów chipsetu "w jednym takcie". Nie jest to związane z interfejsem LISY (jak mniemam...). Gdyby wykorzystywała pełną dostępną(!) szerokość, "karmienie" układów chipsetu zajmowałoby do dwóch razy mniej czasu. Podkreślam "do" - układy chipsetu też musiałby być na to odpowiednio przygotowane...
A od kiedy to Lisa ma w sobie bufor ramki? Lisa mieli pamięć chip na okrągło każda klatka jest czytana z pamięci od nowa, więc nie ma tutaj znaczenia, czy dane w pamięci chip się zmieniły czy nie.
Tu ponownie nie do końca jestem pewien co masz na myśli w tych słowach. Co ma piernik do wiatraka?
Jeśli chcesz wyświetlić obraz, to musisz go umieścić w X bitplanach wskazywanych Lisie przez 16bitowe rejestry SPRxPTH : SPRxPTL. Możesz to zrobić za pomocą CPU i blittera. Nie ma to jednak bezpośrednio żadnego związku z tym czy LISA ma swój bufor (a tak w zasadzie to ma) i z jaką prędkością odczytuje dane.
To od programisty zależy ile i jakich danych wyświetli. Jeśli wystarczy mu, że 80% ekranu będzie przedstawiać statyczny obrazek, a pozostałą część skrolowany tekst - to problemu nie ma. Jeśli jedak zechcesz chcesz wyświetlić 256 kolorową animacje, to musisz w przeciągu 1 ramki obrazu - 20 ms PAL - skopiować nowe dane do 8 bitplanów. Ewentualnie pobawić się rejestrami LISY, zaimplementować proste podwójne buforowanie i uzyskać dodatkowy czas dla animacji o mniejszej ilości FPS. Pomińmy kwestię, czy w ogóle dałoby się odświeżanie ramek zrobić "chipsetowo", ale to że LISA sobie cały czas bangla w tle, nie wyręcza nas z konieczności dogrywania nowych danych.
To właśnie jest ta podstawowa kwestia: to że AGA potrafi wyświetlić 8 bitplanów to pewne i nie ulega wątpliwości! ...ale czy jest ona jednocześnie w stanie przygotować dane (wgrać nowe tło, uaktualnić nie-sprajtowe boby itp.) dla 8 planów (256 kolorów) 320x256 w 50 fps? Odpowiedź brzmi: nie jest. Bez wsparcia ze strony CPU AGA osiągnie (ponad) 50fps tylko dla 4 planów. Albo tylko dla części widocznego obszaru. Tak mi to wynika z tego zestawienia ECSu z AAA:
An Overview of the Advanced Amiga Architecture and Other Future Directions (strona 12).
Oczywiście - jest jeszcze procesor. Ma więcej czasu, swobody i dostępu do szyby. I możemy w ogóle zamontować tak szybki żeby wyłączyć AGA (w cholerę...

) i robić wszystko programowo. Co się z resztą robi... Możesz mi tylko wyjaśnić jak w takim kontekście mówić o pożyteczności AGA dla programistów jeśli główną radą jest, jak się okazuje, nie używać tego chipsetu i zastąpić go procesorem?

A przecież 10 lat temu OCS projektowany był właśnie po to, żeby CPU nie był potrzebny do tego typu operacji....
PS. To ja tutaj też podkreślę: Nie zrozumcie mnie, że chcę udowodnić, że AGA to jakieś barachło. Nic z tych rzeczy. Wątek, jak jest wyraźnie napisane, po prostu dotyczy różnic pomiędzy chipsetami. Relacjonuję tylko, że w dużej części AGA jest bardzo mocno osadzona w swoim poprzedniku. Nie oceniam tego. Ma to swoje złe strony, ale i dobre: kompatybilność. Historia potoczyła się tak jak potoczyła i nie jestem w stanie stwierdzić, czy gdyby Commodore poprawiło wszystkie wytykane tym kościom niedostatki kosztem kompatybilności (wypuszczając szybszą maszynę, ale bez oprogramowania) to byśmy wyszli na tym lepiej....
Ostatnia aktualizacja: 24.11.2013 12:55:31 przez Radov