51

Nie bądź śmieszny:

A. Pisałem, że "znajdziesz w Biedronce"...to nie oznacza, że tam bywam. Tak jak z tego, że wiem jak wygląda rakieta nie wynika, że jestem kosmonautą.
B. Powtarzam: odpowiedz na merytoryczne pytania a nie skupiaj się na bzdetach.
C. Negujesz dokumentacje firmy ARM ?
D. Mylisz pojęcia "wywoływania kodu" i "uruchamiania emulatora kodu innego procesora".

Jakbyś się nie spinał, to procesor PowerPC nigdy nie wykona kodu 68k.Tak samo jak nie jest w stanie wykonać kodu np. Javy czy też Pythona.

Jestem ciekaw jak procesor PowerPC  wykonuje jakikolwiek rozkaz Motoroli.
Pokaż nam to na przykładzie np. move.l   (a0)+,(a1)+
Które rejestry PowerPC są w to zaangażowane ? Jak i rozkaz PowerPC jest wykonywany ? Jak to w ogóle jest zrobione ?

Będziesz tak uprzejmy i podzielisz się swoim doświadczeniem ? Uczyć się w naszym wieku to nie wstyd. To nawet zaleta bo resztki szarych komórek nam nie zanikną.

52

mormon: przypominam, że na Linuksie masz binfmt-support, dzięku czemu jądro może uruchamiać dowolne formaty binarne, jeśli ma wpisane na listę runtime'y do nich. Tak właśnie mam zrobione odpalanie windowsowych binarek PE32 jak zwykłe ELFy linuksowe, to samo z binariami dla Mono czy Javy :)

Ale to już tak wykolejając temat, bo tych dwóch panów można ocenić tak, jak kiedyś JKM (nie żebym był jakimś "wyznawcą") powiedział: "Wszyscy się mylicie, nikt z Was nie ma racji"

I z tą myślą życzę Państwu dobrej nocy…

.: miejsce na twoją reklamę :.
swinkamor12 napisał/a:
Adam Klobukowski napisał/a:

PowerPC jest nijak kompatybilne z 680x0. Bycie big endian nie ma żadnego znaczenia

Ma ogromne znaczenie.

Ale jakie? I na PowerPC i na x32-64 musisz emulować.

swinkamor12 napisał/a:

To 'przerabianie' danych, to jest zupełnie pomijalny aspekt.

Tak ci się tylko wydaje. To wynika z tego że nigdy nie próbowałeś, wywoływać kodu 68k z kodu x86 ( i kodu x86 z kodu 68k).
Gdybyś miał jakiekolwiek doświadczenie w tym temacie, miałbyś inne zdanie.

Akurat mam w temacie tego 'przerabiania' danych pewne doświadczenie. Konwersje little-big endian są powszechna operacją i nie dotyczą tylko emulatorów. Z punktu widzenia wydajności to jest pomijalny aspekt.

swinkamor12 napisał/a:

Szczególnie że w cenie maszyny Power PC można kupić o wielokrotnie szybszą maszynę opartą o x32-64 czy ARMa.

Jak na razie emulowany soft 68k na moim i7 działa trzy razy wolniej niż soft powerpc na moim G4.

Porównujesz prędkość kodu natywnego do emulowanego? Ponadto albo masz jakieś słabe te i7, albo powolny emulator.

swinkamor12 napisał/a:

Jak już emulować to lepiej na sprzęcie szybszym i tańszym. Emulatory już są (AranyM dla przykładu), więc uruchomienie ich na PowerPC nic nie da, poza tym że będzie to wolniejsza i droższa metoda.

Nie zrozumiałeś. Na powerpc nie musisz jak na x86 emulować wszystkiego.
A tylko nieprzepisane kawałki.
Właśnie dlatego powerpc to taka fajna zabawka dla programistów.
Bo z jednej strony szybka, a z drugiej kompatybilna.
I cały czas szybsza od emulatora na najszybszym pc.
Szkoda że nie ma atari na powerpc.

To ty nie zorozumiałeś. Przeniesienie FreeMiNTa (czy AmigaOSa) na x32-64 niczym nie różni się od przeniesienia na PowerPC. W obu przypadkach masz część kodu natywnego i część emulowanego.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

54

BartoszP napisał/a:

Nie bądź śmieszny:

A. Pisałem, że "znajdziesz w Biedronce"...to nie oznacza, że tam bywam. Tak jak z tego, że wiem jak wygląda rakieta nie wynika, że jestem kosmonautą.

Jak pisałeś że ARM big endian da się kupić w Biedronce, to nie bądź śmieszny i pokaż ten sprzęt z Biedronki
co jest na ARMie i działa w big endian.

55

Adam Klobukowski napisał/a:

Akurat mam w temacie tego 'przerabiania' danych pewne doświadczenie. Konwersje little-big endian są powszechna operacją i nie dotyczą tylko emulatorów. Z punktu widzenia wydajności to jest pomijalny aspekt.

Właśnie pokazałeś że doświadczenia w tym temacie nie masz.
Nie chodzi o wydajność, tylko o dodatkową zupełnie niepotrzebną pracę przy pisaniu kodu który będzie te dane przerabiał, lub dostawał się do nich w inny sposób.
Jeśli się używa procesora big endian dane są niezmieniane i te problemy odpadają.
Dlatego powerpc jest lepsze dla amigi i atari niż x86.

Porównujesz prędkość kodu natywnego do emulowanego?

Oczywiście. Przecież chodzi o to jak szybko działa kod big endian.
Jakie to ma znaczenie natywny czy emulowany?
Ważne że emulowany na i7 jest wolniejszy od natywnego na G4.

Ponadto albo masz jakieś słabe te i7, albo powolny emulator.

i7 plus WinUAE. WinUAE jest szybsze niż ARAnyM.
Ty nie masz G4 dlatego wydaje ci się że G4 jest wolniejsze niż jest.

To ty nie zorozumiałeś. Przeniesienie FreeMiNTa (czy AmigaOSa) na x32-64 niczym nie różni się od przeniesienia na PowerPC. W obu przypadkach masz część kodu natywnego i część emulowanego.

Poza wymianą danych między starym softem 68k i nowym na innym procesorze.
Twój problem polega na tym że nie używałeś nowych lepszych amig z powerpc dlatego wydaje ci się że to działa tak jak emulator na x86.
Ale to tak tylko ci się wydaje. Tym czasem w rzeczywistości działa to o wiele lepiej.
Dlatego też fajnie byłoby mieć coś takiego jak freemint na G4.

swinkamor12 napisał/a:
Adam Klobukowski napisał/a:

Akurat mam w temacie tego 'przerabiania' danych pewne doświadczenie. Konwersje little-big endian są powszechna operacją i nie dotyczą tylko emulatorów. Z punktu widzenia wydajności to jest pomijalny aspekt.

Właśnie pokazałeś że doświadczenia w tym temacie nie masz.
Nie chodzi o wydajność, tylko o dodatkową zupełnie niepotrzebną pracę przy pisaniu kodu który będzie te dane przerabiał, lub dostawał się do nich w inny sposób.
Jeśli się używa procesora big endian dane są niezmieniane i te problemy odpadają.
Dlatego powerpc jest lepsze dla amigi i atari niż x86.

Napisaałeś w życiu chociaż jedna linikę kodu którą uruchomił ktoś oprócz Ciebie? Konwersja little-big endian to jest elementarna operacja z żaden szczególny sposób nie komplikująca kodu. Szczególnie przy kodzie tak złożonym jakie maja emulatory.

swinkamor12 napisał/a:

Porównujesz prędkość kodu natywnego do emulowanego?

Oczywiście. Przecież chodzi o to jak szybko działa kod big endian.
Jakie to ma znaczenie natywny czy emulowany?
Ważne że emulowany na i7 jest wolniejszy od natywnego na G4.

Nie masz pojęcia o czym piszesz. Porównywac w ten sposób możesz kod natywny G4 i i7 lub emulowany na G4 i i7. Porównywanie pomiędzy platformami z jednej strony kodu natywnego a z drugiej emulowanego jest pozbawione sensu

swinkamor12 napisał/a:

Ponadto albo masz jakieś słabe te i7, albo powolny emulator.

i7 plus WinUAE. WinUAE jest szybsze niż ARAnyM.
Ty nie masz G4 dlatego wydaje ci się że G4 jest wolniejsze niż jest.

WinUAE jest dokładnie tak samo szybkie jak ARAnyM w kontekście CPU bo oba te emulatory używają tego samego kodu do emulacji CPU, konkretnie ARAnyM zapożyczył go z WinUAE. Różnice mogą być bardzo niewielkie (rzędu 1-5%), lub pomiędzy kolejnymi wersjami, gdzie ARAnyM pozostaje 'w tyle' za usprawnieniami wprowadzonymi w WinUAE.

swinkamor12 napisał/a:

To ty nie zorozumiałeś. Przeniesienie FreeMiNTa (czy AmigaOSa) na x32-64 niczym nie różni się od przeniesienia na PowerPC. W obu przypadkach masz część kodu natywnego i część emulowanego.

Poza wymianą danych między starym softem 68k i nowym na innym procesorze.
Twój problem polega na tym że nie używałeś nowych lepszych amig z powerpc dlatego wydaje ci się że to działa tak jak emulator na x86.
Ale to tak tylko ci się wydaje. Tym czasem w rzeczywistości działa to o wiele lepiej.
Dlatego też fajnie byłoby mieć coś takiego jak freemint na G4.

Powtarzam, ta 'wymiana' kosztuje na tyle mało, że jej koszt jest pomijalny, szczególnie jak używasz wielokrotnie szybszego procesora.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

57

swinkamor12 napisał/a:

tylko o dodatkową zupełnie niepotrzebną pracę przy pisaniu kodu który będzie te dane przerabiał

I to właśnie jest twoja "eksperckość"...po co pisać jakiś kod zmieniający dane skoro procesory uwzględniające możliwość pracy w trybie mixed-endian załatwiają to niezauważalnie w tle...potrafią nawet pracować na wspólnej pamięci z procesorem o innej "endianowości". I niekoniecznie są to procesory PowerPC.

Pokaż jakieś fakty prócz swoich konfabulacji nie popartych żadnym argumentem prócz tego, że twoje zdanie jest niby prawdziwsze tylko dlatego, że jest twoje.

I zanim znowu coś odpowiesz zapoznaj się z różnicami pomiędzy emulacją kodu a wykonaniem kodu natywnego przez procesor.

Jeśli nie załapałeś jeszcze sedna problemu, to nikt nie twierdzi, że PowerPC jest/był złym procesorem - procesory Power8, które są następcami architektury PowerPC przecież napędzają największe komputery IBM - po prostu jest bardziej niszowy niż procesory ARM, które są równie dobre pod względem architektury a na dodatek tańsze, nie wspominając o dostępności platform na których można pisać oprogramowanie i co najważniejsze mają milion razy większy rynek potencjalnych uzytkowników.

P.S.
Odpowiedz na któreś techniczne pytanie np. na to o realizacji konkretnego rozkazu move.l
Pokaż jaki jesteś CPU-MASTER-MEGA-BOSS.

Tylko że procesory Power IBMa, to nie jest dokładnie to samo co procesory PowerPC a Macach czy Amigach. Są one na tyle niekompatybilne że wprost kodu nie przeniesiesz.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

59

Panowie, szkoda nerwów na fanboya Amigi, który potrafi tylko rozstawiać po kątach i który to samo robi na innych forach. Zaraz zacznie obrzucać innych błotem.

Powszechnie wiadomo, że kamień potrafi myśleć. Na tym fakcie opiera się cała elektronika.

Terry Pratchett - Równoumagicznienie

60

Adam Klobukowski napisał/a:

Power IBMa, to nie jest dokładnie to samo co procesory PowerPC

Ja wiem....napisałem specjalnie "następcą architektury" a nie "nowszą wersją czy kolejnym modelem". Gdzieś trzeba dokonać skrótu myślowego.

BartoszP napisał/a:
Adam Klobukowski napisał/a:

Power IBMa, to nie jest dokładnie to samo co procesory PowerPC

Ja wiem....napisałem specjalnie "następcą architektury" a nie "nowszą wersją czy kolejnym modelem". Gdzieś trzeba dokonać skrótu myślowego.

Nie do końca następcą. Procesory te wzięły sie z konsorcjum Apple-IBM-Motorola. Współdzielą ze sobą zestaw instrukcji procesora (ale zaczęło sie to rozchodzić). Wymyślono to tak, że będa one miały podobne założenia i były do siebie podobne, ale PowerPC miało iść do komputerów domowych, a Power do serwerów i dużych maszyn. Od samego początku też były one niekompatybilne ze sobą na poziomie kodu maszynowego, miały też różne endianess, niektóre modele procesorów wspierały zarówno tryb big jak i little endian.

Tak więc można powiedzieć raczej że G4 i Power8 mają wspólnych przodków, ale nie że Power8 jest następca G4.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

62

Adam Klobukowski napisał/a:

raczej że G4 i Power8 mają wspólnych przodków, ale nie że Power8 jest następca G4

OK. To jest lepsze opisanie  dwóch wcieleń tej architektury POWER. Ważne jednak, że to jest jedna rodzina.

63

BartoszP napisał/a:

I to właśnie jest twoja "eksperckość"...po co pisać jakiś kod zmieniający dane skoro procesory uwzględniające możliwość pracy w trybie mixed-endian załatwiają to niezauważalnie w tle...potrafią nawet pracować na wspólnej pamięci z procesorem o innej "endianowości".

A to już pisałeś. Że nawet w biedronce tanio do kupienia. To czekam na przykład.
Co to za sprzęt z biedronki i gdzie można kupić.

64

Adam Klobukowski napisał/a:

Nie masz pojęcia o czym piszesz. Porównywac w ten sposób możesz kod natywny G4 i i7 lub emulowany na G4 i i7. Porównywanie pomiędzy platformami z jednej strony kodu natywnego a z drugiej emulowanego jest pozbawione sensu

Nie masz pojęcia o czym piszesz.  To czy kod jest natywny czy emulowany nie ma żadnego znaczenia.
Kogo to obchodzi. Ważne jak jest szybki. A natywny na G4 jest wciąż trzy razy szybszy od emulowanego na i7.

Powtarzam, ta 'wymiana' kosztuje na tyle mało, że jej koszt jest pomijalny, szczególnie jak używasz wielokrotnie szybszego procesora.

Powtarzam jeśli to dla ciebie problem z wydajnością, to nie wiesz o czym piszesz a tylko ci się wydaje.
Ale mogę powtórzyć:

Nie chodzi o wydajność, tylko o dodatkową zupełnie niepotrzebną pracę przy pisaniu kodu który będzie te dane przerabiał, lub dostawał się do nich w inny sposób.

Jeśli się używa procesora big endian dane są niezmieniane i te problemy odpadają.
Dlatego powerpc jest lepsze dla amigi i atari niż x86.

65

Skoro temat zahacza o maki. Jak Apple wykonało przejście z PowerPC na x86? Nowy OS na x86 odpalał starsze programy?

66

Ot choćby to
http://www.biedronka.pl/pl/product,id,2 … 3g-starter

Opis modelu pamięci z dokumentacji ARM z linków, których pewno nie przejrzałeś.

3.9. Memory model

The Cortex-A7 MPCore processor views memory as a linear collection of bytes numbered in ascending order from zero. For example, bytes 0-3 hold the first stored word, and bytes 4-7 hold the second stored word.

The processor can store words in memory as either:

    Big-endian format.

    Little-endian format.


Konfiguracja "endianości"

A.3. Configuration signals

Table A.2 shows the configuration signals. All signals which include a 4-bit field, [3:0], encode up to four processors. For these signals, bit[0] represents processor 0, bit[1] represents processor 1, bit[2] represents processor 2, and bit[3] represents processor 3.

Table A.2. Configuration signals
Signal    Direction    Description
CFGEND[3:0]    Input   

Endianness configuration at reset. It sets the initial value of the EE bit in the CP15 System Control Register (SCTLR):

0

    EE bit is LOW.
1

    EE bit is HIGH.

67

Tak naprawdę pierwszą maszyną która uruchomiła Darwina na x86 był jakiś losowy Sony Vaio ze sklepu, ale tę historię znają nieliczni… :>

.: miejsce na twoją reklamę :.

68

@marekp: http://www.cultofmac.com/103458/os-x-li … -about-it/

69

To ja się może nie będę za dużo wypowiadać.

Procesory ARM są bi-endian - mogą wystartować jako LE lub BE. Tyle, że BE się nie używa od paru lat już.

IBM Power są 64-bitowe i zgodne wstecz z poprzednikami. Od Power8 są bi-endian i LE robi się coraz bardziej popularne. A co do uruchamiania aplikacji 32bit na ppc64:

Q: Can I run 32-bit applications on PowerLinux?

A: Yes. IBM Power Systems servers are designed to run 32-bit and 64-bit applications written for 64-bit IBM Power Architecture technology. Older 32-bit applications can run on 64-bit Linux operating system-based servers and take advantage of larger managed memory of the operating system.

70

@HRW: My to rozumiemy .... tylko swinkamor12 jakoś nie może tego faktu zaakceptować i żyje tylko w świecie ograniczonym przez PowerPC.

71

marekp napisał/a:

Skoro temat zahacza o maki. Jak Apple wykonało przejście z PowerPC na x86? Nowy OS na x86 odpalał starsze programy?

Apple najpierw zrobiło przejście na unixa.
Została wprowadzona ochrona pamięci.
Został zrobiony porządek z wymianą danych między system, a aplikacjami.
Tylko że Apple to Apple. Wszyscy przepisali soft na unixa.
Na atari czy amidze większości softu nikt nie przepisze.

72

A uruchomiłeś na tym soft w trybie big endian, czy tak sobie tylko teoretyzujesz?

73

Adam Klobukowski napisał/a:

Mylisz się. Pierwszy MacOS ze wsparciem dla PowerPC to był 9.2, czyli classic, bez ochrony pamięci. Przejście na architekturę unixową było później, wraz z MacOS X

Ale pytanie było o przejście z PowerPC na x86.
To było w 2005, parę lat po przejściu na unixa.
Oczywiście jeśli chodzi o wersję MacOS ze wsparciem dla PowerPC to pierwszy był Mac OS 7.1.2 w 1994 roku.

swinkamor12 napisał/a:
Adam Klobukowski napisał/a:

Nie masz pojęcia o czym piszesz. Porównywac w ten sposób możesz kod natywny G4 i i7 lub emulowany na G4 i i7. Porównywanie pomiędzy platformami z jednej strony kodu natywnego a z drugiej emulowanego jest pozbawione sensu

Nie masz pojęcia o czym piszesz.  To czy kod jest natywny czy emulowany nie ma żadnego znaczenia.
Kogo to obchodzi. Ważne jak jest szybki. A natywny na G4 jest wciąż trzy razy szybszy od emulowanego na i7.

Że Cię zacytuję:

swinkamor12 napisał/a:

Jak na razie emulowany soft 68k na moim i7 działa trzy razy wolniej niż soft powerpc na moim G4

Czyli porównujesz emulowany na i7 do natywnego. Nie wiesz o czym mówisz.

swinkamor12 napisał/a:

Powtarzam, ta 'wymiana' kosztuje na tyle mało, że jej koszt jest pomijalny, szczególnie jak używasz wielokrotnie szybszego procesora.

Powtarzam jeśli to dla ciebie problem z wydajnością, to nie wiesz o czym piszesz a tylko ci się wydaje.
Ale mogę powtórzyć:

Nie chodzi o wydajność, tylko o dodatkową zupełnie niepotrzebną pracę przy pisaniu kodu który będzie te dane przerabiał, lub dostawał się do nich w inny sposób.

Jeśli się używa procesora big endian dane są niezmieniane i te problemy odpadają.
Dlatego powerpc jest lepsze dla amigi i atari niż x86.

Widziałeś na oczy kod źródłowy jakiegokolwiek emulatora? Ja widziałem kilku. Konwersja little-big endian jest trywialną operacją i  w aboslutnie znikomy sposób komplikuje sam emulator. Nie jest to żaden problem

swinkamor12 napisał/a:

Ale pytanie było o przejście z PowerPC na x86.
To było w 2005, parę lat po przejściu na unixa.
Oczywiście jeśli chodzi o wersję MacOS ze wsparciem dla PowerPC to pierwszy był Mac OS 7.1.2 w 1994 roku.

A tak, zauważyłem moja pomyłkę i skasowałem post

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

75

swinkamor12 napisał/a:

A uruchomiłeś na tym soft w trybie big endian, czy tak sobie tylko teoretyzujesz?

Ja nie muszę nic pokazywać. Ja nie twierdziłem, że mam taki program i że cokolwiek uruchamiałem. Ja tylko twierdzę, że procesory ARM nawet w tanich tabletach mają takie możliwości z okazji swojej architektury. Nawet Android ma odpowiednie API do testowania tego.
Chciałeś przykładu gdzie kupić tablet z odpowiednim procesorem. Podałem.

Teraz twoja kolej.
Pokaż teraz jak procesor PowerPC bezpośrednio wykonuje rozkazy 68K dzięki temu, że jest big-endian. Zrobisz to czy tylko teoretyzujesz, że to robi ? Przecież napisałeś, że:

swinkamor12 napisał/a:

Bez przepisywania kodu, bez pisania skomplikowanego kodu do zamiany bajtów w danych itp itd.
.....5 sekund roboty i można używać w swoim sofcie pod powerpc,softu z 68k tak jakby był napisany pod powerpc.   
Porównania do emulatora są lekko głupie, żaden emulator na x86 tego nie umożliwia.Dlatego właśnie PowerPC jest takie fajne, bo z jednej strony jest sto razy szybsze od 68k, szybsze od najszybszych emulatorów na PC a z drugiej strony kompatybilne ze starym softem.