I study computer architecture from books Tannenbaum and Harris .
And still I do not understand many seemingly simple things. There are many questions, but almost all of them are somehow connected with the machine word. This is the most incomprehensible topic for me.
I want to make a reservation that I understand that there is a direct connection between the processor's digit capacity, the digit capacity of registers, the size of the addressable memory and the speed of the computer. I do not understand why.
- How the processor’s starkiness affects its speed. It seems like 64-bit faster than 32-bit. But why? I do not understand. I will give an example: Command system for MIPS-32 processors. There, after all, the architecture of the commands itself is such that all commands are cleared to 32 bits. That is, if you make 64 bits, the high 32 bits will just have to be filled with zeros. And what, the processor will be from this faster?
From Wikipedia:
processor capacity (computer word width). A machine word is a machine-dependent and platform-dependent value, measured in bits or bytes (tritta or trayta), equal to the digit capacity of registers.
Why does the machine word have to be equal to the digit capacity of the registers? Why can't we read data 64 bits at a time with 16-bit registers, for example?
Now about the memory. Again from Wikipedia:
A 64-bit register is capable of storing one of 264 = 18,446,744,073,709,551,616 values. A processor with 64-bit memory addressing can directly access 16 DL memory.
I understand that the amount of memory depends on the address of the number of bits in the address. But then again, how is this related to registers? I see only one connection: if we are going to store addresses in registers, then the registers must have the same bitness as the addresses. But is it necessary to store addresses in registers?
- About the bitness of the OS, I seem to understand, but I would like to clarify. As I understand it, the OS is connected with all of this like this: a 64-bit OS runs on a 64-bit processor, a 32-bit OS runs on a 32-bit processor. That is, with the advent of the 64-bit processor, the appearance of the 64-bit OS was inevitable. Do I understand this correctly?
And here the question is rather historical, but also very important for me. I always thought that a 64-bit processor appeared recently and it was presented as a big breakthrough. And on Wikipedia, this is what is written:
Requirements for the accuracy of scientific computing have increased, and in 1974 the first machine appeared with a 64-bit word - the Cray-1 supercomputer
What was the difficulty in creating a 64-bit processor? And what is the difficulty to create, for example, a 128-bit processor? What does it all depend on? What is determined? Digit registers? And what is the difficulty to increase the digit capacity of registers? How is it determined?