Why are all the cores and gigahertz needed in modern smartphones? Android apps use only one processor core: Fact or Fiction

For ten years now, our computers have had multi-core processors, and these days this is the norm. At first there were two cores, then four, and today companies like Intel and AMD offer high-end processors for desktop computers with 6 or 8 cores. The same story applies to processors in smartphones. Dual-core energy-efficient processors from ARM appeared about 5 years ago, followed by 4, 6 and 8-core processors based on ARM architecture. Meanwhile, there is a difference between 6- and 8-core desktop processors from Intel and AMD and 6- and 8-core processors based on the ARM architecture. Most processors in the second category with more than 4 cores use at least two different core designs.

With a few exceptions, in general, the eight-core ARM processor uses a system known as Heterogeneous Multi-Processing (HMP), in which “heterogeneity” means that the cores are not equal. In a modern 64-bit processor, this means that a cluster of Cortex-A57 or Cortex-A72 cores is used in combination with a cluster of Cortex-A53 cores. The A72 is a high-performance core, while the A53 is more energy efficient. This combination is known as big.LITTLE, since it combines “big” cores (Cortex-A72) with “small” Cortex-A53. This is very different from 6- and 8-core PC processors from Intel and AMD, as power consumption is not as much of an issue as it is on a mobile device.

When multi-core processors first hit PCs, many questions arose regarding the advantages of a dual-core processor over a single-core processor. Is a dual-core 1.6GHz processor “better” than a single-core 3.2GHz processor or not? What about Windows? Will it be able to maximize the potential of a dual-core processor? What about games? Are they really better with a dual core processor? And when writing applications, do you need to do this in a special way so that they can use additional cores? And so on.

About multiprocessing

These questions are quite natural, and, of course, the same questions arise about multi-core processors in smartphones. Before we look at the relationship between multi-core processors in smartphones and Android applications, let's take a quick look at multi-core technology in general.

Computers are great at solving one problem. Do you need to know the first hundred million prime numbers? No question, the computer will calculate them all day, over and over again. But then, when you need it to perform two actions, for example, identifying the same prime numbers with simultaneously running graphical interface, so that you can simultaneously engage in web browsing, this turns out to be a little more difficult.

Without going into too much detail, there is a technology known as preemptive multitasking, which allows the available CPU time to be divided among multiple tasks. A “piece” of processor time is allocated to one task, a “piece” to another, and so on. At the heart of operating systems such as Linux, Windows, OS X and Android is a piece of technology known as the scheduler, which determines which process gets the next chunk of CPU time.


Schedulers can be written in different ways; on a server, the scheduler can be tailored to give priority to I/O tasks such as writing to disk or reading from the network, while in desktop version it will place more emphasis on GUI responsiveness.

When there is more than one core, the scheduler can assign one process a slice of CPU 0's time, while another process gets a slice of CPU 1's time. So the scheduler and dual core processor allow two tasks to be performed simultaneously. The more cores, the more processes can run simultaneously.

You have already noticed that the scheduler is good at dividing processor resources between various tasks, such as calculating prime numbers, launching a desktop, or using a browser. However, a single process, such as calculating prime numbers, can be divided among multiple cores. Or not?

Some tasks are sequential in themselves. To bake a pie, you need to break eggs, add flour, knead the dough, and so on. You cannot put the pie in the oven until the dough is ready. So even if you have two cooks in the kitchen, you won’t be able to save time on one of the tasks. There is an inviolable order and sequence of actions. You can handle multiple tasks at once and assign one chef the pie and another the salad, but tasks with a predetermined order of actions will not benefit from a dual-core or even a 12-core processor.

Not all tasks are as described above. Many of the operations that a computer performs can be divided into several independent tasks. For this to happen, the main process must create another process and give it some of the work. For example, if, when using an algorithm to calculate prime numbers, you do not use previous results or use the Sieve of Eratosthenes, you can divide the work into two parts. One process calculates the first 50 million numbers and the second process calculates the second 50 million. A quad-core processor allows you to divide the work into 4 parts, and so on.

But in order for all this to work, the program must be written in a special way. In other words, it should be designed to divide the load into smaller parts, rather than doing it all together. There are various programming technologies for this, and you've probably heard words like "single-threaded" or "multithreaded". These words mean programs that are written to perform a single task (single-threaded, all together) or programs with individual tasks (threads) that can be separately assigned their own processor time. Summing up summary, a single-threaded program will not benefit from running on a multi-core processor, but a multi-threaded one will benefit from running on a multi-core processor.


So, we're almost to the point, and before we move on to Android, there's one more thing we need. Depending on how the OS is written, some programs that run may be inherently multi-threaded. Often separate parts of the OS are themselves independent tasks, and when your program performs input and output or displays something on the screen, it may be separate process in system. Using what are called non-blocking calls can introduce multithreading into a program without creating threads specifically.

This is an important aspect for Android. One of the system level tasks in the Android architecture is SurfaceFlinger. This is the basis of the withdrawal process graphic information to the display in Android. This is a separate task that must be allocated CPU time. Which means that certain graphics operations require starting a new process to run.

Android

Because of processes like SurfaceFlinger, Android benefits from multi-core processors without the need for dedicated, multi-threaded applications. And since a lot of things happen in the background, like syncing and widgets, Android benefits from being multi-core and as a whole. This OS, as expected, has the ability to create multi-threaded applications. To learn more, take a look at the Processes and Threads section in the Android documentation. There are also multi-threaded examples from Google, and there is also an interesting article from Qualcomm on programming Android applications for multi-core processors.

However, it remains topical issue, Does it most Android applications are single-threaded and thus use only one core. The question is important, because if so, then you could have a multi-core monster from the world of smartphones, but in fact its processor will work like a dual-core one!

You may also be wondering about the difference between a 4-core and an 8-core processor. In PCs or servers, eight-core processors are designed so that the chip consists of identical cores. For most eight-core processors with ARM architecture There are high-performance and energy-efficient core options. And the point is that more energy-efficient cores are used to perform more minor tasks, and high-performance cores are used to work in the heavy weight category. However, just like the desktop version, these cores can be used simultaneously.

The main thing to remember here is that the big.LITTLE octa-core processor has eight cores for reasons of power efficiency, not performance.

Testing

In Android, it is possible to get information about how many cores the system has used in the processor. For those in the know, this can be looked at in the /proc/stat file. A tool was created that takes information about the usage of kernels in Android while the application is running. To improve its efficiency and reduce performance degradation, information is collected only when the application is active. Data analysis is performed offline.

Using this tool, which does not yet have a name, a series of applications were launched for testing different types(games, web browsing, etc.) on a phone with a quad-core Qualcomm Snapdragon 801 processor, and then on a phone with an eight-core Qualcomm Snapdragon 615. When comparing the data, the processor usage graphs were obtained. Let's start with a simple example. Here is a graph of the Snapdragon 801 cores when using the Chrome browser:


The graph shows how many cores Android and the browser were using. It does not demonstrate how much the core was used, only whether it was used at all. If Chrome were single threaded, you would expect one or two cores to be used, maybe a third or fourth on occasion. But we don't see this. On the contrary, four cores are used, and only at times the number of used cores drops to 2. In the browsing test, loaded pages were not read, this would not affect the use of the processor. The pages simply loaded, and you could move on to new ones.

Here is a graph that shows how much each core was used. This is an average graph (in real life, the huge number of lines causes confusion). This means that at least the usage peaks are shown. For example, the peak in this graph is greater than 90%, but the initial data showed that some cores reached 100% many times. However, you can clearly see what happened here.


What about the eight-core processor? Does it demonstrate the same pattern? No, as you can see in the graph below. Seven cores are constantly used, at peaks it reaches 8, sometimes drops to 6 and 4.


Also, the average per-core usage shows that the scheduler behaved differently since the Snapdragon 615 is a big.LITTLE processor.


You can see that two or three cores work harder than others, but all cores are involved in one way or another. We see how the big.LITTLE architecture can pass threads from core to core depending on load. And don't forget that the point of additional cores is energy efficiency, not performance.

We can safely say that Android’s use of just one core is a myth. This was expected given that Chrome, like Android, was designed to be multi-threaded, just like the desktop.

Other applications

So this was Chrome designed to be multi-threaded, but what about other apps? Here's what happened in a nutshell

Gmail – on a 4-core phone, we got equal shares of 2 and 4 cores. However, average core utilization did not rise above 50%—as expected for a relatively lightweight application. The octa-core processor saw jumps from 4 to 8 cores, but lower average core utilization of less than 35%.

YouTube - On a 4-core processor, only 2 cores were used, averaging less than 50% load. On the 8-core there are mainly 4 cores, at times it grew to 6 and dropped to 3. The core load on average was only 30%. Interestingly, the scheduler preferred large kernels and hardly used small ones.

Riptide GP2 - 4 cores - The Qualcomm processor used two cores most of the time, and the other two very little. And in the 8-core version, 6-7 cores were used sequentially, but only three did the main work.

Templerun 2 is a more extreme example of the single-threading problem than the other apps in the test. In the 8-core variant, 4-5 cores were used sequentially with peaks of up to 7. And only one core did the hard work. On a phone with a quad-core Qualcomm Snapdragon 801, two cores shared the load approximately equally, while the other two got very little workload. On a phone with a 4-core processor from MediaTek, the load was distributed across all four cores. This shows how different schedulers and different kernels dramatically change how the processor is used.

Here is a selection of graphs for clarity. An 8-core system idle graph has been added as a starting point.

Eight-core device, active screen, the user does not perform any actions:

YouTube running on a 4-core device:

YouTube running on an 8-core device:

TempleRun2 running on a 4-core machine:

TempleRun2 running on a 4-core device with a MediaTek processor:

Gmail running on a 4-core device:

Gmail running on an 8-core device:

Riptide GP2 running on a 4-core machine:

Riptide GP2 running on an 8-core machine:

An interesting result was obtained in AnTuTu on an 8-core processor.


As you can see, the last part The test fully loads all cores. It is clear that the benchmark artificially creates a high load, and since all the cores are working at full capacity, chipsets with a large number of cores win. WITH regular applications this was not observed. Benchmarks artificially inflate the advantage of eight-core devices in performance (more than in energy efficiency).

Why do light applications use 8 cores?

If you look at apps like Gmail, you'll notice an interesting phenomenon. On a 4-core machine, core usage is split equally between two and four cores, while on an 8-core machine, it's split between four and eight. How can Gmail run on 2 - 4 cores on a 4 core phone, but require at least four cores on an 8 core phone? Some kind of nonsense.

The point again is that the cores in phones with big.LITTLE are not equal. In reality, we see that the scheduler uses LITTLE cores, and when the load increases, their big brothers come into play. After some time of working together, the LITTLE cores go to rest. When the load decreases, the opposite happens. Of course, all this happens very quickly, thousands of times per second. Look at the graph that compares the usage of big and LITTLE cores in Epic Citadel.


Look, big cores are used first, and LITTLE cores are inactive. Then, around the 12 second mark, the big cores start to be used less and the LITTLE cores wake up. At 20 seconds, the big cores increase their activity again, and the LITTLE cores reduce it to almost zero. This is also visible at the 30, 45 and 52 second marks. At these points, the number of cores used fluctuates. For example, in the first 10 s only 3 or 4 cores are used (these are big cores), and at 12 s this number reaches 6, then drops again to 4, etc. This is how big.LITTLE works. This processor is built differently than a PC processor. Additional cores allow the scheduler to select the correct cores for different actions.

All the tests that were carried out showed that there was not one real application, which would use all 8 cores one hundred percent. That's how it should have been.

Let's sum it up

First of all, let's emphasize that these tests do not reflect the performance of the phones, but only show whether Android applications use multiple cores. The advantages or disadvantages of multi-cores or the big.LITTLE chipset are not disclosed, nor are the performance of parts of the application on two cores when using them at 25% versus using one core at 50%, and so on.

Next, tests have not yet been performed on the Cortex-A53/Cortex-A57 or Cortex-A53/Cortex-A72 circuit. The Qualcomm Snapdragon 615 has a quad-core 1.7 GHz ARM Cortex A53 cluster and a quad-core 1.0 GHz A53 cluster.

The scan interval in these statistics is approximately a third of a second, i.e. about 330 milliseconds. If a core is reporting 25% usage in those 300 milliseconds and a second core is reporting the same, the graph will show that both cores are being used at 25% at the same time, with one core being able to be at 25% usage for 150 milliseconds, so is with the second one. This means that the cores were used sequentially rather than just once. Currently, the test does not require a shorter interval.

With all this, Android applications are obviously able to take advantage of multi-core processors and big.LITTLE processors allow the scheduler to select the best combination of cores for the current task. Therefore, if you still hear from people “But a smartphone doesn’t need 8 cores!”, you can only throw up your hands in despair. These people don't understand anything.

Rapid development operating system Android automatically dictates the terms and software, which becomes more focused on the constantly improving characteristics of mobile devices. And now, just recently, the nimble “little animal” does not pull a new one or

But is everything so hopeless? Maybe it’s too early to add another copy to your collection of former smartphones? Now we’ll talk about this and try to answer the question of how to overclock the processor on Android.

First, a little theory. The minimum processor frequency should be understood as the frequency at which the Android OS operates during the period of least load or idle time (blocking). Increasing the minimum frequency is advisable to speed up operation simple applications or interface.

The maximum frequency is typical for the functioning of the processor at times requiring high load. We are talking about three-dimensional games with dynamic gameplay and advanced graphics.

The overclocking procedure (or overlogging) is an increase in the processor component beyond the standard modes in order to increase its operating speed. It’s easy to guess that a processor with 768 MHz clock frequency, shows a speed one and a half times greater than the “brain” mobile device at 528 MHz. However, a smartphone with a standard processor frequency of 768 MHz will differ from its counterpart “overclocked” to such parameters. Let's see if it makes sense to bother with overclocking at all.

  • We get additional power, as a result of which the operation of the device is significantly accelerated, which will be really noticeable in 3D toys.
  • The device will become more flexible in working with software that requires a strong processor.
  • You will have to charge the battery more often.
  • It is possible that the smartphone will start to heat up more.
  • An overclocked processor will have a shorter service life.

Well, now, remembering folk wisdom, let’s ask ourselves the main question - is the game worth the candle? I think so, and here's why:

Firstly, if you take care of efficient heat dissipation, then the risk of damaging the processor will be almost minimal.

Secondly, you don’t have to focus on reducing the lifespan of the device due to the fact that it will become obsolete before it has used up at least half of its service life.

In general, the choice remains yours, and if you said a firm “YES,” then read on.

How to overclock a processor using a program on Android phone or tablet

When starting overclocking, it would not hurt to evaluate your capabilities, because all actions will be performed at your own risk and fear, and incorrect steps can damage the device, so it is important to consider the following:

  • For safety reasons, the frequency increase should be carried out smoothly, keeping the indicators under control using various tests, otherwise, if the initially set value is too high, the battery charge will be quickly consumed and, accordingly, heat dissipation will increase, which will lead to overheating of the processor.
  • It makes no sense to overclock processors with a frequency of 1 GHz or higher, especially if they are dual-core.

Important! The procedure is available only for devices with “Superuser” (ROOT) rights, and if they are absent, then before starting the overclocking operation.

Also, by going to the “Settings” section on your device, find the “Security” item, open and check the “Unknown sources” box, which will make it possible to download programs not only from the Play Store:

Another point that needs to be highlighted. The fact is that each device has its own custom kernel, which is necessary to overclock the processor, and if your smartphone does not have it, then it will need to be flashed.

Now you can move on to the actual overclocking. To change processor parameters, you need to use one of the special programs.

Antutu CPU Master

good app which suggests testing free version, before moving on to the paid one, although there is no particular need for this step - a budget option provides everything required functions. In addition, which is very important, the program has a built-in benchmark - a program that tests the performance of the operating system.

In the main window, opposite the “Scaling” position, click the “Ondemand” button, where in the menu that appears, set the desired mode. For an inexperienced overclocker, it is better to set it to “interactive”, which will allow the system to operate at the minimum frequency most of the time, and only request overclocking of the processor when necessary. This way, you can significantly save battery power and receive more power only at the right time. Advanced users can choose "Scheduler". After that, press the key opposite the “Set on boot” position (install at boot).

Working with the program is extremely simple: the “Max” slider, when moving to the right, will set maximum value clock frequency, which will be relevant for obtaining best performance in games, and moving the “Min” slider to the left will lower the frequency, if you want to reduce battery consumption while performing simple tasks (scrolling through menus, desktops, etc.).

Let me once again emphasize that the frequency can be increased by no more than 20-25 percent, i.e. from 1.2 GHz there is no need to jump above 1.5 GHz.

After the manipulations have been performed, reboot the smartphone, then it will resume its operation with the saved settings.

CPU tuner

CPU tuner - great program for experiments, which, if configured correctly, can show amazing results. In addition to profiles and regulators, the application can use triggers, which allow for fairly flexible frequency settings indicating the conditions under which one or another profile should be used. The overclocking process itself is quite simple, and it is not worth describing it separately, since it is practically no different from the actions in Antutu Cpu Master described above.


By default, if a custom core with overclocking capability is used, only the maximum frequency is set, and all other settings are set in the following sequence: “Settings”, then “System”, then “Allowed CPU frequences (and, in Khz, it must be separated by a space).

The program has the ability to customize all profiles, starting wireless interfaces, and ending with the frequency and operation of triggers. CPU tuner will work in background, regardless of the selected profile, in a way that is convenient for you. Requires a tiny amount random access memory and is careful about energy consumption. Video

Many smartphone owners are interested in what the processor in the phone is and what its functionality. By analogy with personal computer,The microchip is the heart of a mobile device. However, it is used together with other components (graphics accelerator, etc.) to form a system that functions as a command center. The absolute leader among developers of microprocessor architectures is ARM Limited. The vast majority of manufacturers, such as NVidia, Apple and others, use ARM technology in the manufacture of chips.

Different versions of architectures for the processor in the phone.

Architecture is one of the the most important characteristics microprocessors. Thanks to technological progress, the functionality of smartphones is constantly expanding. Modernization of devices requires newer versions of the “filling”, which allow optimizing their operation. For example, increase productivity, reduce energy costs, etc. However, along with the advantages, newer processors have some disadvantages. Thus, devices based on ARMv6 turned out to be incompatible with some applications, in particular, games developed for ARMv7. This is not the only evidence that the difference between different versions one architecture can be the same as between completely different architectures.

What determine the main parameters of the processor in the phone?

The second most important characteristic after architecture is the kernel. The technical parameters of each smartphone usually indicate a dual- or quad-core processor. The kernel determines the following parameters of the device: 1. Performance. For three-dimensional games, applications for processing video and multimedia files, 4 cores are required. Sometimes communicators use an additional 5th core to perform simple tasks such as saving battery power with high performance. Generally, large quantity kernels not so much expand the functionality of the system as increase the speed of task execution. The process is optimized by distributing the load between elements. 2. Energy consumption. To reduce energy consumption, cores that are not used during operation are automatically turned off. 3. Clock frequency shows how many clock cycles the microprocessor performs per time interval (second). Unit of measurement – ​​GHz, MHz. The clock frequency is proportional to the speed of the device, as well as the value of power consumption. In order to reduce energy costs, manufacturers set limits on PM. To ensure high performance with low power consumption, it is recommended to purchase communicators based on 4-core processors. However, in order to prevent the device from overheating, it is necessary to install the latest versions of applications.

Additional characteristics of mobile processors.

One of the important parameters that gadget sellers rarely remember is the amount of cache memory. The larger the virtual storage capacity, the higher the speed of task completion. The difference between cache volumes can be seen by comparing a device from an official manufacturer and its replica. With the same parameters, a branded gadget will work faster than a copy. Reducing the amount of cache memory allows you to reduce the market cost of the product. However, such a chip may well satisfy the needs of the average user.

Many owners of Android devices on various forums and websites often come across mention of something incomprehensible, which is called the kernel, or in English kernel. It can be changed and it is mentioned in the device settings menu, in the “About tablet (phone)” section.

If you dig deeper, you will find that the kernel is part of the operating system, and not only Android has it, but also other operating systems: Windows, iOS, MacOS and others. But we will be interested Android kernel, and I will try to explain what it is at the level of novice users.

You probably know that any operating system, including Android, is, by and large, a set of programs that manage the operation of the entire device and are responsible for launching user applications such as games, file managers, web browsers and others.

And the Android kernel is practically the most important part of the operating system, which is responsible for the interaction between all the hardware and software part systems. The kernel consists of a set of drivers for all the equipment in the device and a subsystem for managing memory, networking, security, and other basic functions of the operating system.
For example, when you touch the screen to launch an application, the driver touchpad screen determines the location where the click occurred and reports the coordinates to other programs, which again, using the kernel, will find it in the device’s memory the right application and launch it. This is, of course, a very simplified model, but it reflects the essence of the operating system.

Thus, we found out that when any software needs the tablet or phone hardware to do something, it turns to the operating system kernel to do it.

The kernel controls absolutely all equipment: Wi-Fi, Bluetooth, GPS, memory and other devices. The “heart” of the device – its processor – is no exception. The core can control its frequency and power supply.
Operating core Android systems, borrowed by its developers, Google, from the Linux operating system.


Since the kernel controls all the hardware, and the hardware of all tablets and phones is different, the basic Android kernel is modified by the manufacturer for each device separately.

Like firmware, kernels can be stock (factory) and custom - alternative, created by independent developers.

Why do we need custom kernels? The stock core is maximally optimized by the manufacturer for specific device, but it usually blocks such important kernel functions as, for example, controlling the processor frequency. And if you need to overclock the processor of your tablet, you will need to change the kernel to a custom one, in which the processor frequency control function is unlocked.

In addition, custom kernels are usually based on more recent Linux versions cores. Here is an approximate list of features that custom kernels give us:

  • Change the processor frequency within a wide range;
  • Overclocking the graphics subsystem (GPU);
  • Reducing the processor frequency and voltage, which allows for longer battery life;
  • More recent and high-quality drivers, for example, speeding up GPS or adding new functions;
  • Wide range of options for customizing and configuring sound and screen colors;
  • Support for alternative file systems(XFS, ReiserFS and others).

Since alternative kernels are created by independent developers, there is no guarantee that your tablet or phone will work without problems after installing a custom kernel. Therefore, before flashing a new kernel, it is advisable to do a complete backup copy systems.

How often do we hear this question when the next newest smartphone or a tablet enters the market. Why such productivity if there is nothing to occupy it with, and yet another built-in glamorous and crooked shell still slows down? After all, the phone should call and send SMS... well, play music, and the rest is all useless numbers.

We should start with the fact that if the cost of such a smartphone were small and affordable for most, there would be fewer questions. Moreover, if it were possible to insert such a processor, memory and screen into your favorite dialer without changing the phone itself, the majority would be completely silent.

But the question is actually as old as herself mobile connection. After all, four years ago it sounded like “why do we need an iPhone?”, seven years ago like “why do we need a smartphone or a communicator,” and quite a long time ago some conservative users lamented the advisability of polyphony, a color screen, mobile Internet and other chips.

I don't want to answer this question. And this article will not provide an answer for such people. Let them continue to enjoy their cheap (or expensive luxury) phone and not interfere with their lives. Rather, this is an attempt to systematize those scenarios for using a modern universal smartphone that you can think of, which I have personally encountered and regularly use.

To talk more fully about most of the crazy capabilities of a modern smartphone, I will help you with the still relevant Samsung Galaxy R. It just happened to be at hand. It may be almost a year old, but it has two cores and 1.3 gigahertz.

Should the phone ring?

Did you think that I would start, like many other geeks, talking about games, unconverted videos and other joys that a modern smartphone provides? It will come to that. But a telephone, first of all, must be able to make calls, and a smartphone is smart phone, and that means you have to call smartly.

Many are simply convinced that an ordinary, simple phone, such as Nokia 3310 or similar, can make calls. But I think it can’t... Let’s start with where the phone numbers we all call now come from? Right! From the phone book! Phone books of modern smartphones are most often synchronized with some account on the Internet (for example, with Google services in the case of Android). You can store multiple numbers and other information on one contact, such as Facebook account, Twitter, Skype and other services. It is very convenient if you want to have access to your phone book from anywhere in the world and, when purchasing a new smartphone, synchronize with it in one moment.

Now let’s think about where the numbers will appear in a simple dialer? This phone most likely will not be able to synchronize with a Google account. And you will have to enter the numbers manually. Someone will say that you can transfer them via a SIM card, but in the best case there will be up to 1000 numbers (the latest samples) and one per contact. The SIM card is only suitable for very important numbers and nothing more. You can also look up the numbers on your smartphone and dial them on the dialer. Some people do just that - their smartphone acts as an organizer. But that's not the point anyway.

If the phone book example is somewhat unclear, remember that modern cellular networks provide somewhat advanced functionality. Let's take, for example, video communication in 3G networks. Not the most popular service on the market, but it is in moderate demand among those who like to see the face of their interlocutor (especially parents who want to see their children).

Let's remember another aspect - SIP and VOIP or, in other words, Internet telephone. The same Skype applies to this. We call anywhere in the world at VOIP operator rates. Well, maybe we pay for 3G traffic if we can’t find Wi-Fi. Some not-so-simple dialers can also make calls via Internet phones, but not all of them and not always of good quality. Smartphone win again.

But if this doesn’t convince you, then feel free to put the Nokia 3310 in your pocket and go about your business. And then a bell rings on a noisy, busy street... But you can’t really talk. You can’t hear anything and you have to shout into the microphone yourself. No tricks help to improve the situation. And a man walks next to him and calmly speaks on a modern “shovel”, without experiencing any special problems. This is because this “shovel” has a second microphone on top for noise reduction.

This does not completely resolve the noise situation, but it gets better by a factor of twenty. So, feel free to send a simple dialer to the dustbin of history and forget it like a bad dream. It successfully leaked its main function to a smartphone in 2012.

Player?

An ordinary telephone, as we have already found out, cannot make calls in 2012, since tasks have changed and technology has grown. What about the music? As you know, the audio path of modern smartphones (the vast majority) is not much different from what was installed in phones many years ago. Moreover, as a result of the disappearance of buttons, switching tracks on the fly is inconvenient compared to a keyboard phone.

Is it really parity? But no! You can switch songs using a button on the headset, and shortcomings in the audio path are easily corrected with third-party enhancements and alternative players. And one of these players requires just a gigahertz, or better multi-core processor. We're talking about Neutron Music Player.

It’s hard to judge how professional the sound becomes, but no one can argue that the sound becomes really cool. And if the smartphone is equipped with a processor that supports NEON technology, then there is a special version of the player that reveals it to its fullest! It's just not worth listening to ordinary MP3s. You can immediately hear the flaws of this format. It is better to use higher quality OGG, AAC or WMA formats or immediately Lossless, such as FLAC, ALAC, Ape and others.

And again, a simple dialer with a player lost out to the smartphone in sound quality. And this is not even remembering that there is Internet radio and music stores directly on smartphones.

Why do you need a big screen?

One of the most tired complaints about modern smartphones is about screen size. Well, how can you even walk with this shovel and how can you put it in your pocket? It's terribly inconvenient!

Apparently, such people simply did not have the opportunity to put such a smartphone in their pocket to make sure that there was no problem. To be fair, I note that some people manage to carry 7" tablets in their pockets. But jokes aside! There is no problem, and the example is Samsung Galaxy Note showed that huge screens are in demand on the market. But why is it still needed?

This screen is simply made for video. So as not to convert two hundred times. Modern kernels and gigahertz allow the video not to be converted and played back without any slowdowns at all. Let us modestly remain silent about the bug in Nvidia Tegra 2 processors regarding the MKV format. This is a topic for a separate article. And besides, this bug has been fixed in Tegra 3. In addition, I am not a fan of watching videos on smartphones.

But everyone will agree that browsing the Internet, reading texts, creating and editing documents is convenient on a large screen. And it’s not for nothing that I said about creating and editing. If the screen sensitivity is good, then all that remains is to choose a convenient on-screen keyboard - and easy replacement notebook ready.

I was surprised myself when I tried to type on the screen of the same Galaxy R. It’s really convenient, but I still prefer a mechanical qwerty keyboard. But for short and not very short notes, modern smartphones are suitable. This would not have been possible without big screen and powerful hardware that provides the performance of a comfortable keyboard.

Shall we play?

It's time to talk about games on modern smartphones. It is games that Nvidia motivates to buy smartphones with Tegra 2 and 3 processors.

Nowadays there are a lot of games on Android. Starting from casual games such as Angry Birds, Fruit Ninja and Doodle Jump, to serious and beautiful game projects, such as Gangstar Rio: City of Saints and Need for Speed: Hot Pursuit. I was also surprised by a not new, but beautiful game based on the movie “Avatar”. I can’t believe that the game is not new and somewhat outdated.

I'm glad lately that full-fledged games ported from PC, which we played ten or more years ago, have begun to appear. Max Payne and GTA 3 for mobile platforms have been on the front pages of mobile game ratings for months now.

Someone will rightly note that playing such serious games on a smartphone screen is very inconvenient. And in general, for portable games there is PSP or PS Vita. Lastly, I’ll say that I’m not a hardcore gamer, and therefore I don’t need a separate device for games, and I’ve played around with them. And I agree with the first ones somewhere. But again, most games are comfortable to play if the screen is large and sensitive. It's more difficult with ported ones, but it's nice to play GTA 3. But Max Payne requires connecting a keyboard, mouse, or at least a joystick. But more on that below.

USB-host

Perhaps the craziest feature of any modern smartphone! Connect any USB devices to the device if there are drivers for it. And it’s simply amazing to me that many people cannot imagine use cases where they might need to connect to a smartphone via a USB flash drive adapter and other peripherals. I had a case where USB-host came to the rescue. That day I forgot my flash drive at home, and I really needed to pick up several important documents from a friend. I only had my smartphone with me. But after connecting it with a cable to his not new laptop, not only did the Internet disappear due to the fact that the USB modem was turned off, but the smartphone also did not want to be detected. My device turned out to be too powerful for this computer. But I remembered that I had a USB adapter with me -micro USB. A friend simply recorded the documents on his flash drive, and then I took them from there directly to my phone. As funny as it may seem, USB-host came to the rescue at that moment.

But if connecting a flash drive, keyboard or mouse to a smartphone doesn’t surprise anyone now, then how about connecting another smartphone? On this score, the majority of even knowledgeable people will say that it is unrealistic, since it is too powerful device, and the device does not recognize it. And indeed it is so. But I remembered that I have a cable from an external hard drive, to which you can connect external power and Chinese battery with solar battery. And strangely enough, my two smartphones were connected within 30 seconds - and the Galaxy R saw their files on the memory card!

The last picture brings up some interesting thoughts. Available on Android special program, which allows you to write software for it directly on a smartphone or tablet (andJide). Unfortunately, you can only debug on the device itself, which can lead to constant reboots, if I programmed something wrong. But if an ADB driver is written for Android itself, then it will be possible to connect other smartphones via USB host and debug them. And if such a use case is far-fetched for a smartphone, then for a tablet with a keyboard it is quite realistic.

The next case for smartphones is, by and large, not relevant. But for tablets and mini-tablets without a 3G module it’s very natural. But the modem needs to be switched to “modem only” mode. And you can use 3G Internet via a modem. Most often, no special settings are required. For smartphones, it may be relevant if there is a SIM card inside with expensive Internet, and in the modem - with a cheap one. But as far as I know, no one really wants to do this.

I constantly hear the statement that even in the most modern smartphones, even the most megapixel cameras are still worse than a separate professional camera. But everyone, of course, will agree that this very camera can become full of memory when the computer is far away and the shooting is not yet finished. And USB-host will cope with this problem too.

This is a real use case that photographers from all over the world have been using for two years now. Only most often the camera is connected to a tablet, on which you can edit the photo and send it via e-mail or upload to the cloud. But this does not change the essence.

Emulation

Another crazy functionality of modern smartphones, where all the cores and gigahertz are used to their full potential! Since there are few games or applications of our own, we should look for a way to launch what has already been created for various systems and devices in the past. These old programs and games are getting a second wind on the smartphone screen.

The best thing, as you might guess, is to learn how to emulate the game consoles of the past. And if the emulation of NES (Dendy), Sega Mega Drive, Super Ninetendo does not surprise anyone, then how do you like the emulation of Play Station 1 and Ninetendo 64?

Okay, PS 1 could be successfully emulated on Windows Mobile communicators. But there was rarely a capacitive one there touch screen, and the emulation speed was far from ideal. By the way, as you can see, you can connect a joystick for emulation via the notorious USB-host for a more convenient game. But in the photographs such a joystick is connected as an example. In fact, special joysticks have been invented for smartphones, into which the device is inserted from above. It's convenient to play even on the go. By the way, even a Sega Dreamcast emulator is being developed for Android, the alpha version of which can already be found on the Internet. It’s a pity that this emulator refused to work on the Galaxy R due to Tegra 2. But at this rate, we can already dream about emulating Play Station 2.

But emulation on Android is not limited to consoles alone. Ever since the days of Windows Mobile, emulator programs for Dos systems and even a full-fledged X86 computer have come to us. Even on those weak, by today's standards, communicators, we managed to run Windows 95 and Windows XP. But with all the cores and gigahertz in 2012, this is now available without much difficulty yourself to the average user. For BochS programs, there are ready-made builds with Windows 95, which runs at acceptable speed on modern smartphones.

You can even install software inside these systems. I tried installing Matlab 6. Not very fast, but it can work. But Windows XP is still installed for fun, since even now “Start” opens in a minute, if not more.

At one point I regretted that I did not have the most modern quad-core processor, such as the Samsung Galaxy S3. When I launched the full-fledged third “Heroes” inside Windows 95.

Need I say that the game was so slow that it was impossible to play? Even this old laptop from 1997 can play the same game at full speed. And the 2012 smartphone barely hobbles like a dead nag. To be fair, it is worth noting that even 4 cores will not help here, since you need to finish the emulator itself or the game build for an acceptable speed. But after the first and second “Heroes” on Windows Mobile in the same emulation, this is a clear breakthrough. By the way, on Android there is a ported free VCMI engine that allows you to run the third “Heroes” at normal speed.

Also on Android devices you can run full-fledged Linux without emulation, like a native system. All these manipulations require Root is right and the topic is so vast that it requires separate material. So more on that another time.

Conclusion

I have not considered all the cases that show the advantages of modern smartphones over simple dialers, and not all the scenarios that can be used to load the powerful multi-core hardware of a smartphone. I just wanted to show that the statement that all these gigahertz cores are not needed, there is nothing to occupy them, and the phone should only ring, is somewhat unfounded. Modern smartphones perform any functions, even the simplest ones, better and more efficiently than simple dialers. And they can do much more.