How can we find that this processor supports the amount of memory?

I just started programming in Assembly language, and in the first lecture, our teacher told us about Intel 8080 and Intel 8085, and he said that there was 64 kilobyte memory with this processor.

Now I want to know how we find this amount of memory with a specific processor, for example, I have a 1.8 GHz processor, now I can find out the amount of memory that can be used with this processor.

what am I trying to ask, tell me how can we find out this amount of memory?

+4
source share
5 answers

It depends on how many bits of (physical) addressing the CPU supports. The number of bits of the address is usually <= the number of bits in the address register, for example

8085/Z80 - 16 bit address registers - 16 bit addressing - 64 kB address space 68008 - 32 bit address registers - 20 bit addressing - 1 MB address space 68000 - 32 bit address registers - 24 bit addressing - 16 MB address space 68020 - 32 bit address registers - 32 bit addressing - 4 GB address space 

Note that many 64-bit CPUs usually support something like a 40-bit address space, i.e. 1 TB.

+6
source

Typically, processors are designed so that a single integer register can store the address of any memory cell. Therefore, the "maximum amount of memory" is determined by the number of bits of the register (or processor). 32 bits are 4 GB. 64 bits equal 16 exabytes of RAM.

+1
source

It depends on the architecture, but the processor will be limited by the number of addresses. With the old 32-bit Pentium Pro processor, 36 address lines were supported, so the processor could support up to 64 GB. A newer processor, such as the i7-860, which is a 64-bit processor, also only supports 36 physical addresses and therefore is also limited to 64 GB. The amount of physical address space can be found using the CPUID command code, other processors can use different methods or require reading a data table. It seems that you are learning x86, so the CPUID is what you want if your processor supports it.

+1
source

What do you indicate when referring to the "memory" of virtual memory or physical? In the case of virtual memory, this is 4 GB for 32-bit processors, although you may not use all of them, since the OS uses part of it. Also pay attention to PAE (physical address extension) for your CPU and if the OS works with the PAE kernel. This will give you more than 4 GB of physical memory to install and use, but the virtual address space is still 4 GB. Please see:

http://en.wikipedia.org/wiki/Physical_Address_Extension

http://msdn.microsoft.com/en-us/library/aa366796 (v = vs .85) .aspx

http://msdn.microsoft.com/en-us/windows/hardware/gg487503

+1
source

Well, it depends on some variables.

For example, an 8-bit processor has values ​​up to 255, which are calculated using 2 to eighth power and subtracting the value per unit. This number is 255, how many bytes the processor can process, and RAM cannot exceed this amount.

Now, let a little set up (no pun intended). The 16-processor has values ​​up to 65535, and this was again clarified by taking 2 to sixteenth power, and then subtracted by one (I'm sure you will now get a big picture). This means that we can have 65535 bytes of RAM or 65.535 kilobytes. Hope this starts to make sense.

A 32-bit processor has values ​​up to 4,294,967,295 (these numbers are getting quite large). This is 4,294,967,295 bytes, or 4.294967295 gigabytes of RAM. This technology began to be widely used in the 90s, and it remains popular today.

But, of course, we all know how technologies change rapidly and often, so yes, there are also 64-bit computers, as well as 32-bit technologies. Today it is the most common type of processor. Thus, they can support the values ​​of 18,446,744,073,709,551,615. Yes, and that is also how many bytes it can hold, which equals 18.446744073709551615 exabytes.

And although there are currently no processors that can hold this amount, there are also 128-bit processors. They can contain up to 340 282 366 920 938 463 463 374 607 431 768 211 455 bytes of data, which is also equal to 340.282366920938463463374607431768211455 ... um ... well, some measurements of bytes, which, as it turned out, are larger than yottabytes, and As far as I know, there are no units from the byte dimension. But hey, it just tells you that a 128-bit processor can work a lot, and we can see them in the distant future. The reason people say that 128-bit, 64-bit, 32-bit, 16-bit or 8-bit is because it is much easier than trying to remember all those big numbers that each of them represents .

So, I hope this helps. I am not sure if 8-bit is correct, because I know that NES has 2 kilobytes of RAM, which is more than 255 bytes, but I know that everything else is true. If this is not the case, you can also do research on your behalf;).

0
source

Source: https://habr.com/ru/post/1304641/


All Articles