News Mac mit ARM-Prozessor: Apple soll Wechsel weg von Intel zur WWDC ankündigen

Helge01 schrieb:
Möchtest du eine aktuelle leistungsfähige x86 CPU herstellen, benötigst du eine Lizenz von Intel (oder jemand der diese noch hat). Diese berechtigt dich dann auch aktuelle noch geschützte Patente zu verwenden.
Aber das ist doch die Frage, wenn ich etwa einen Texteditor baue, der docx-Dateien öffnen und bearbeiten kann, dann habe ich ja mir ja keine Patente zueigen gemacht. Selbiges bei CPUs, auch wenn ich die dann zwar nicht mit z.B. SSE bewerben könnte, kann mich doch keiner aufhalten, die Befehlssätze zu unterstützen bzw. kompatibel zu sein.
 
@Aphelon so einfach ist der Umstieg halt nicht. Komplett andere Architektur, heißt komplett andere Software.
Ein iPad kann und konnte bisher noch keinen normalen Mac ersetzen, da die Produktionskette eben mehr brauch als eine abgespeckte oder geänderte Version der Original-Software.

Plus, auf ARM muss die Software ja auch erst mal optimiert werden, was bei normaler Architektur schon seit Ewigkeiten der Fall ist.

Ich halte es einfach für unwahrscheinlich, dass Apple ihren Pro-Kunden sofort gegen den Kopf stoßen wird und ausschließlich ARM Macbooks anbieten wird. Klar will man Kosten sparen und Abhängigkeiten reduzieren aber duum ist man bei Apple nicht, denen ist doch klar dass ein kompletter Umstieg für viele ihrer Pro-Kunden einfach nicht "mal eben so getan" ist.... Was ja auch, neben dem Halo-Effekt, der einzige Grund ist wieso es nen MacPro gibt: ein Umstieg ist für viele Pro-Anwender einfach zu teuer, weil an dem gesamten Prozess der Produktion von Audio/Video so ein großer Rattenschwanz dranghängt, dass man dann doch weiter Mac kauft.
 
calluna schrieb:
Anwendungssoftware muss nicht neu entwickelt werden, weil sie nicht in Maschinensprache entwickelt wird.

Klar muss diese neu entwickelt werden. Ich bezweifele mal ganz stark das du ein x86 Software Quellcode einfach so in ARM kompilieren kannst. Da kommen dich völlig andere Bibliotheken zum Einsatz. Je nach Projekt ist das also ein Aufwand von wenigen Stunden bis Monaten oder Jahren.
 
@Bright0001 Das liegt an der geschützten Funktion. Man kann das zwar nicht direkt vergleichen, aber um bei deinem Beispiel zu bleiben. Wenn Microsoft das öffnen von .docx Dateien durch ein Patent schützt, dann kannst du kein Programm entwickelt, was genau das tut, egal wie das technisch umgesetzt wurde. Dadurch verstößt du gegen das Patent, oder man beantragt eine Lizenz. Wenn deine Entwicklung einen Befehlssatz unterstützt, dann verstößt du damit genau gegen diese geschützte Funktion. Wie das schlussendlich heißt, oder wie das technisch umgesetzt wurde, spielt dabei keine Rolle.

Das dieser Schutz funktioniert sieht man ja auch in der Praxis. Keiner baut da irgendwas nach, selbst die kopierfreudigen Chinesen nutzen eine alte x86 Lizenz von VIA. Dazu kommt, dass Intel jederzeit die Lizenz entziehen kann. Sollten die Chinesen irgendwann mal zu gut sein, dann wird das auch passieren. Einzig AMD kann sich darauf verlassen das sie diese behalten, da sie selbst einige Patente halten, die dann Intel nicht mehr nutzen dürfte. Auch würde Intel dann riskieren, wegen Monopol zerschlagen zu werden.
 
Zuletzt bearbeitet:
muschel91 schrieb:
wie damals vom PowerPC zu intel gewechselt wurde, gab es ja auch eine Übergangszeit

Meines Wissens war das aber vorallem deshalb so friktionsfrei, weil die Intel CPUs so schnell im Vergleich waren, dass man bei PPC-Only Code den Emulator dazwischen nicht gespürt hat - und Apple hat ja auch von Beginn an die Universal Binaries propagiert und die Entwickler angehalten, Intel mitzunehmen.

Bei Intel --> ARM wird das nicht so locker gehen, zumindest Microsoft kämpft damit ziemlich. Viele Apps werden sich leicht portieren lassen, aber eine Adobe CC oder eine 3D-Suite wie Maya nicht.

Was ich mir persönlich wünschen würde wäre ein Hybridsystem. Ein ARM-Chip, auf dem das OS läuft und native ARM-Apps und nebenbei einen fetten i9, der als Performance Chip einspringt, wenns um "heavy lifting" wie RAW-Editing oder so geht. So wie es bei den Grafikkarten bei Apple ja schon seit 10 Jahren Usus ist, zumindest im MBP. Die Frage ist halt, ob man ein Betriebssystem auf zwei grundverschiedene CPUs sinnvoll verteilen kann.
 
BTICronox schrieb:
Ja... bei einzelnen Operationen. Multitasking war bei ARM schon immer "schwierig". Hat auch weniger mit der eigentlichen Geschwindigkeit als der Zuordnungsfähigkeit zu tun.

Und das Problem lässt sich doch sicher irgendwie lösen.
 
Cool Master schrieb:
Klar muss diese neu entwickelt werden. Ich bezweifele mal ganz stark das du ein x86 Software Quellcode einfach so in ARM kompilieren kannst. Da kommen dich völlig andere Bibliotheken zum Einsatz. Je nach Projekt ist das also ein Aufwand von wenigen Stunden bis Monaten oder Jahren.

Der Sinn von Hochsprachen ist ja gerade, dass es keinen "x86 Software Quellcode" gibt, sondern höchstens Abhängigkeiten von Betriebssystem APIs, die aber auch durch Frameworks abstrahiert werden können bzw. diese Abstraktion bereits durch die Standardbibliothek einer Sprache erledigt wird; denn so kann ich z.B. meine Programme in Go für Windows, MacOS oder Linux (ARM auf Raspberry) kompilieren. Ebenso kann man Spiele mit Unity vom Smartphone bis zur PS4 entwickeln; oder mit C und SDL für Smartphone (ARM) oder PC (Windows, Linux, MacOS), falls man es etwas klassischer mag - im Fall von C dann natürlich ohne Inline-Assembler-Abschnitte. Und so weiter.

Das eigentliche Aufwand liegt bei der Portierung des Betriebssystems und den Laufzeitumgebungen, Compilern etc.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: AlphaKaninchen
Cool Master schrieb:
Klar muss diese neu entwickelt werden. Ich bezweifele mal ganz stark das du ein x86 Software Quellcode einfach so in ARM kompilieren kannst.
Was bitte ist ein "x86 Software Quellcode"?
Mac-Applikationen sind üblicherweise in Objective-C oder in Swift geschrieben. Da ist sehr selten irgendwas x86-spezifisches dran und wenn, betrifft es nur sehr kleine Teile des Codes, wie bspw. Routinen, die SSE handhaben und die nach NEON (oder gar SVE2 ?) portiert werden müssen.

Das soll nicht heißen, einmal Neukompilieren und alles ist gut – das kann man sehr schön an dem einen oder anderen Benchmark-Hersteller sehen, die einen wirklich miesen Job beim Portieren von x86 nach ARMv8 abgeliefert haben, sozusagen als glänzendes Beispiel, wie man es nicht macht...
 
  • Gefällt mir
Reaktionen: Miuwa und AlphaKaninchen
Mit Mehrleistung in Punkto Performance oder Features für den Enduser wird das mit Sicherheit überhaupt nichts zu tun haben. So wie ich Apple kenne ist das eine Konsolidationsstrategie. Damit können sie von einem bisher komplett bezahlten Teil (intel CPU) zu einem grossteils eigenen Produkt wechseln. Wenn die Thermals, Leistung und Laufzeiten es erlauben können sie wesentlich kleinere Akkus verbauen und da nochmals massiv sparen. Und der eigene sehr starke Mobile Software Marktplatz ausbauen und mehr Kunden dafür schaffen.
 
yummycandy schrieb:
@Jesterfox AFAIK waren die Acorn damals sogar schneller, als erhältliche Homecomputer. Sie hatten aber ein Defizit beim Softwareangebot und bei den Multimediafähigkeiten. Hatte ein paar von denen auf Messen in den Fingern.
Der Befehlssatz ist noch ähnlich, aber durch die Erweiterungen würde einiges fehlen. Keine Ahnung, ob RISC-OS ne Kompatibilitässchicht hat. ;)
Die konnten schon auch bei Multimedia mithalten. Kann mich noch damals an den Ableger des 64er Magazins erinnern der die Archimedes in Deutschland etwas puschen wollte. Da haben sie aufgezeigt das so ein Archimedes eigentlich in jedem Punkt besser ist als ein Amiga. Aber ihre Verbreitung beschränkte sich halt größtenteils auf UK und das Softwareangebot war dadurch auch nicht so groß. In Deutschland waren sie teuer und schwer herzubekommen, weswegen ich es dann auch aufgegeben hatte mir mal einen zu kaufen (den jetzigen hab ich erst seit etwa 2 Monaten oder so ;-)

Der Befehlssatz der aktuellen ARM ist wohl voll abwärtskompatibel so dass man theoretisch die alte Software problemlos auf nem RaspberryPi ausführen könnte (ein angepasstes und weiterentwickeltes RiscOS gibt es ja). Hauptproblem ist einerseits eine Eigenheit der alten ARM bei der Adressierung, Adressregister ist 32Bit, Adressleitungen gab es nur 24. Dadurch existierten da 8 ungenutzte Bits mit denen manche Programmierer Schindluder getrieben haben was auf modernen ARM-Prozessoren jetzt einem auf die Füße fällt. Es gibt wohl ne Art Emulationsschicht dafür, die funktioniert aber nicht immer (ist n bissl ähnlich wie bei den x86 mit dem Gate A20, wobei dort ja die Emulation in die CPUs integriert wurde)

Das andere Problem ist das damals recht hardwarenah programmiert wurde, es gibt aber wohl auch Versuche die alten Grafikchips usw. zu emulieren. Aber auch da wieder nur teilweise kompatibel. Aber manche alten Spiele sollen damit wohl auch auf dem Pi laufen.

Ich wollt mir das ja eigentlich mal auf dem Pi alles einrichten (diese Emulationen sind nicht Teil von RiscOS sondern extra Software), aber dann ist mir der A5000 über den Weg gelaufen ;-)
 
  • Gefällt mir
Reaktionen: yummycandy
Ich kann mir nicht vorstellen, dass X86er in den Macbooks nicht mehr drin sein werden.
Aber wir werden es bald erfahren.
Die Leistung eine ARM ist meines Erachtens immer noch schlechter als die einer X86-X64 CPU.
 
Sephiroth51 schrieb:
Die Leistung eine ARM ist meines Erachtens immer noch schlechter als die einer X86-X64 CPU.

ARM Prozessoren sind eben auf stromsparen getrimmt um eher im mobilen bereich eingesetzt zu werden. Das sieht man schon an den typischen Taktraten die üblicherweise unter 2 GHz liegen. Schaut man sich die an dann arbeiten die meistens bei 0,8-1,2 GHz und boosten maximal auf 1,8 GHz. Da höhertaktende CPU's zu bauen sollte aber kein Problem sein nur gibt es dafür bis jetzt kaum Bedarf. Es gibt nur wenige Projekte wie das Pinebook oder den Raspberry wo ARM auch mit grafischen OS läuft. Für Apple wäre es aber schon ein enormer Vorteil wenn sie ein OS bei ihren PC's und Mobilgeräten gleichzeitig nutzen könnten.
 
  • Gefällt mir
Reaktionen: AlphaKaninchen
alteseisen schrieb:
Für Apple wäre es aber schon ein enormer Vorteil wenn sie ein OS bei ihren PC's und Mobilgeräten gleichzeitig nutzen könnten.

Andere machen das schon seit Jahren. Nur haben die halt x86 auf Tablets gebracht, nicht andersrum.
 
Wenn das so kommt, würde es mich nicht wundern wenn das floppt oder die führen einen Niedrigpreis Sektor ein. Macbook Basic oder sowas.
 
Ja, der letzte Beitrag ist schon fast 3 Jahre her - ich weiß.
Aber da wäre noch etwas nicht ganz Unwichtiges anzumerken (#151).

Jesterfox schrieb:
Hauptproblem ist einerseits eine Eigenheit der alten ARM bei der Adressierung, Adressregister ist 32Bit, Adressleitungen gab es nur 24. Dadurch existierten da 8 ungenutzte Bits mit denen manche Programmierer Schindluder getrieben haben was auf modernen ARM-Prozessoren jetzt einem auf die Füße fällt.
Also "Schindluder" war es wohl nicht, denn die 8 Bits waren keineswegs ungenutzt, sondern beinhalteten die Flags und wurden somit permanent durch das System neu beschrieben!

Die ARM-Ingenieure wollten ihrem Prozessor kein eigenes Flag-Register spendieren, sondern verfrachteten es in das Register R15, welches ansonsten den Programmzähler (PC-Register) beherbergte. Das klingt nicht nur aus heutiger Sicht nach einem reichlich skurilen Einfall. Man muß daher etwas weiter ausholen, um die für diese Entscheidung grundlegende Logik erklären zu können.

Der ARM war ja von Anfang an als reinrassiger 32-Bit-Prozessor konzipiert. Andererseits waren Anfang der 90er Jahre die Computer gerade erst dabei die Megabyte-Marke beim RAM zu überschreiten. Arbeitsspeicher in Gigabyte bemessen erschien damals nicht bloß utopisch, sondern geradezu wie Science-Fiction. Acorn spendierte daher seiner aktuellen Rechnergeneration mit zunächst RISC OS 2, dann RISC OS 3 einen großzügig bemessenen Adressraum von insgesamt 64 MB. Davon war ein Viertel für physikalisches RAM reserviert.
(Mehr als 8 MB hat meines Wissens kein einziges Modell spendiert bekommen, die allermeisten wiesen nur 1 bis 2 MB auf. Meiner besaß die anfängliche Maximalgröße von 4 MB, die ich im Betrieb gern mit einer 2 MB-RAMdisk auffüllte; so riesig fühlte sich das damals an).

Zum Vergleich: die in den 80er Jahren vorherrschenden 8-Bit-Rechner hatten einen 16-Bit-Adressraum. Die Computer besaßen jedoch schon sehr bald deutlich mehr Speicher als die damit adressierbaren 64 KB. Um dieses Dilemma zu lösen, gab es die Technik des Bank- bzw. Blockswitching. Auf dieser Grundlage wurden stets immer nur die 16K-Blöcke eingeblendet, die gerade benötigt wurden. Und nun hatte sich die Problematik plötzlich umgedreht; es gab nun viel mehr Adressen, als überhaupt durch realen Speicher belegt werden konnte.

Wer nachrechnet, wird jetzt einwerfen, dass man mit 24 Bit nur 16 MB adressieren kann und nicht 64 MB.
Stimmt.
Aber der ARM war ja grundsätzlich 32 Bit; also nicht nur Daten, sondern auch Adressen und sogar alle Opcodes (inklusive implizite Datenwerte!).
Alle Zugriffe erfolgten somit über gerade Word-Adressen. Die Adressbits 0 und 1 waren somit immer null. Daher war der 24-Bit-Adressraum im Bereich von eigentlich 0-23 generell nach 2-25 verschoben. Es wurden also effektiv nicht 16 MB Bytes adressiert, sondern 16 MB Words und ergo halt 64 MB.

Somit gehörten Bit 0 und 1 sowie Bit 26-31 im PC-Register zum Flag-Register (PSR genannt). Das macht sich etwas seltsam, weil das PSR quasi in zwei Teilbereiche zerstückelt erscheint. Aber man darf sich den Registerinhalt nicht wie eine Linie, sondern mehr wie einen Ringpuffer vorstellen. So gesehen grenzen die oberen und unteren PSR-Bits direkt aneinander und bilden damit eine zusammenhängende Einheit. Jedenfalls bietet der Befehlssatz der ARM2/3-Prozessoren Kommando-Varianten mit denen man auf den Inhalt von Register R15 jeweils als Ganzes, nur den PC-Teil oder nur den PSR-Teil effizient zugreifen konnte.

Vielleicht fragt man sich, wie denn der ARM-Prozessor dann auf eine Byte-genaue Adresse zugreifen kann. Angenommen es soll das Byte an Adresse 3 gelesen werden. Dann holt der ARM das Word an Adresse 0, rotiert den Dateninhalt um 3 Bytes nach rechts und löscht die oberen 24 Bit im Zielregister. Und das ohne irgendwelchen zeitlichen Mehraufwand. Heißt also, die Bereitstellung eines Words geht genauso schnell wie die Bereitstellung eines einzelnen Bytes.

Ja, der ARM war schon ohne Übertreibung gesagt, ein Traum für Assembler-Programmierer! Obwohl das RISC-Konzept nicht unbedingt für Assembler-Komfort ausgelegt war, war es der ARM im Endeffekt dann doch. Zum Vergleich: in den 80ern hatte ich Maschinensprache am Z80-Prozessor kennen- und schätzen gelernt. Aber während man am Z80 immer auch etwas 'jonglieren' mußte (also auch befehlsoptimiert zu denken hatte), konnte man dank des intuitiven, geradlinigen Befehlssatzes des ARM den Code rein problemorientiert umsetzen. (Es gab daher auch weniger Flüchtigkeitsfehler.) Man darf nicht vergessen, in den ersten Jahrzehnten der Heimcomputer-Ära war Assemblerprogrammierung noch voll angesagt (nicht nur wegen Speed-Optimierung).

Mitte der 90er Jahre hatte das 'großzügige' 64-MB-Konzept aber bereits ausgedient. Die neuen ARM-Prozessoren unterstützten nun den vollen 32-Bit-Adressraum. Wie dieses Problem dann im technischen Detail im Hinblick auf Kompatibilität für die bestehende Software gelöst wurde, habe ich nicht weiter verfolgt. Mir war klar geworden, dass mein erster Acorn-Rechner auch mein letzter sein würde. Denn nachdem auch die 'Wunderwaffen' in Gestalt der neuen RISC-PC-Rechnergeneration sowie des (damals) superschnellen StrongARM-Prozessors den Untergang von Acorn nicht mehr aufhalten konnte, beschloß ich, meinen 'alten' Acorn-Compi bis zu seinem Ende weiter zu behalten und zu nutzen und dann auf PC umzusteigen.

Was ich damals nicht vorhergesehen hatte, war, dass die Community um RISC OS (,dem Betriebsystem für Acorn-Rechner mit ARM-Prozessoren), das Ende von Acorn um Jahrzehnte überdauern würde. Entscheidend war wohl letztendlich der Umstand, dass man sein Heil in der Entproprietärisierung gesucht und gefunden hat.

Was ich Anfang dieses Jahrtausends auch noch nicht wußte, war, dass ich noch nicht einmal die Hälfte meiner Zeit am (ehemaligen) Acorn-Compi abgesessen hatte. Zwar war das physikalisches Gerät damals bereits kurz vorm Exitus (Festplatte kaputt, Maus zerschlissen, Monitor mit gelegentlichen Bildflackern - und Ersatz war natürlich nicht zu bekommen), aber da gab es ja noch den 'VirtualA5000'-Emulator, den ich mir gleich nach Umstieg auf den PC für teures Geld gekauft hatte. Eine absolut lohnende Investition! Denn es war so, als hätte ich mir meinen Acorn-Rechner nochmals funkelnagelneu gekauft, aber mit mehr als 10-facher Geschwindigkeit und maximalen Arbeitsspeicher von nun 16 MB.

Mancher wird vielleicht sagen: kein Kunststück einen Rechner mit einer Taktfrequenz von 16 Mhz auf einem Host mit mehr als 2.000 Mhz so performt betreiben zu können!
Aber. Emulation ist was anderes als Virtualisierung. Letzteres geht davon aus, dass natives und virtuelles System auf einem eng verwandten Hardware-Konzept beruhen und somit für den Betrieb das Gastsystems direkt auf die Ressourcen des Hosts zugegriffen werden kann. Emulation aber meint die Umsetzung eines Rechners komplett in Software. Sowas jedoch frisst die Rechenleistung des Hosts tonnenweise. Der 'VirtualA5000'-Emulator verdankt seine beeindruckende Performance daher nicht zuletzt der 'Dynamic Recompilation'. Das heißt, die Übersetzung von ARM-Code findet unmerklich schon vor Programmausführung statt (und nicht etwa währenddessen wie bei einem Simultan-Dolmetscher).

Es ist schon irgendwie blanke Ironie, wenn man sich klar macht, dass man die Programme, die man gerade in ARM-Assembler unter dem Emulator schreibt, in Wahrheit für die in den 90er Jahren als lahm verachteten PC-Prozessoren codiert!
Allerdings verfasste ich das meiste in meiner Emulatorzeit in BASIC. Denn noch stärker als der virtuelle ARM-Prozessor profitierte BASIC vom speed-optimierten Konzept des Emulators.
Somit lohnte es sich kaum noch, Programmcode in Assembler zu verfassen. Das beschränkte sich dann auf Betriebssystemerweiterungen und ähnlichem.

Darüber hinaus ist das BBC-BASIC in der Version V/VI beileibe kein primitiver Kram für 'Spaghetti-Code'. Es verfügte nämlich über alle Mittel zur struktuierten Programmierung (Funktionen und Prozeduren, globale und lokale Variablen, globale und lokale Fehlerabfangroutinen, lageunabhängigen Programcode - somit keine Zeilenummerierung bzw. Verweise). Und nicht zuletzt über einen Inline-Assembler. Das geniale daran: man konnte alle BASIC-Befehle zusätzlich für die Struktuierung des Assemblercodes nutzen. Sowas muss man gesehen haben, was das in der Praxis für Vorteile bietet!
Aber das sind dann wieder ganz andere Themen.
 
  • Gefällt mir
Reaktionen: silentdragon95 und tidus1979
Cool Master schrieb:
Autsch, der Link ist für mich wie ein Schlag in die Magengrube.

Danke trotzdem für die Aufklärung - auch wenn mir das jetzt den Tag gründlich verhagelt.

Ich hätte übrigens keinerlei Verdacht geschöpft bei Ausbleiben einer Antwort von @Jesterfox. Denn dieser Thread war ja schon vor 3 Jahren abgerissen. Wer weiß, ob er es überhaupt gefunden und gelesen hätte. Mein Post richtete sich eher an die Allgemeinheit. (Und zumindest zwei Leute haben es ja gelesen.)

Ja, schon traurig, dass nicht nur unsere Computerkisten irgendwann ausrangiert werden, sondern auch die davor sitzenden Menschen.
 
  • Gefällt mir
Reaktionen: Cool Master
Zurück
Oben