Samsung heeft tijdens de Hot Chips-beurs details vrijgegeven over zijn Exynos 8890-soc. De soc wordt sinds maart in onder meer de Galaxy S7 en S7 Edge gebruikt, maar het Koreaanse bedrijf gaf nog niet eerder inzicht in de micro-architectuur van de soc en de Mongoose-cores daarin.
De componenten in de 8890-soc werden al bij de aankondiging in november vorig jaar bekendgemaakt: de octacore-soc heeft een big.Little-ontwerp met vier Cortex A53-cores en vier krachtiger cores, die als M1- of Mongoose-cores bekend staan. Over die Mongoose-cores heeft Samsung in het bijzijn van The Register op Hot Chips details vrijgegeven, waarbij de micro-architectuur van de v8-cores tot in detail besproken werd. De M1-cores zijn volledig door Samsung zelf ontworpen, in tegenstelling tot eerdere core-ontwerpen die grotendeels door ARM worden gemaakt. Samsung zou Mongoose-cores op basis van de ARM v8-architectuur in drie jaar ontworpen hebben.
De M1-cores hebben een out-of-order-ontwerp waarbij een van de eerste blokken in de pipeline, de branche prediction, een opmerkelijke naamgeving heeft. Die branche prediction moet voorspellen welke instructies na de eerste in een serie zullen volgen, zodat deze alvast klaargezet kunnen worden. Samsung heeft in de Mongoose-cores deze branche prediction van een neuraal net voorzien, zodat het systeem beter kan leren van veelvoorkomende instructie-combinaties. Overigens gebruiken ook AMD en Intel vergelijkbare technieken in hun branche prediction, maar over dit cruciale onderdeel wordt nogal geheimzinnig gedaan.
Na de branch prediction worden instructies in de 64KB grote instructiecache opgeslagen en naar de instruction queue gestuurd. Vervolgens worden de instructies vertaald naar micro-ops door het decode-blok en met vier instructies per kloktik naar de core gestuurd. De M1 ondersteunt volledige out-of-order-verwerking van de instructies, wat betekent dat al aan een nieuwe instructie gewerkt kan worden voor een vorige instructie helemaal klaar is. Zo kan de pipeline optimaal gevuld blijven en gaan er geen klokcycli verloren.
Elke M1-core beschikt over een integer- en een floating point-unit en data van de twee integer- en fp-unit wordt in een 32KB grote datacache opgeslagen. Het daarop volgende L2-cache is 2MB groot en wordt gedeeld door de vier cores van de M1-module. Net als de grote x86-broertjes is er een tlb aanwezig om data snel uit het geheugen op te kunnen halen. Een L3-cache is niet aanwezig: het volgende station is het relatief trage geheugen.
De M1-cores werden ontworpen met Brad Burgess aan het hoofd van het ontwikkelteam. Burgess was eerder verantwoordelijk voor het Bobcat-ontwerp van AMD. Dat was het eerste energiezuinige ontwerp van AMD en toont veel gelijkenissen met de Mongoose-cores. Die laatste zijn echter nog een stuk zuiniger met een maximaal verbruik van 3W per core, waarbij steeds maar één core in het quadcore-ontwerp op de volle snelheid van 2,6GHz mag werken, om de energiebudgetten niet te overschrijden. De M1-module zou volgens Burgess nog sneller kunnen zijn, maar worden beperkt door de tdp. In grote lijnen lijkt het Mongoose-ontwerp sterk op het Cortex A72-ontwerp, maar met name de caches zijn sneller en groter in het M1-ontwerp.
Samsung zou volgens ComputerBase werken aan een refresh van de Exynos 8890, die het nummer 8893 krijgt, enkele kinderziektes van de 8890 moet oplossen en iets sneller zou worden. Bovendien zou het geavanceerde M1-ontwerp, dat sterk aan desktop x86-ontwerpen doet denken, mogelijk ook in een server-chip ingezet gaan worden, zij het met grotere L2-caches en ondersteuning voor vectorberekeningen.