What is processor bit depth and how to determine it? What is the bitness of the operating system? x86 and x64 How to find out how many bits a processor has.

Many on our site are wondering what bit size (bit) Windows should be installed on a computer, 32 or 64 bit? In this article we will clarify the situation with the choice of 32 or 64 bit systems.

First, let's figure out what the bit depth (bit depth) of an architecture is.

The terms 32-bit and 64-bit refer to the way a computer's processor (CPU) processes information. The 64-bit version of Windows handles large amounts of random access memory (RAM) more efficiently than a 32-bit system. Wikipedia has 2 pages about 32 (x86) and 64 bit architecture:

  • 32 (x86) - a processor architecture with the same instruction set, first implemented in Intel processors.

    The name is derived from the two numbers that ended the names of early Intel processors - 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). During its existence, the set of commands has constantly expanded, maintaining compatibility with previous generations.

    In addition to Intel, the architecture was also implemented in processors from other manufacturers: AMD, VIA, Transmeta, IDT, etc. Currently, there is another name for the 32-bit version of the architecture - IA-32 (Intel Architecture - 32).

  • 64 - 64-bit extension, instruction set, for the x86 architecture, developed by AMD, allowing programs to run in 64-bit mode.

    It is an extension of the x86 architecture with almost complete backward compatibility. Microsoft and Oracle use the term "x64" to refer to this instruction set, but the file directory for the architecture in Microsoft Windows distributions is called "amd64" (cf. "i386" for the x86 architecture).

    The x86-64 instruction set is currently supported:

  1. AMD - Z-series processors (for example, AMD Z-03), C-series (for example, AMD C-60), G-series (for example, AMD T56N), E-series (for example, AMD E-450), E1 , E2, A4, A6, A8, A10, FX, Athlon 64, Athlon 64 FX, Athlon 64 X2, Athlon II, Phenom, Phenom II, Turion 64, Turion 64 X2, Turion II, Opteron, FX, latest Sempron models;
  2. Intel (with minor simplifications) called "Intel 64" (previously known as "EM64T" and "IA-32e") in late Pentium 4 processors, as well as Pentium D, Pentium Extreme Edition, Celeron D, Celeron G-series , Celeron B-series, Pentium Dual-Core, Pentium T-series, Pentium P-series, Pentium G-series, Pentium B-series, Core 2 Duo, Core 2 Quad, Core 2 Extreme, Core i3, Core i5, Core i7, Atom (not all) and Xeon;
  3. VIA - Nano, Eden, QuadCore processors.

Yes, all this is difficult to understand. I’ll explain in my own words, the 64-bit OS architecture is an improved 32 (86) bit architecture. It has newer instruction sets for calculations and can also handle larger amounts of RAM. If we take the Windows OS family, then a 32-bit OS can actually handle only 3.2 gigabytes of RAM, and 64 theoretically up to 4 terabytes. What does this tell us?

What to choose: 32 or 64?

About the fact that it is advisable to install the OS based on the amount of RAM. For example, if you have 3GB of RAM or less, it is better for you to install a 32-bit system, and if you have more than 3GB, it is better to install a 64-bit system. But don't forget about what processor you have. In our service, we have long noticed that if the processor has a low frequency (from 1 to 2.4 GHz), then on a 64-bit OS the computer runs slowly, even if it has 4 or more GB of RAM installed. According to our service, it is better to install 32-bit systems and no more than 4GB of RAM on such computers. In addition, large manufacturers of laptops with low-frequency processors also install 32-bit systems from the factory, even with 4GB of memory. Installing the 64-bit version of Windows requires a processor that can run 64-bit Windows. The benefits of using a 64-bit operating system are especially evident when working with large amounts of random access memory (RAM), such as 4 GB or more. In such cases, a 64-bit operating system handles large amounts of memory more efficiently than a 32-bit system. A 64-bit operating system works faster when running multiple programs at the same time and switching between them frequently. In any case, what to install is up to you, and we will answer your questions below.

How can I tell if my computer has 32-bit or 64-bit Windows?

To use Windows or determine which version of Windows your computer is running (32-bit or 64-bit), follow these steps.

    Open the System component. To do this, click the Start button, right-click Computer, and select Properties. In Windows 8, open Control Panel and go to System.

    In the System section, you can view the system type.

If your computer is running Windows XP, follow these steps:

    Click the Start button.

    • If the window that appears does not say “x64 Edition,” your computer is running a 32-bit version of Windows XP.

      If "x64 Edition" is listed under System, your computer is running a 64-bit version of Windows XP.

How can I determine if my computer can run a 64-bit version of Windows?

For a computer to run a 64-bit version of Windows, it must have a 64-bit processor. To find out if your processor supports 64-bit computing in Windows, follow these steps:

  1. In search type MSINFO, or
  2. Open the Performance Counters and Tools section. To do this, click the Start button and select the Control Panel component (in 8 we immediately go to the Control Panel). In the search box, type Performance Counters and Tools, and then select Performance Counters and Tools from the list of results.

    Perform one of the following actions.

    • In Windows, select the Show and print detailed information about your computer and system performance.

    In the System section, you can see what type of operating system you are using (under System Type) and whether you can use a 64-bit version of Windows (under 64-bit support). (If your computer is already running a 64-bit version of Windows, the 64-bit support section does not appear.)

To determine whether a computer running Windows XP can run the 64-bit version of Windows, follow these steps:

    Click the Start button.

    Right-click My Computer and select Properties.

    • If the System section says "x64 Edition", the processor supports running a 64-bit version of Windows.

      If there is no "x64 Edition" label, the processor may also be compatible with 64-bit versions of Windows. To pinpoint this possibility, download and run the free Windows 7 Upgrade Advisor from Windows 7 migration advisor.

Can I upgrade from 32-bit Windows to 64-bit Windows, or move from 64-bit Windows to 32-bit Windows?

If you want to upgrade from a 32-bit version of Windows to a 64-bit version of Windows, or vice versa, you should back up your files and choose to install Windows completely. Then you need to restore files and reinstall programs.

Notes

    To install the 64-bit version of Windows on a computer running 32-bit Windows, you will need to boot the computer using the 64-bit Windows installation disc or files.

    If the computer that boots with the 64-bit version of Windows installation disc or files does not support that version of Windows, you will receive a Windows Boot Manager error message. Instead, you will need to use the installation disc or files from the 32-bit version of Windows.

    Windows Easy Transfer does not move files from 64-bit Windows to 32-bit Windows. If you are using a 64-bit version of Windows XP, you will need to manually transfer the files to external media.

Can I run 32-bit programs and drivers on a 64-bit computer?

Most programs designed for 32-bit versions of Windows will also run on 64-bit versions of Windows. Some antiviruses are exceptions.

Device drivers designed for 32-bit versions of Windows do not work on computers running 64-bit versions of Windows. If you try to install a printer or other device with a 32-bit driver, it will not work correctly on a 64-bit version of Windows.

Can I run 64-bit programs and drivers on a 32-bit computer?

If a program is specifically designed to run on 64-bit Windows, it will not run on 32-bit Windows. (However, most programs designed for 32-bit versions of Windows also work on 64-bit versions of Windows.)

Device drivers designed for 64-bit versions of Windows do not work on computers running 32-bit versions of Windows.

Do I need 64-bit device drivers when running 64-bit Windows?

Yes. All devices require 64-bit drivers to run on 64-bit Windows. Drivers designed for 32-bit versions of Windows do not work on computers running 64-bit versions of Windows.

What are the disadvantages of 64 bit Windows?

  • Stutters when there is a small amount of RAM.
  • It is difficult to find drivers for old devices, for example, printers, scanners, TV tuners, etc.
  • Some older programs and games do not work on 64-bit architecture.
  • Some older Windows, such as Windows 7 Starter, cannot run on a 64-bit system.

Well, that’s all we wanted to tell you in this article, we hope you make the right choice! If you need good computer tips, click on the link and learn more about your computer.

If we missed something in the article, write to us in the comments and we will add it. Also, if the material was useful to you don't skimp on likes!

The bit capacity of a processor is a certain number of processes processed per unit of time. There are x32 (x86) and x64 bit processors and operating systems. Knowledge of the processor bit capacity is necessary for correct installation of programs and the amount of supported RAM.

As of 2015, outdated computers are those with a x32 processor. Such PCs handle a maximum of 4 GB of RAM. The slots on the motherboard will not accept RAM strips with a volume exceeding this figure. The operating system must also be 32-bit. New generation processors have x64 bits. They process data much faster, support processors from 2 cores and “read” RAM from 4 GB to 32 GB. Windows must also be 64-bit. You can check the bitness of your computer through Properties. To do this, double-click on the “My Computer” icon on your desktop. Next, click the “System Properties” button. The “System Type” value displays the bitness of the operating system, and it is equal to the bitness of the central processor. In versions of Windows 8, 8.1, this value simultaneously indicates both parameters: both the OS and the CPU.


Another simple and effective method of checking is to look at the number of “Program Files” folders. To do this, go to “My Computer”, open “Local Disk (C:)”. Pay attention to the “Program Files” folders. If you have one, it means the computer has a x32 CPU capacity. If there are two, one of them is “Program Files (x86)”, then the CPU is x64.


You can check the number of processor cores and its bit depth using the Task Manager. Call it using the key combination Ctrl+Alt+Delete, or by right-clicking on the Taskbar and selecting “Start task manager”.


The Windows Task Manager window opens. Go to the “Performance” tab. If your processor is 64-bit, you will see two CPU windows with different diagrams, as in the screenshot. If there is only one window, then the processor is 32-bit.


And the last way to accurately check the computer’s bit capacity without additional programs is Device Manager. We open it as follows: press the “Start” key, click the “Control Panel” tab. In the window that appears, click the “Hardware and Sound” category. In the “Devices and Printers” tab, click on “Device Manager”. A yellow and blue shield is drawn next to this text.


An additional program window has opened. Open the “Computer” item and the “Processors” item. We read the meaning in the subparagraphs. My computer has x64 capacity and two processor cores, as shown in the screenshot. If your computer is 32-bit, there will be one processor and, naturally, a different computer model. In addition to this data, in Device Manager you can view information about each PC part, installed driver and hardware. To view information using the program, use the CPU-Z application.


Now you know what the bit capacity of the central processor is and its importance. And check it easily in any way.

In most cases, users think about the bitness of the operating system and processor only when they start to.

Then two questions arise. Firstly, what operating system is installed, 32 or 64 bit. And secondly, is it possible to install a 64-bit system, does the processor support it?

We will try to answer these questions in this material. Here we will talk about how to find out what system is currently installed and whether the processor supports installing a 64-bit system.

System and processor capacity in Windows 8 or Windows 10

If you are using Windows 8 or, then in order to find out whether the processor supports a 64-bit system, as well as what system is currently installed on your computer, you do not need any additional software. All the necessary information can be obtained through the tools built into Windows.

To do this, simply open the “View information about your computer” window. There are different ways to open this window. For example, if there is a computer icon on your desktop, then you can simply right-click on it and select “Properties” from the menu that opens. Or you can open the “Control Panel” and go to the “System and Security - System” section. Well, the easiest way to open the “View information about your computer” window is the Windows-Pause/Break key combination.

After you open the “View information about your computer” window, you need to pay attention to the “System type” line; it will indicate the bitness of the operating system and the bitness of the processor.

For example, if you have a 64-bit system and a 64-bit processor, then it will look like the screenshot below.

If you have a 32-bit system installed, but a 64-bit processor, then it will look like this.

If the processor is listed as 64-bit, it means that it supports 64-bit systems and you can install it if necessary.

System and processor capacity in Windows 7 and XP

If you are using Windows 7 or Windows XP, then the method described above will not give you all the information. For example, Windows 7 also has a “View information about your computer” window and it opens just like in Windows 8 or Windows 10 (through Computer Properties, through Control Panel, or through the Windows-Pause/Break key combination). But in Windows 7, this window only contains information about the system bit depth; there is no information about the processor bit depth.

In Windows XP, you can also open a window with information about your computer, where it is called “System Properties”. To open it, you need to right-click on the “My Computer” icon and select “Properties” or press the Windows-Pause/Break key combination. In Windows XP, in the System Properties window, the system bit depth will only be indicated if you are using 64-bit Windows XP.

If Windows XP is 32-bit, then there will be no mention of bit depth.

18. 07.2018

Blog of Dmitry Vassiyarov.

Processor capacity - let's dig into the essence

Hello my dear readers, and I continue our series of conversations dedicated to the heart of any computer. Today the subject of discussion will be the processor bit capacity. Perhaps some of you did not pay attention to this indicator, and even successfully used the computer without this information. But since you have decided to increase the level of your knowledge, then let’s figure out what it is and what it affects.

In order to get as close as possible to understanding the process, I consider it necessary to recall some concepts.

Information in the processor is presented in digital form, which in turn looks like a series of pulses with a certain sequence of signals (there is voltage - “1”, no voltage - “0”). One pulse is a bit of information.

The signals arrive at the transistors of the logic circuits of the crystal at a certain clock frequency. If the chip reads each bit separately, it will be very long and inconvenient. It is much easier to process one or more symbols in one clock cycle, representing very specific information.

To make it more convenient for the processor to operate with data, it has special registers for recording the amount of information processed by the CPU in one. Each of them contains a set of 4, 8, 16, 32 or 64 code characters, called a “machine word”.

I will try to describe this process in simple words and a clear analogy. It's like teaching a child to read who has just started learning the alphabet. The letters are long and incomprehensible, but the syllables are simpler. Moreover, first the baby is offered words specially divided into one- or two-letter syllables. And when he masters this skill, he can read something more complex, adding the syllables of three or four letters.

Likewise, engineers have been improving microprocessors for years, continuing to "train" them to read longer "machine words." But for use in technical documentation, such a term is not the best option.

Therefore, the value indicating the size of a block of information processed in one clock cycle was called the processor bit capacity. This parameter, like the “word”, is measured in bits.

Processor bit progress

The very first serial chip was the 4-bit Intel 4004, intended exclusively for calculators. Using a combination of 4 zeros or ones, 2^4=16 characters could be encoded. And this was enough for 10 numbers and 6 signs of basic arithmetic operations.

It was not for nothing that I gave an example with a calculation to show that in reality, for efficient operation of the CPU in computers, a large bit capacity is required. After all, even 8-bit processors have significant limitations.

Therefore, chipmakers have been actively working not only on quartz crystal processing technology, but also on microarchitecture, which is a system of interaction between individual processor components and processed data.

As a result, in 1978, the first 16-bit processor 8086 appeared, running on x86, which turned out to be very successful because it had enormous potential for constant improvement and refinement.

Its third generation made it possible in 1985 to create the 32-bit Intel 80386 processor, already running on the IA-32 architecture.

Progress does not stand still

Since the beginning of its existence, the x86 system itself has regularly received all kinds of extensions that added new features. But the need for this was constant: the volume of data processed and the size of the files used were constantly growing. And 32-bit processors were no longer powerless in solving complex problems (a block larger than 4 GB could no longer fit into the CPU register).

Intel tried to create a new IA-64 architecture with backward compatibility, but its speed was unsatisfactory.

Their direct competitors, AMD, have achieved greater success in solving this problem. They followed the proven path. And in 2003, they introduced a new extension for 32-bit architecture, calling it AMD64.

The solution implemented in the Opteron, Athlon 64 and Turion 64 processors turned out to be so successful that Intel acquired a license for a set of control instructions. Based on this, they have already created their own product: the EM64T architecture. Which is currently used in all of their processors.

Such innovations not only made it possible to speed up the operation of the processor itself. But they also made it possible to use the memory bus to move files of almost unlimited size.

Knowing that a 64-bit processor is a more advanced solution, you will probably want to find out whether the CPU installed on your computer is one. I'll tell you where to look for this information.

In the latest versions of Windows, this can be done by opening the system settings where the OS and processor bit depth is indicated, which may differ. If your computer is not too ancient, then most likely you will see that the CPU on it is modern. It is also convenient to use a small program for this purpose CPU-Z, which will provide a lot of detailed information on the processor (including the designation of control instructions).

What is affected by the bit depth of the OS and processor?

And here many people often have a question: “My processor is 64-bit, but the operating system on my computer is 32-bit. What happens, I’m not effectively using the capabilities of my computer’s hardware?” I won’t answer you definitely. Yes it is...

Here are the nuances of a 32-bit OS:

  • Most popular programs and applications for PCs are offered for installation (download) either in two versions or are universal. And they work successfully on systems with any capacity. Even Windows is offered for installation in 32 or 64 bit form. Why are both options still popular? More on this later;
  • Such an OS does not see RAM larger than 4 GB. But there are obvious advantages in the 32-bit system: it processes information in smaller portions. This means that less time will be spent reading and transmitting one machine word. This allows you to work with memory more efficiently. And also with simple applications and small files;

A 64-bit system is an excellent option for games, video processing and other intensive programs. But for her it is better to have RAM with a reserve. Why? Yes, because it consumes more resources. After all, the efficiency of using its space with such an operating system may be lower than that of a 32-bit one;

Now that you have determined your OS preferences, let's return to the processor bit size. If it is 32-bit, then only the corresponding system can be installed. If you have a 64-bit CPU, you can install any version of the operating system. But don't forget about the amount of RAM.

This concludes our acquaintance with the processor bit capacity. I hope you will now be able to show off your knowledge on this topic even in a conversation with specialists.

See you on the new pages of my blog and good luck to everyone.

The purpose of this article is an attempt to sow doubt in the head of the reader, who is confident that he knows everything or almost everything about bit depth. But doubt should be constructive in order to motivate one's own research and improve understanding.

The term “bit capacity” is often used when describing computing devices and systems, meaning the number of bits that are simultaneously stored, processed, or transmitted to another device. But specifically in relation to central processing units (CPUs), as the most complex representatives of computing hardware, which cannot be divided into individual parts (until someone figured out how to sell separately a cache or a multiplier inside a chip), the concept of bit capacity turns out to be very vague . A speculative example will help demonstrate this.

Imagine that we are in the blessed 80s, there are (still) dozens of CPU manufacturers in the world, and you are working in one of them on the next generation. There are no 256-bit SSE8, built-in GPUs and 5-channel memory controllers in the world yet, but you already have a ready-made 16-bit processor (more precisely, “16-bit” is written in the technical documentation), in which 16 bits are everywhere and in everything - from all external buses to the architectural size of the processed data. A real example of such a CPU would be the first single-package (though not single-chip) CPUs for the DEC PDP-11 architecture. And now comes the management’s task - to develop a new, backward-compatible generation of the same CPU, which will be 32-bit - without specifying what is meant by the latter. It is this understanding that needs to be clarified first. So, our main question is: what exactly needs to be doubled in terms of bit capacity in our still completely 16-bit CPU so that the resulting processor can be called 32-bit? To make it easier to solve the problem, we will use two approaches: systematize the definitions and look at examples. Systematize

The first thing that comes to mind is the bit depth of what exactly to count? Let us turn to the definition of any information system: its three main functions are processing, storage and input/output of data, for which the processor(s), memory and peripherals are responsible, respectively. Considering that a complex hierarchically self-similar system consists of many components, it can be argued that this division of functions is preserved at the component level. For example, the same processor mainly processes data, but it is also required to store it (for which it has a relatively small memory) and exchange it with other components (for this there are different buses and their controllers). Therefore, we will functionally separate the bit depths of processing, storing and exchanging information.

I would venture to suggest that all manufacturers of any programmable hardware, especially processors, are 90% trying not for end users, but for programmers. Therefore, from the manufacturers' point of view, the processor must execute the right commands in the right way. On the other hand, details of the crystal structure (topological, electrical and physical parameters of individual transistors, gates, logic elements and blocks) can be hidden not only from the user, but also from the programmer. It turns out that the bit depth must be distinguished by implementation - physical and architectural.

It should be added that programmers are also different: most write application programs in high-level languages ​​using compilers (which makes the code to some extent platform-independent), some write drivers and OS components (which forces them to be more careful about taking into account the real capabilities of the hardware), there are creators using assembler (which obviously requires knowledge of the target processor), and some write compilers and assemblers themselves (similarly). Therefore, by programmers we will further understand precisely those for whom the details of hardware implementation are important, if not for writing a program in general, then at least for optimizing its speed - the “architectural” bit capacity of something will refer specifically to programming in the native machine language of the processor or more a convenient assembler, without getting into the inside of the CPU (these are questions of microarchitecture, which we called physical implementation for greater distinction). The described nuances still affect all programmers, because... High-level languages ​​are almost always translated into machine code by compilers, and compilers also have to be written by someone. Exceptions in the form of interpreted languages ​​also do not stand aside - the interpreters themselves are also created with the help of compilers.

It remains to consider the bit depth of what information we are interested in. What generally consumes and generates the CPU in the information sense? Commands, data, addresses and signal and control codes. We are not talking about the latter - their bit depth is strictly fixed in a specific hardware implementation and in most cases is not programmatically controllable. It’s a little more difficult with commands - in the RISC family of architectures, for example, the width of any memory access must be equal to the physical width of the processor data bus, incl. and when reading code (except for some relaxations in modern ARM and PowerPC). This is good for the CPU - there are no problems with unaligned access, all instructions have the same, or variable, but simply calculated length. But it’s bad for the programmer - RISC is a truncated set of instructions, which also take up more space than with more compact coding (the same algorithm requires more instructions, but the same number of instructions requires more bytes). Therefore, it was the CISC paradigm that won the greatest approach with its diversity and the variable length of commands, which is not equal to the bit capacity of something. Of course, all modern CPUs are true RISC internally, but that's only physical, not architectural. There are only two types of information left - data and addresses. Let's look at them. Let's collect them

We have three criteria for types of bit capacity: functional (processing, storage and exchange), implementation (physical and architectural) and typical (data and addresses). In total there are already 12 types of this incomprehensible thing. Let's assume that for each combination of criteria for our source CPU we answer “16-bit” (both the physical data processing capacity, and the architectural address storage, and all the rest). Now let’s see which of these questions must necessarily give the answer “32-bit” in order for the resulting processor to turn out exactly like that.

Let's start with the architectural part. Does a CPU have to store data and addresses in a logical 32-bit format to be called 32-bit? Regarding data, obviously, yes, but regarding addresses it is not so simple. Almost all 8-bit (according to data) CPUs have the ability to store 16-bit addresses in register pairs (otherwise they would not see the 16-bit addressing common on these platforms), but this does not make them called 16-bit. Maybe if the CPU can store 32-bit data, but only 16-bit addresses, it can already be called 32-bit?..

To similar questions about architectural calculations over 32-bit data and addresses, as well as software 32-bit data exchange with software 32-bit addressing, the answer may be the same - with data it is necessary, but with addresses it is not a fact.

Let's move on to physical implementation. Should the CPU store data and addresses in a physically 32-bit format? It turns out that this is not necessary, because... for 32-bit operands, registers can be paired, which has been successfully used by 8-bit CPUs, starting with the i8080. And Zilog’s 16-bit Z8000 could even quadruple registers, obtaining a 64-bit argument (for data only). This is not as effective because... The total amount of data that fits in the register file will not increase, but this was not required. But it is always possible to access both the higher and lower half of the virtual 32-bit register - a stone in the garden of the IA-32 and MC68k architectures, where you can only access the lower half (in IA-32 - also with a prefix, which slows down execution ).

Let's move on. Should the CPU process data and addresses in 32-bit physical chunks? It turns out, and this is not required, operands can be processed in halves in 16-bit size functional devices. It is worth remembering the Motorola MC68000 processor, used in the first Macintoshes, Amigas, Ataris and other popular machines - it was considered 32-bit, it has 32-bit registers, but there is not a single 32-bit FU (it appeared only in the 68020). But there are as many as three 16-bit ALUs, two of which can be paired when performing a 32-bit operation. The i8080 and Z80 had 8-bit ALUs that performed 16-bit operations to compute an address sequentially over its bytes. Later, this story repeated itself with the SSE set and its 128-bit operands, which were initially processed on 64-bit FUs.

Finally, the exchange: does the processor need to physically receive and transmit data in 32-bit chunks with 32-bit addressing? Almost all CPU manufacturers answered the first question by releasing chips with half the bus width: 8 bits for the 16-bit i8088, 16 bits for the 32-bit MC68000/010 and i80386SX/EX/CX, and even 8 bits for the 32-bit MC68008 . The physical width of the address bus is much more fun. Let's start with the fact that for multi-byte data buses (i.e., starting from 16-bit), physical memory addressing can occur by words or bytes. In the first case, the word address is always supplied to the address bus, and the data bus reads or writes the required part of it - from a single byte to the entire word. To indicate the access bit depth, a separate byte-mask bus can be used (in the x86 architecture, this technique began to be used since the i386 - one bit for each byte of the data bus), or a combination of control signals with the low-order bits of the address bus, which are not needed in this mode (for On a 32-bit data bus, the word address is completely divisible by 4, and therefore the lowest 2 bits of the address bus are always zero) - this was the case before the release of the i386. The case of byte addressing is only possible with dynamic adjustment of the bus width and, of the well-known CPUs, it was used only in the MC68020/030. As a result, today word addressing is used together with a byte mask, so the physical width of the address bus is less than its logical width by a number of bits, one less than the data bus width in bytes. From which it follows that a 32-bit physical address bus can only exist with an 8-bit data bus, which no architect or engineer in their right mind would do for obvious reasons.

But that is not all. Why do we need 32-bit physical or logical addressing at all? Mid-to-late 80s, megabit memory chips had just appeared on the market; the typical amount of memory for a PC is still measured in hundreds of kilobytes, but a little later - in megabytes. And 32-bit addressing will allow you to access 4 GB of physical RAM! Who might even need this in the next 20 years in personal computers?! It is not surprising that the first popular "32-bit" CPUs did not have 32 bits of logical address bus width at all: the MC68000 had 24 (23 physical + 1 for bit management), and the MC68008 had 20. Intel 386SX (released 3 years later than the original completely 32-bit i80386), in addition to halving the data bus, also reduced the address bus to 24 (23 physical) bits, and its embedded versions 386EX/CX had a 26-bit bus. Moreover, the first chipsets that made it possible to operate with 32-bit addresses appeared only in the 90s, and the first motherboards that had a sufficient number of memory slots to accommodate >4 GB of modules of the maximum size at that time appeared only in the 2000s. Although the first CPUs with a 64-bit physical address bus (IBM/Motorola PowerPC 620) appeared already in 1994. We conclude

So, physically nothing in the processor needs to be made 32-bit at all. It is enough just to architecturally convince the programmer that the CPU performs 32-bit operations with one instruction. And although, in the absence of full-fledged internal resources, it will inevitably be decoded into microcode chains to manage 16-bit physical pieces of information and hardware units - this is no longer of concern to the programmer. So, is it enough to rewrite the firmware, remake the decoder and control circuit, and now our 16-bit processor immediately becomes 32-bit?

As you know, any good idea can be taken to the point of absurdity, and then it discredits itself. Increasing the CPU bit capacity is no exception. At this point, the architect should immediately ask the question - why all this? Increasing the data bit depth is good for speeding up work with them (often you need to process values ​​that do not fit into 16 bits), and addresses - to be able to operate with large amounts of data (64 KB limit for 16-bit addressing, somehow weakened by the IA segment model -16, constrained programmers already in the mid-80s). You can, of course, do page addressing with software-switchable banks (8-bit CPUs could address 1 MB on popular cheap PCs and game consoles), but at the cost of complicating programs and slowing down memory access. Likewise - does it make sense to make the data 32-bit such that it hardly speeds up performance compared to processing 32-bit numbers on a 16-bit platform under program control rather than microcode? This way we will only simplify programming, saving on the number of commands, but will not get a jump in speed. From which we come to the conclusion that the increase in bit depth must be implemented in such a way that it actually leads to a qualitative (more memory) and quantitative (faster operation) leap in the architecture's capabilities. “More memory” here refers specifically to qualitative development, because many algorithms and applications will generally refuse to work if there is insufficient RAM, while even a slow processor will still execute the program sooner or later. Disk-swapped virtual memory is meaningless in anything less than a 32-bit implementation.

But does all this mean that as many of the resources, both hardware and architectural, in a CPU must be 32-bit in order for it to be called a full-fledged 32-bit processor? Not at all. Let's take the same MC68000 - it has a 32-bit architecture for data and addresses and 32-bit registers, but 16-bit ALUs and an external data bus and 24-bit physical external addressing. However, the insufficient “32-bit” does not prevent it from overtaking the “16-bit” 80286, which appeared 3 years later: on the Dhrystones MC68000 benchmark, popular in the 1980s, at 8 MHz it scores 2100 “parrots”, and 286 at 10 MHz - 1900 (also 16-bit i8088 at 4.77 MHz - 300).

But all this will not help us answer the question - what is the processor bit capacity? At the moment when we had already come to a certain conclusion, a new hero appears on the scene - the data type. All of the above related only to integer calculations and their arguments. But there are also real ones. In addition, for now we are operating with scalar quantities, but there are also vector ones. But, according to rumors, Intel intends to build a real coprocessor directly inside its new 80486 (let me remind you: in our yard, roughly speaking, it’s the 80s). Taking into account the fact that the internal physical and architectural representation of data (does not work with FPU addresses) is 80-bit - how then can we call the “four” a “32/80-bit” processor? Let's go back to the present - what do you call a Pentium MMX that took 64 bits off each 80-bit scalar real register and called them an integer vector register? What about the Pentum Pro/II with a 256-bit data bus between the L2 cache and the core? (Even earlier, the MIPS R4000 and its variants had an internal L2 controller with an external 128-bit bus up to the cache itself.) What about the Pentium III with its 128-bit XMM registers, although each such vector can currently only store 32-bit components? and be processed only in pairs in 64-bit FUs, but not in quadruples? How should we perceive the vector addressing commands such as Scatter and Gather that are currently being prepared for new architectures (in particular, Intel Larrabee), where parts of the vector register are perceived as addresses, not data, and therefore addressing can also be considered xxx-bit?

The modern debate about the transition from a 32-bit to a 64-bit platform repeats this story with additions that add even more salt to an already varied dish. First of all, if you look at the rate of doubling of the bit capacity (no matter what is meant by it) of single-chip CPUs, it turns out that the transition from the first 4-bit to the first 32-bit occurred in just 8 years - from 1971 (i4004) to 1979 g. (MC68000 and much less known NS32016). The next doubling to 64 bits took 10 years - the i860 had a 32-bit integer scalar ALU and 32-bit general purpose registers with pairing, but a 64-bit FPU and integer vector FU, 64-bit external buses and, for the first time, an internal 128-bit bus kernel cache. In the meantime, 64 bits have reached the PC - another 15 years have passed, although 64-bit memory access (via the same 64-bit data bus, but for a “32-bit” processor) appeared already in the first Pentiums in 1993. But the matter The problem is that for integer scalar calculations, the two main types of operands - data and addresses - were still only sufficient to be 32-bit. About the redundancy of 32-bit addressing for the 80-90s. has already been said, but the strict need for 64-bit integer calculations, in contrast to 32-bit ones, has also not arisen until now, and is not visible even now. For integer numbers, the range from –2 10 9 to 2 10 9 or from 0 to 4 10 9 covers the vast majority of needs, and rare moments of 64-bit are completely satisfied by the old-fashioned method - operations on parts of operands with carry, which is not so much slower and available from the first moments of the appearance of 32-bit architectures. Additional piquancy is added by the fact that 64-bit arithmetic over integers in the x86 architecture appeared even before AMD64 and EM64T, and it’s vector arithmetic - starting with the SSE2 set (2001), there are paddq and psubq commands for adding and subtracting 64-bit integers components, and 32-bit multiplication instructions for any architecture produce a 64-bit number (division instructions, accordingly, accept it; similarly for many 16-bit platforms, including IA-16).

Bit sizes of some PC processors

CriterionBit depth
Functionalprocessingstorageexchange
Implementationphysicalarchitecturalphysicalarchitecturalphysicalarchitectural
Typical (D: data; A: addresses)DADADADADADA
i8080/85, Z808 8 8-16 16 8 8 8-16 16 8 16 8-16 16
Z800016 16 8-64 16 16 16 8-64 16 8-16 23 8-64 23
MC68000/010 (MC68008)16 16 8-32 32 32 32 8-32 32 8-16 (8) 24 (20) 8-32 32
MC68020/03032 32 8-32 32 32 32 8-32 32 8-32 32 8-32 32
i8086/186* (i8088/188*)16 16 8-16 16 16 16 8-16 16 8-16 (8) 20 8-16 20
i8028616 16 8-16 16 16 16 8-16 16 8-16 24 8-16 24
i80386DX32 32 8-32 32 32 32 8-32 32 8-32 32 8-32 32
i80386SX (EX/CX)32 32 8-32 32 32 32 8-32 32 8-16 24 (26) 8-32 32
i86032/64|64 32 8-64/64|64 32 32/64/32 32 8-64/64/64 32 64 64 8-64 64
i8048632/80 32 8-32/80 32 32/80 32 8-32/80 32 32 32 8-80 32
Pentium, K5 (Pentium Pro)32/80 32 8-32/80 32 32/80 32 8-32/80 32 64 32 (36) 8-80 32 (51)
Pentium MMX (Pentium II)32/80|64 32 8-32/80|64 32 32/80|64 32 8-32/80|64 32 64 32 (36) 8-80 32 (51)
K6 (K6-2)32/80| 64(/64) 32 8-32/80| 64(/64) 32 32/80| 64(/64) 32 8-32/80| 64(/64) 32 64 32 8-80 32
Athlon32/80| 64/64 32 8-32/80| 64/64 32 32/80| 64/64 32 8-32/80| 64/64 32 64 36 8-80 51
Athlon XP32/80| 64/64 32 8-32/80| 64/32-128 32 32/80|64/128 32 8-32/80| 64/128 32 64 36 8-128 51
Pentium III (Pentium 4/M, Core)32/80| 64/64 32 8-32/80| 64(+128)/32-128 32 32/80| 64(+128)/128 32 8-32/80| 64(+128)/128 32 64 36 8-128 51
Pentium 4 D/EE (Athlon 64*)64/80| 64/64 64 8-64/80|64 + 128/32-128 64 64/80|64 + 128/128 64 8-64/80|64 + 128/128 64 64(+16) 40 8-128 52
Atom32-64/80| 64/64-128 64 8-64/80|64 + 128/32-128 64 64/80|64 + 128/128 64 8-64/80|64 + 128/128 64 64 36 8-128 51
Core 2 (i7*)64/80| 128/128 64 8-64/80|64 + 128/32-128 64 64/80|64 + 128/128 64 8-64/80|64 + 128/128 64 64 (192+16) 40 8-128 52
Athlon II*, Phenom (II)*64/80| 128/128 64 8-64/80|64 + 128/32-128 64 64/80|64 + 128/128 64 8-64/80|64 + 128/128 64 128+16 40 (48) 8-128 52

* - Multiplexed data and address bus (for a CPU with an integrated memory controller - interprocessor only)
“A/B|C/D” - the bit capacity of a scalar integer / real is indicated for the data | vector integer / real domains
“X+Y” - has domains of this type of two bits
“X-Y” - depending on the command or FU, it accepts all intermediate values ​​with an integer power of two

If you have read this far, then the stated goal of the article has most likely already been achieved, and the Ideal Final Accurate Determination of bit depth has not been found. Maybe it doesn’t exist at all, and that’s even good. After all, if a computer is the main tool for working with information, then every IT technology is a method of improving computer performance. Bit depth in itself will not give anything in isolation from the rest of the arsenal of high information technologies. PDAs/communicators, mobile phones, netbooks, media players and other pocket electronics, as well as a huge number of built-in controllers and on-board computers work great, increasing their popularity even without any 64-bit capabilities. So why then switch to larger bits? Why, for example, does no one need 64-bit yet in Intel Atom for netbooks, where 8 GB of memory is not only not needed by anyone, but also in a couple of hours they will squeeze the battery dry, and scientific or economic calculations (where 64 whole bit) no one will launch it? One possible answer is “because we can.” An additional couple of million transistors to double the remaining 32-bit blocks will be a drop in the ocean of gates already spent on everything else on the same chip. The galloping progress of microelectronics as the main locomotive of IT has made the integrated transistor so cheap that now the “64 bit” nameplate, which is delicious for any marketer, will cost the consumer ten extra cents, providing not just a sham, but a very real acceleration of 10-50% in 1-5%. applications. And if a small sheepskin costs almost nothing, why not?