Default [INFO] 2/23 || s800 CPU bin || "How stable is YOUR chip?"

A few users in the kernel asked about this subject. So I'm going to answer some questions, and provide some information and understanding here about what a "cpu bin" means (/d/acpuclk/pvs_bin) and more importantly, what it means to us as users.

I'll go ahead and snip my response from the kernel thread to get things rolling here so we can get a basic idea of it, and have an analogy to put into physicality of how this can be compared to something less "mysterious" for the every day guy wanting to understand.


Quote:
Your CPU bin is the result of your device's inspection and test criteria at the Qualcomm factory. Basically a high bin CPU like a 5 or 6 is a very well made chip and very stable with very little imperfections in the manufacturing process. What this means for a HIGH bin is that the chip requires less voltage to operate at any frequency than, say, a bin 1. This is why you see some people having reboot issues when trying to under volt - their processor becomes unstable with less juice because of less accurate tolerances.

Think of it as friction. If you have a well oiled arm on a machine, and part of that arm's job is to force it's way through an opening repeatedly, and the tolerances on the arm and the opening are just slightly off... Well, for that "more out of tolerance" one to do the same amount of work as one that's parts were machined perfectly, it would require more force, because there is more friction inherently from a less accurate build process. Think of the machine as the CPU, the force required behind the arm being moved to carry out the work as the voltage required in your chip, and the tolerance of the parts as the same - just a different types of parts because of course, it is an analogy.

A higher CPU bin is, generally speaking, a more stable chip. Bus frequency, RAM speed, GPU speeds... Everything is directly related, in terms of stability and capable clock rate, to the chip's bin (or quality of build).

Here is an interesting article that most people will find shocking. Look at the difference is clock rates of low and high binned chips:

http://www.androidbeat.com/2013/09/d.../#.Uwdf2p_TnqA

Note the example of the HTC One and Galaxy S4. It is obvious that Qualcomm sold their higher end chips to Samsung, while HTC was given the less quality chips. Same chip. Same theoretical clock rate. However, the chips in the HTC One are different in 1 aspect - their build quality, and therefore, their capable clock rate and their stable clock rate.
And of course the end of that article reallllyy sums up the bottom line here for those of us who like to overclock:

Quote:
So, you mean to say I should avoid any Android device that uses a Snapdragon S800 SoC running at 2.2GHz, and not 2.3GHz? No! The S800 is the fastest SoC available from Qualcomm, and the slight difference in performance between the different bins should not affect your final decision at all. The S800 is more than future-proof so donít worry about the slight difference in clock speed.

However, if you are a benchmark junkie or love to overclock your device, better get an Android device that uses the higher binned S800.
It is important to note, that while there is a slight difference in performance (of course at stock speeds) there is a huge difference in stability when you start adding non-calculated variables when the processor was given it's bin number.... over clocking... and under volting - both common things that are added into a device's operation after rooting and installing a new kernel.

A small tid bit of information to think about:
A bin 6 runs the stock MAX frequency with only 950 MV...
A bin 0 runs the stock MAX frequency with 1100 MV...


150mv difference! You can see the example of my "machine analogy" can't you? Less is required, to do the same amount of work.

SO, what does all of this mean anyways? Well, to sum it all up, it simply means that you should be aware of your device's capabilities. KNOW YOUR BIN!

With a file explorer, navigate to:
Code:
Select Code
/d/acpuclk/pvs_bin

And if you are running 4.4.2 KitKat:
Code:
Select Code
/sys/devices/system/soc/soc0/soc_pvs
There will be a number there 0 - 6

If you are an overclock junkie, higher the number the better.

A lower number like a 0 or 1 will simply mean that you will not be able to get away with as much overclocking and under volting. You kind of just are what you are. If you are a 0 or 1, or even a 2 and you are overclocking and under volting your device and having reboots... well, luck of the draw. Your chip just needs that extra juice to operate, it is a physically binding attribute. Set, and test. Set, and test. Find out where your device is comfortable and what it can handle and accept it.

There is a lot more information that I will add later - specifically about how the different bins are more or less power friendly.

I hope this sheds some light for those who want to understand this.


For those of you wanting to know the guts (as a result of, again, PMs) Keep reading...


BREAKING IT DOWN - A Tale of Two Snapdragons
The test methods involved in "binning" chips. What I am about to explain is what, quite honestly, few people know. This is because the process of testing goes on behind closed doors at Qualcomm, but is common practice in manufacturing anything mechanical or electronic. Quality Control is why you have these "binned" CPUs. It is basically the result of a set of tests run on the chip to examine extremes in variation of fabrication of the chips. No chip, or manufactured part for that matter, is exactly the same as the next, simply because of manufacturing variables that cause the manufactured design to have slight variations or even defects. The silicon of the chip being exposed to undesirable or slightly out of "tolerance" environmental temperatures, for example, could have an effect on the quality of the end product. It is a very controlled process, and the "process corner" as it is called or design of experiments, it a process used to test, evaluate, and graph the uncontrolled moments of that particular part's manufacturing journey.

All of this translates to robustness of a design. After Qualcomm builds the processor, they want to know how this device will perform under different extreme conditions! Simple logic! If I build something, I want to know how it will handle stress, right? But I don't want to damage the ones I have already built. What they do is replicate these possible manufacturing defects in something called "corner lots". Corner lots have had manufacturing process parameters adjusted according to these extremes. They will then test the devices made from these special "test wafers". Typically, for CPUs, and I know at Qualcomm, they will run voltage tests, clock frequency, temperature.

For voltage, for example, the idea there is to push the device to it's maximum and minimum capability at various clock frequencies, to determine it's stability threshold. Any of you other Engineers out there of the electrical type (I am Mechanical, however) have heard a "shmoo plot" which is basically these test functions graphed as hard data. Based on how the chip performs, it is given a number. A well made chip has less manufacturing variation, obviously, and passes the tests with flying colors, shows very desirable characterization traits during the test method, and is given a bin 6 - just as an example. Another chip does ok, is a little less stable overall than the previous, but is still acceptable based upon the design and engineering criteria, and is given a 0 - barely passing the characterization "test".

So back to the beginning. What is CPU binning? What does the number mean?

Well, based up the pvs tables in the source code, it is obvious that the bin 6's are the ones with less VFP (variation of fabrication parameters) because they require less voltage, and at the same time are clocked higher in the GPU, CPU, and RAM and bus. Less force is required to get the job done. A bin 6 would be comparable to the car you bought that finally took a dump a 300k miles while the other one of similar make, model and year died at 200k. Variation in manufacturing. It applies to everything in industry, not just cars and machined parts made of steel. That is what the tests are designed to do. That is why your voltage tables from one device to the next will vary slightly. That is why one person can run this kernel, and this person can't and why one person can under volt their device 35mv while you cannot.

That is what your cpu "bin" represents people. Simply the physical results of some tests done by some engineers to determine your particular processor's compliance to tolerances as it was being built.