The iPhone 5s Review
by Anand Lal Shimpi on September 17, 2013 9:01 PM EST- Posted in
- Smartphones
- Apple
- Mobile
- iPhone
- iPhone 5S
After Swift Comes Cyclone Oscar
I was fortunate enough to receive a tip last time that pointed me at some LLVM documentation calling out Apple’s Swift core by name. Scrubbing through those same docs, it seems like my leak has been plugged. Fortunately I came across a unique string looking at the iPhone 5s while it booted:
I can’t find any other references to Oscar online, in LLVM documentation or anywhere else of value. I also didn’t see Oscar references on prior iPhones, only on the 5s. I’d heard that this new core wasn’t called Swift, referencing just how different it was. Obviously Apple isn’t going to tell me what it’s called, so I’m going with Oscar unless someone tells me otherwise.
Oscar is a CPU core inside M7, Cyclone is the name of the Swift replacement.
Cyclone likely resembles a beefier Swift core (or at least Swift inspired) than a new design from the ground up. That means we’re likely talking about a 3-wide front end, and somewhere in the 5 - 7 range of execution ports. The design is likely also capable of out-of-order execution, given the performance levels we’ve been seeing.
Cyclone is a 64-bit ARMv8 core and not some Apple designed ISA. Cyclone manages to not only beat all other smartphone makers to ARMv8 but also key ARM server partners. I’ll talk about the whole 64-bit aspect of this next, but needless to say, this is a big deal.
The move to ARMv8 comes with some of its own performance enhancements. More registers, a cleaner ISA, improved SIMD extensions/performance as well as cryptographic acceleration are all on the menu for the new core.
Pipeline depth likely remains similar (maybe slightly longer) as frequencies haven’t gone up at all (1.3GHz). The A7 doesn’t feature support for any thermal driven CPU (or GPU) frequency boost.
The most visible change to Apple’s first ARMv8 core is a doubling of the L1 cache size: from 32KB/32KB (instruction/data) to 64KB/64KB. Along with this larger L1 cache comes an increase in access latency (from 2 clocks to 3 clocks from what I can tell), but the increase in hit rate likely makes up for the added latency. Such large L1 caches are quite common with AMD architectures, but unheard of in ultra mobile cores. A larger L1 cache will do a good job keeping the machine fed, implying a larger/more capable core.
The L2 cache remains unchanged in size at 1MB shared between both CPU cores. L2 access latency is improved tremendously with the new architecture. In some cases I measured L2 latency 1/2 that of what I saw with Swift.
The A7’s memory controller sees big improvements as well. I measured 20% lower main memory latency on the A7 compared to the A6. Branch prediction and memory prefetchers are both significantly better on the A7.
I noticed large increases in peak memory bandwidth on top of all of this. I used a combination of custom tools as well as publicly available benchmarks to confirm all of this. A quick look at Geekbench 3 (prior to the ARMv8 patch) gives a conservative estimate of memory bandwidth improvements:
Geekbench 3.0.0 Memory Bandwidth Comparison (1 thread) | ||||||
Stream Copy | Stream Scale | Stream Add | Stream Triad | |||
Apple A7 1.3GHz | 5.24 GB/s | 5.21 GB/s | 5.74 GB/s | 5.71 GB/s | ||
Apple A6 1.3GHz | 4.93 GB/s | 3.77 GB/s | 3.63 GB/s | 3.62 GB/s | ||
A7 Advantage | 6% | 38% | 58% | 57% |
We see anywhere from a 6% improvement in memory bandwidth to nearly 60% running the same Stream code. I’m not entirely sure how Geekbench implemented Stream and whether or not we’re actually testing other execution paths in addition to (or instead of) memory bandwidth. One custom piece of code I used to measure memory bandwidth showed nearly a 2x increase in peak bandwidth. That may be overstating things a bit, but needless to say this new architecture has a vastly improved cache and memory interface.
Looking at low level Geekbench 3 results (again, prior to the ARMv8 patch), we get a good feel for just how much the CPU cores have improved.
Geekbench 3.0.0 Compute Performance | ||||||
Integer (ST) | Integer (MT) | FP (ST) | FP (MT) | |||
Apple A7 1.3GHz | 1065 | 2095 | 983 | 1955 | ||
Apple A6 1.3GHz | 750 | 1472 | 588 | 1165 | ||
A7 Advantage | 42% | 42% | 67% | 67% |
Integer performance is up 44% on average, while floating point performance is up by 67%. Again this is without 64-bit or any other enhancements that go along with ARMv8. Memory bandwidth improves by 35% across all Geekbench tests. I confirmed with Apple that the A7 has a 64-bit wide memory interface, and we're likely talking about LPDDR3 memory this time around so there's probably some frequency uplift there as well.
The result is something Apple refers to as desktop-class CPU performance. I’ll get to evaluating those claims in a moment, but first, let’s talk about the other big part of the A7 story: the move to a 64-bit ISA.
464 Comments
View All Comments
vampyren - Wednesday, October 2, 2013 - link
Great review, Sadly i feel so limited in iOS these days and also the screen size is just to small for my taste. I use Galaxy S4 and i'm really happy with it. my iPhone5 is still performing well as well but i use it less and less these days, hopefully Apple will make a larger screen phone next time. That might make me more willing to use iphone but not with 4inch.AEdouard - Sunday, October 6, 2013 - link
I'm sure they'll be offering a bigger option in 2014, for the regular iPhone or a new ''large'' iPhone model alongside the regular 4 inch option.Samwise - Wednesday, October 2, 2013 - link
Anandtech, please review the Droid MAXX.Duck <(' ) - Thursday, October 3, 2013 - link
Hello Anand, it seems that you actually are inflating the benchmark scores in case of apple for some unknown reasons. For ex- iPhone 5 in YouTube vids scores around 2300 while you show 2800. Check here https://www.youtube.com/watch?v=iATFnXociC4Duck <(' ) - Thursday, October 3, 2013 - link
You people are complete LIARS !!! Will never visit your site again. You have been bribed by apple but your website will suffer loss in reputation.varase - Thursday, October 3, 2013 - link
I wonder if any of these Android benchmarks are tainted by gamed benchmark code.mohammedkarou - Sunday, October 6, 2013 - link
i have the iPhone 5s 32gb black, while , gold color for sale and i have 30 units altogetherContact me for more details regarding the purchase of this and i will explain better iphone4sale32 and on email at : mohammedkarou@hotmail.com
Hrel - Monday, October 14, 2013 - link
I think in the 16:9 aspect ratio a 5" screen would probably be best. I'll never buy an apple product so I guess it doesn't really matter to me. But I think a thin bezel with a 5" 1080p screen is the way to go.Bossrulz - Tuesday, October 22, 2013 - link
Hi Anand. I am planning to buy my first iphone in the form of 5S.Is it worth to buy or to wait for iphone 6 ?
Is it good to buy in USA or in the country where I live in ?
Does iphone have internatiobnal warranty ?
beast from the east - Wednesday, October 30, 2013 - link
Intel only ever dominiated in sales, not processing power.I have installed Apple systems for 25 years, pre-Intel Macs, Apple's computers had twice the performance per clock cycle than the Intel equivalents. From the Motorola chips through to PowerPC.
That's one of the many reasons why graphics, video and the scientific community used Macs.
This chip is a beast, we all know it. With the best relationship in the mobile market with Developers that get paid for their work, a fantastic SDK, and Dev's talking about an hour to recompile to 64-bit. I think Apple will be alright.
Trying to pick holes is just 'Roid-Rage, plain and simple.