M7 Motion Coprocessor

In addition to the A7 SoC, the iPhone 5s ships with a discrete “motion coprocessor” called the M7. The M7 acts as a sensor hub, accepting inputs from the accelerometer, gyroscope and compass. The M7 also continuously monitors motion data and can interface with iOS 7’s CoreMotion API. The combination of those two things is designed to enable a completely new class of health and fitness applications.

Fundamentally the role of the M7 was previously serviced by the A6 SoC. Apple broke out its functionality into a separate chip, allegedly to reduce power consumption. With the M7 servicing motion and sensor requests, the A7 SoC can presumably remain asleep for longer. Any application level interaction will obviously require that the A7 wake up, but the M7 is supposed to enable a lot of background monitoring of sensor and motion data at very low power levels.

In the earliest implementation of CoreMotion and the M7, the iPhone 5s in combination with iOS maps will automatically switch between driving and walking directions when it detects that you’ve transitioned from automobile to pedestrian travel. The M7 can also signal iOS that you’re driving, and prevent the OS from popping up requests to join WiFi networks it finds along the way. Hardware enabled situational awareness is a big step for modern smartphones, and the combination of hardware (M7) and software (CoreMotion API) both make a lot of sense. I’ve seen demos in the past of companies looking to parse sensor data (along with other contextual data from your device) to determine when you’re at work, or the gym or when you’re otherwise occupied and can’t immediately respond to a message. Your phone understanding your current state in addition to your location is an extremely important step towards making smartphones even more personal.

The role of the M7 makes a lot of sense - its location physically outside of the A7 SoC is what’s unusual. Apple could’ve just as easily integrated its functionality on die and just power gated the rest of the SoC when idle. The M7’s existence outside of the main A7 die can imply a number of things.

The best theory I have is that we’ll see some deployments of A7 without the associated M7 part. Along those lines, a very smart man theorized that perhaps M7 is built on a different manufacturing process than A7. We’ll have to wait for someone to delayer the M7 to truly find out, but that will tell us a lot about Apple’s motivations here.

Touch ID

I’ve somehow managed to escape most fingerprint sensors on computing devices. I owned a couple of laptops that had the old optical style sensors, but it was always quicker for me to type in a password than it was for me to deal with the sensor. I also wrote a piece on Motorola’s Atrix a few years back, which had a fingerprint sensor built into the power/clock button. The experience back then wasn’t all that great either. If I got into a groove I’d be able to unlock the Atrix by sliding my finger over the sensor every time, but I’d run into problems more often than not. The unpredictable nature of the Atrix’s sensor is what ultimately made it more frustrating than useful. The concept, however, was sound.

No one likes typing in a passcode. Four digit ones aren’t really all that secure unless you have some sort of phone wipe on x-number-of-retries setting. Longer passcodes are more secure but also a pain to type in regularly.

Security is obviously extremely important on modern day smartphones. Personal messages, emails, access to all of your social networking, banking, airline reservations, everything is accessible once you get past that initial passcode on a phone. We also check our devices frequently enough that you want some sort of grace period between requiring another passcode. It’s bad practice, but it’s a great example of convenience trumping security.

When I first heard the rumors of Apple integrating a fingerprint scanner into the iPhone 5s’ home button I was beyond skeptical. I for sure thought that Apple had run out of ideas. Even listening to the feature introduced live, I couldn’t bring myself to care. Having lived with the iPhone 5s for the past week however, I can say that Touch ID is not only extremely well executed, but a feature I miss when I’m not using the 5s.

The hardware is pretty simple to understand. Touch ID is a capacitive fingerprint sensor embedded behind a sapphire crystal cover. The sensor works by forming a capacitor with your finger/thumb. The sensor applies a voltage to one plate of a capacitor, using your finger as the other plate. The resulting electric field between your dermis (layer right below your outward facing skin) and the Touch ID sensor maps out the ridges and valleys of your fingerprint. Because the data that’s being stored is somewhat sub-epidermal, dirt and superficial damage to your finger shouldn’t render Touch ID inoperable (although admittedly I didn’t try cutting any of my fingers to test this theory). The map is recorded (and not an image of your finger) and stored in some secure memory on the A7 SoC itself. The data is stored in an encrypted form and is never uploaded to iCloud or stored anywhere other than on your A7 SoC.

Behind the Touch ID sensor is a similar feeling mechanical switch to what you’d find on the iPhone 5 or 5c. You still get the same click and same resistance. The only physical differences are a lack of the home square printed on the button, and the presence of a steel ring around the button. The steel ring acts as a conductive sensor for your finger. Make contact with the steel ring and Touch ID wakes up (presumably when your phone is in a state where Touch ID interactions are expected). Without making contact with the ring, Touch ID won’t work (I confirmed this by trying to unlock the 5s with my pinky and never touching the ring).

Having a passcode is a mandatory Touch ID requirement. You can’t choose to only use Touch ID to unlock your device. In the event that your fingerprint isn’t recognized, you can always manually type in your passcode.

Your fingerprint data isn’t accessible by third party apps at this point, and even has limited exposure under iOS 7. At present, you can only use Touch ID to unlock your phone or to authorize an iTunes purchase. If you’ve restarted your phone, you need to manually type in your passcode once before you can use Touch ID. If you haven’t unlocked your phone in 48 hours, you’ll need to supply your passcode before Touch ID is an option. Repeated failed attempts (5) to access your 5s via Touch ID will force you to enter a passcode as well.

Other first party services like Game Center logins are also not Touch ID enabled. Even using Touch ID for iTunes purchases requires an opt in step in the Settings menu, it’s not on by default.

Apple has done its best to make the Touch ID configuration and subsequent recognition process as seamless as possible. There’s an initial training period for any finger you want stored by the device. At present you can store up to five unique fingers. At first that sounded like a lot, but I ended up using four of those slots right away. The idea is to store any finger you’d possibly want to use to unlock the device, to avoid Touch ID becoming a limit on how you hold your phone. For me that amounted to both thumbs and both index fingers. The thumbs were an obvious choice since I don’t always hold my phone in the same hand. I added my index fingers for the phone-on-table use case. That left me with a fifth slot that I could use for myself or anyone else I wanted to give access to my phone.

The training process is pretty simple. Just pick up and place your finger on the Touch ID sensor a few times while it maps out your fingerprint. After you complete that step, do it again but focus on the edges of your finger instead. The surface area of the Touch ID sensor is pretty small by comparison to most fingers, so the more data you can give the sensor the better. Don’t worry about giving Touch ID a perfect map of your fingers on the first try. Touch ID is designed to adapt over time. Whenever an unlock attempt fails and is followed by a successful attempt, the 5s will compare the print map from the failed attempt and if it determines that both attempts were made with the same finger it will expand the match database for that finger. Indeed I tested and verified this was working. I deliberately picked a weird angle and part of my thumb to unlock the 5s, which was immediately rejected. I then followed it up with a known good placement and was successful. I then repeated the weird attempt from before and had it immediately succeed. That could’ve been dumb luck or the system working as intended. There’s no end user exposure to what’s going on inside.

With fingers added to Touch ID, everything else works quite smoothly. The easiest way to unlock the iPhone 5s with Touch ID enabled is to press and release the home button and just leave your finger/thumb there. The button press wakes the device, and leaving your digit there after the fact gives the Touch ID sensor time to read your print and unlock the device. In practice, I found it quicker than manually typing in a four digit passcode. Although the process is faster than typing in a passcode, I feel like it could go even quicker. I’m sure Apple is erring on the side of accuracy rather than speed, but I do feel like there’s some room for improvement still.

Touch ID accuracy didn’t seem impacted by oily skin but it quickly turns non-functional if you’ve got a wet finger. The same goes for extremely dirty fingers.

Touch ID ended up being much better than I thought it would be, and it’s honestly the first fingerprint scanner system that I would use on a regular basis. It’s a much better way of unlocking your phone. I’ve been transitioning between the 5s the 5c and the iPhone 5 for the past week, and whenever I’d go to the latter two I’d immediately miss the Touch ID sensor. The feature alone isn’t enough to sell me on the 5s, but it’s definitely a nice addition. My only real wish is that Touch ID would be acceptable as an authentication method in more places, although I understand the hesitation Apple must have in opening the floodgates.

 

GPU Architecture & Performance Battery Life
POST A COMMENT

466 Comments

View All Comments

  • MatthiasP - Tuesday, September 17, 2013 - link

    Wow, first real review on the web AND deep as always, a very nice job from Anand. :) Reply
  • sfaerew - Wednesday, September 18, 2013 - link

    Benchmarks(GFXBench 2.7,3DMark.Basemark X.etc.) are AArch64 version?
    There are 30~40% performance gap between v32geekbench and v64geekbench.
    INT(ST)1471 vs 1065.
    FP(ST)1339 vs 983
    Reply
  • Wilco1 - Wednesday, September 18, 2013 - link

    And Bay Trail Geekbench at 2.4GHz: 1063 (INT), 866 (FP)

    So A7 has beaten BT already by a huge margin despite BT not even being for sale yet...
    Reply
  • TraderHorn - Wednesday, September 18, 2013 - link

    You're comparing 64bit A7 vs 32bit BT. The 32bit #s are dead even. It'll be interesting to see if BT gets a similar performance boost when Win8 64bit versions are released in 1h 2014. Reply
  • Wilco1 - Wednesday, September 18, 2013 - link

    BT's 32-bit result includes hardware accelerated AES, which skews its score (without it, its score is ~936). The 64-bit A7 result does also use hardware acceleration, so it is more comparable.

    Yes BT will get a speedup from 64-bit as well, but won't be nearly as much as A7 gets: its 32-bit result already has the AES acceleration, and x64 nearly isn't as different from x86 as A64 is from A32.

    However the interesting things is that not even in 32-bit A7 wins by a good margin, but that it wins despite running at almost half the frequency of Bay Trail... Forget about Bay Trail, this is Haswell territory - the MacBook Air with the 15W 3.3GHz i7-4650U scores 3024 INT and 3003 FP.

    Now imagine a quad core tablet/laptop version of the A7 running at 2GHz on TSMC 20nm next year.
    Reply
  • smartypnt4 - Wednesday, September 18, 2013 - link

    Why does the frequency matter? If the TDP of the chips are similar (Bay Trail was tested and verified by Anand as using 2.5W at the SoC level under load), who gives a flip about the frequency?

    If Apple wanted to double the frequency of the chip, they'd need something on the order of 4x the amount of power it already consumes (assuming a back-of-the-napkin quadratic relationship, which is approximately correct), putting it at ~6-8W or so at full load. That's assuming such a scaling could even be done, which is unlikely given that Apple built the thing to run at 1.3GHz max. You can't just say "oh, I want these to switch faster, so let's up the voltage." There's more that goes in to the ability to scale voltage than just the process node you're on.

    Now, I will agree that this does prove that if Apple really wanted to, they could build something to compete with Haswell in terms of raw throughput. Next year's A8 or whatever probably will compete directly with Haswell in raw theoretical integer and FP throughput, if Apple manages to double performance again. That's not a given since they had to use ~50% more transistors to get a performance doubling from the A6 to the A7, and building a 1.5B transistor chip is nontrivial since yields are inversely proportional to the number of transistors you're using.

    Next year will be really interesting, though. What with Apple's next stuff, Broadwell, the first A57 designs, Airmont, and whatever Qualcomm puts out (haven't seen anything on that, which is odd for Qualcomm.)
    Reply
  • Wilco1 - Wednesday, September 18, 2013 - link

    Frequency & process matters. Current phones use about 2W at max load without the screen (see recent Nexus 7 test), so the claimed 2.5W just for BT is way too much for a phone. That means (as you explained) it must run at a lower frequency and voltage to get into phones - my guess we won't see anything faster than the Z3740 with a max clock of 1.8GHz. Therefore the A7 will extend its lead even further.

    According to TSMC 20nm will give a 30% frequency boost at the same power. So I'd expect that a 2GHz A7 would be possible on 20nm using only 35% more power. That means the A7 would get 75% more performance at a small cost in power consumption. This is without adding any extra transistors.

    Add some tweaks (like faster memory) and such a 2GHz A7 would be similar in performance as the 15W Haswell in MacBook Air. So my point is that with a die shrink and a slight increase in power they already have a Haswell competitor.
    Reply
  • smartypnt4 - Wednesday, September 18, 2013 - link

    Frequency and process matter in that they affect power consumption. If Intel can get Bay Trail to do 2.4GHz on something like 1.0V, then the power should be fine. Current Haswell stuff tops out its voltage around 1.1V or so in laptops (if memory serves), so that's not unreasonable.

    All of this assumes Geekbench is valid for comparing HSW on Win8 to ARMv8/Cyclone on iOS, which I have serious reservations about attempting to do.

    The other issue I have is this: you're talking about a 50% clock boost giving a 100% increase in performance if we look at the Geekbench scores. That's simply not possible. Had you said "raise the clock to 1.6-1.7GHz and give it 4 cores," I'd be right behind you in a 2x theoretical performance increase. But a 50% clock boost will never yield a 100% increase with the same core, even if you change the memory controller.

    Also, somehow your math doesn't add up for power... Are you hypothesizing that a 2GHz A7 (with 75% of the performance of Haswell 15W, not the same - as per Geekbench) can pull 2.6W while Haswell needs 15W to run that test? Granted, Haswell integrates things that the A7 doesn't. Namely, more advanced I/O (PCIe, SATA, USB, etc.), and the PCH. Using very fuzzy math, you can claim all of that uses 1/2 the power of the chip.

    That brings Haswell's power for compute down to 7-8W, more or less. And you're going to tell me that Apple has figured out how to get 75% of the performance of a 7W part in 2.6W, and Intel hasn't? Both companies have ~100k employees. One is working on a ton of different stuff, and one makes processors, basically exclusively (SSDs and WiFi stuff too, but processors is their main drive). You're telling me that a (relatively) small cadre of guys at Apple have figured out how to do it, and Intel hasn't done it yet on a part that costs ~6x as much after trying to get deep into the mobile space for years. I find that very hard to believe.

    Even with the 14nm shrink next year, you're talking about a 30% power savings for Intel's stuff. That brings the 15W total down to 10.5W, and the (again, super, ridiculously fuzzy) computing power to ~5-6W. On a full node smaller than what Apple has access to. And you're saying they'd hypothetically compete in throughput with a 2.6W part. I'm not sure I believe that.

    Then again, I suppose theoretical bandwidth could be competitive. That's simply a factor of your peak IPC, not your average IPC while the device is running. I don't know enough about the low level architecture of the A7 (no one does), so I'll just leave it here I guess.

    I'm gonna go now... I'm starting to reason in circles.
    Reply
  • Wilco1 - Wednesday, September 18, 2013 - link

    The sort of "simple" tweaks I was thinking of are: an improved memory controller and prefetcher, doubling of L2, larger branch predictor tables. Assuming a 30% gain due to those tweaks, the result is a 100% speedup at 2GHz (1.3 to 2.0 GHz is a 54% speedup, so you get 1.54 * 1.3 = 2.0x perf). The 30% gain due to tweaks is pure speculation of course, however NVidia claims 15-30% IPC gain for similar tweaks in Tegra 4i, so it's not entirely implausible. As you say a much simpler alternative would be just to double the cores, but then your single threaded performance is still well below that of Haswell.

    You can certainly argue some reduction in the 15W TDP of Haswell due to IO, however with Turbo it will try to use most of that 15W if it can (the Air goes up to 3.3GHz after all).

    Yes I am saying that a relative newcomer like Apple can compete with Intel. Intel may be large, but they are not infallible, after all they made the P4, Itanium and Atom. A key reason AMD cited for moving into ARM servers was that designing an ARM CPU takes far less effort than an equivalent performing x86 one. So the ISA does still matter despite some claiming it no longer does.
    Reply
  • smartypnt4 - Wednesday, September 18, 2013 - link

    My point wasn't that Apple can't compete; far from it. If anything, the A7 shows they can compete for the most part. However, what you suggest is that Apple could theoretically have the same performance as Intel on a full node process larger at half the power. I

    have no illusions that Intel is infallible. Stuff like Larrabee and the underwhelming GPU in Bay Trail prove that they aren't. I just seriously doubt that Apple could beat Intel at its own game. Specifically, in CPU performance, which is an area it's dominated for years. It's possible, but I find it relatively unlikely, especially this early in Apple's lifetime as a chip designer.

    On a different note, after looking at the Geekbench results more, I feel like it's improperly weighted. The massive performance improvement in AES and SHA encryption may be skewing the overall result... I need to dig more in to Geekbench before coming to an actual conclusion. I'm also still not convinced that comparing cross-platform results is actually valid. I'd like to believe it is, but I've always had reservations about it.
    Reply

Log in

Don't have an account? Sign up now