From WikiChip
Difference between revisions of "samsung/microarchitectures/m2"
(Mongoose 2) |
(remove crypto+crc since it's optional) |
||
| (17 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {{samsung title| | + | {{samsung title|Exynos M2|arch}} |
{{microarchitecture | {{microarchitecture | ||
|atype=CPU | |atype=CPU | ||
| Line 5: | Line 5: | ||
|designer=Samsung | |designer=Samsung | ||
|manufacturer=Samsung | |manufacturer=Samsung | ||
| + | |introduction=February 23, 2017 | ||
| + | |phase-out=2018 | ||
|process=10 nm | |process=10 nm | ||
| + | |cores=4 | ||
|oooe=Yes | |oooe=Yes | ||
|speculative=Yes | |speculative=Yes | ||
|renaming=Yes | |renaming=Yes | ||
| + | |stages=14 | ||
|decode=4-way | |decode=4-way | ||
|isa=ARMv8 | |isa=ARMv8 | ||
| Line 20: | Line 24: | ||
|l2 per=cluster | |l2 per=cluster | ||
|l2 desc=16-way set associative | |l2 desc=16-way set associative | ||
| − | |predecessor= | + | |predecessor=M1 |
| − | |predecessor link=samsung/microarchitectures/ | + | |predecessor link=samsung/microarchitectures/m1 |
| − | |successor= | + | |successor=M3 |
| − | |successor link=samsung/microarchitectures/ | + | |successor link=samsung/microarchitectures/m3 |
}} | }} | ||
| − | '''Mongoose 2''' ('''M2''') is | + | '''Exynos Mongoose 2''' ('''M2''') is the successor to the {{\\|Mongoose 1}}, a [[10 nm]] [[ARM]] microarchitecture designed by [[Samsung]] for their consumer electronics. |
| + | |||
| + | == Process Technology == | ||
| + | M2 was fabricated on Samsung's first generation [[10 nm process|10LPE (Low Power Early) process]]. | ||
| + | |||
| + | == Compiler support == | ||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Compiler !! Arch-Specific || Arch-Favorable | ||
| + | |- | ||
| + | | [[GCC]] || <code>-mcpu=exynos-m1</code> || <code>-mtune=exynos-m1</code> | ||
| + | |- | ||
| + | | [[LLVM]] || <code>-mcpu=exynos-m2</code> || <code>-mtune=exynos-m2</code> | ||
| + | |} | ||
| + | |||
| + | == Architecture == | ||
| + | === Key changes from {{\\|Mongoose 1}} === | ||
| + | * [[10 nm|10nm (10LPE) process]] (from [[14 nm]]) | ||
| + | * Larger [[ROB]] (100, up from 96) | ||
| + | {{expand list}} | ||
| + | |||
| + | === Block Diagram === | ||
| + | ==== Core Cluster Overview ==== | ||
| + | <small>(Cluster identical to {{\\|Mongoose 1}})</small> | ||
| + | |||
| + | [[File:mongoose 1 soc block diagram.svg|500px]] | ||
| + | |||
| + | ==== Individual Core ==== | ||
| + | [[File:mongoose 2 block diagram.svg|900px]] | ||
| + | |||
| + | === Memory Hierarchy === | ||
| + | * Cache | ||
| + | ** L1I Cache | ||
| + | *** 64 KiB, 4-way set associative | ||
| + | **** 128 B line size | ||
| + | **** per core | ||
| + | *** Parity-protected | ||
| + | ** L1D Cache | ||
| + | *** 32 KiB, 8-way set associative | ||
| + | **** 64 B line size | ||
| + | **** per core | ||
| + | *** 4 cycles for fastest load-to-use | ||
| + | *** 16 B/cycle load bandwidth | ||
| + | *** 16 B/cycle store bandwidth | ||
| + | ** L2 Cache | ||
| + | *** 2 MiB, 16-way set associative | ||
| + | **** 4x banks (512 KiB each) | ||
| + | *** Inclusive of L1 | ||
| + | *** 22 cycles latency | ||
| + | *** 16 B/cycle/CPU bandwidth | ||
| + | |||
| + | The M2 TLB consists of dedicated L1 TLB for instruction cache (ITLB) and another one for data cache (DTLB). Additionally there is a unified L2 TLB (STLB). | ||
| + | |||
| + | * TLBs | ||
| + | ** ITLB | ||
| + | *** 256-entry | ||
| + | ** DTLB | ||
| + | *** 32-entry | ||
| + | ** STLB | ||
| + | *** 1,024-entry | ||
| + | *** Per core | ||
| + | |||
| + | * BPU | ||
| + | ** 4K-entry main BTB | ||
| + | ** 64-entry µBTB | ||
| + | ** 64-entry return stack | ||
| + | ** 8K-entry L2 BTB | ||
| + | |||
| + | == Core == | ||
| + | The M2 core is almost identical to the {{\\|M1}}. | ||
| + | |||
| + | == All M2 Processors == | ||
| + | <!-- NOTE: | ||
| + | This table is generated automatically from the data in the actual articles. | ||
| + | If a microprocessor is missing from the list, an appropriate article for it needs to be | ||
| + | created and tagged accordingly. | ||
| + | |||
| + | Missing a chip? please dump its name here: https://en.wikichip.org/wiki/WikiChip:wanted_chips | ||
| + | --> | ||
| + | {{comp table start}} | ||
| + | <table class="comptable sortable tc5 tc6 tc7"> | ||
| + | {{comp table header|main|8:List of M2-based Processors}} | ||
| + | {{comp table header|main|6:Main processor|2:Integrated Graphics}} | ||
| + | {{comp table header|cols|Family|Launched|Arch|Cores|%Frequency|%Turbo|GPU|%Frequency}} | ||
| + | {{#ask: [[Category:microprocessor models by samsung]] [[microarchitecture::Mongoose 2]] | ||
| + | |?full page name | ||
| + | |?model number | ||
| + | |?family | ||
| + | |?first launched | ||
| + | |?microarchitecture | ||
| + | |?core count | ||
| + | |?base frequency#GHz | ||
| + | |?turbo frequency (1 core)#GHz | ||
| + | |?integrated gpu | ||
| + | |?integrated gpu base frequency | ||
| + | |format=template | ||
| + | |template=proc table 3 | ||
| + | |userparam=10 | ||
| + | |mainlabel=- | ||
| + | |valuesep=, | ||
| + | }} | ||
| + | {{comp table count|ask=[[Category:microprocessor models by samsung]] [[microarchitecture::Mongoose 2]]}} | ||
| + | </table> | ||
| + | {{comp table end}} | ||
Latest revision as of 13:50, 21 February 2019
| Edit Values | |
| Mongoose 2 µarch | |
| General Info | |
| Arch Type | CPU |
| Designer | Samsung |
| Manufacturer | Samsung |
| Introduction | February 23, 2017 |
| Phase-out | 2018 |
| Process | 10 nm |
| Core Configs | 4 |
| Pipeline | |
| OoOE | Yes |
| Speculative | Yes |
| Reg Renaming | Yes |
| Stages | 14 |
| Decode | 4-way |
| Instructions | |
| ISA | ARMv8 |
| Cache | |
| L1I Cache | 64 KiB/core 4-way set associative |
| L1D Cache | 32 KiB/core 8-way set associative |
| L2 Cache | 2 MiB/cluster 16-way set associative |
| Succession | |
Exynos Mongoose 2 (M2) is the successor to the Mongoose 1, a 10 nm ARM microarchitecture designed by Samsung for their consumer electronics.
Contents
Process Technology[edit]
M2 was fabricated on Samsung's first generation 10LPE (Low Power Early) process.
Compiler support[edit]
| Compiler | Arch-Specific | Arch-Favorable |
|---|---|---|
| GCC | -mcpu=exynos-m1 |
-mtune=exynos-m1
|
| LLVM | -mcpu=exynos-m2 |
-mtune=exynos-m2
|
Architecture[edit]
Key changes from Mongoose 1[edit]
- 10nm (10LPE) process (from 14 nm)
- Larger ROB (100, up from 96)
This list is incomplete; you can help by expanding it.
Block Diagram[edit]
Core Cluster Overview[edit]
(Cluster identical to Mongoose 1)
Individual Core[edit]
Memory Hierarchy[edit]
- Cache
- L1I Cache
- 64 KiB, 4-way set associative
- 128 B line size
- per core
- Parity-protected
- 64 KiB, 4-way set associative
- L1D Cache
- 32 KiB, 8-way set associative
- 64 B line size
- per core
- 4 cycles for fastest load-to-use
- 16 B/cycle load bandwidth
- 16 B/cycle store bandwidth
- 32 KiB, 8-way set associative
- L2 Cache
- 2 MiB, 16-way set associative
- 4x banks (512 KiB each)
- Inclusive of L1
- 22 cycles latency
- 16 B/cycle/CPU bandwidth
- 2 MiB, 16-way set associative
- L1I Cache
The M2 TLB consists of dedicated L1 TLB for instruction cache (ITLB) and another one for data cache (DTLB). Additionally there is a unified L2 TLB (STLB).
- TLBs
- ITLB
- 256-entry
- DTLB
- 32-entry
- STLB
- 1,024-entry
- Per core
- ITLB
- BPU
- 4K-entry main BTB
- 64-entry µBTB
- 64-entry return stack
- 8K-entry L2 BTB
Core[edit]
The M2 core is almost identical to the M1.
All M2 Processors[edit]
| List of M2-based Processors | ||||||||
|---|---|---|---|---|---|---|---|---|
| Main processor | Integrated Graphics | |||||||
| Model | Family | Launched | Arch | Cores | Frequency | Turbo | GPU | Frequency |
| Count: 0 | ||||||||
Facts about "Exynos M2 - Microarchitectures - Samsung"
| codename | Mongoose 2 + |
| designer | Samsung + |
| full page name | samsung/microarchitectures/m2 + |
| instance of | microarchitecture + |
| instruction set architecture | ARMv8 + |
| manufacturer | Samsung + |
| microarchitecture type | CPU + |
| name | Mongoose 2 + |
| process | 10 nm (0.01 μm, 1.0e-5 mm) + |