Memory addresses are a fixed number of digits, being an unsigned integer.Usually, memory addresses are expressed in hexadecimal basis for easy reading.For example, a memory address in a 32-bit processor could be in binary 1011 0111 1011 1010 1100 0011 1100 0111 , which in hexadecimal would be B7BAC3C7.
In most modern computers each memory address points to a single storage byte (the byte is the minimum unit of memory that can be accessed), what is called byte addressing.Some microprocessors are designed for word addressing, in these cases the minimum storage units are larger than one byte.
An absolute memory address (explained ita or specifies), indicates precisely the location in memory without the use of any intermediate reference.
In English: memory address.
Types of memory addresses: physical address and address logical or virtual
Both physical memory and virtual memory use addressing or memory addresses to access your data.
In physical memory, the memory address allows access to the real RAM (that is, the RAM chips inserted into the motherboard), and the virtual memory address refers to a hard disk space that simulates RAM (the so-called page file in some operating systems or virtual memory).
For more information see: logical memory and virtual memory address.
Memory resolution units: historical and current
Most modern computers are addressable by byte, as stated above, that means that each address will identify a byte (8 bits) d and storage.Data that is too large to be stored in a single byte will reside in multiple bytes, occupying a consecutive sequence of addresses.
There are addressable computers per word, where the minimum address unit is the word processor, for example, on Data General Nova minicomputers (launched in 1969) or Texas Instruments TMS9900 computers (from 1976) used 16-bit words.There were also 36-bit mainframe computers that used 18-bit word addressing, such as for example the PDP-10 (developed between 1966 and 1982), giving an address space of 2 ^ 18 words of 36 bits, approximately 1 MB of storage.
The efficiency of memory addressing depends on the size bus bit used for addresses: the more bits used, the more addresses are available for the computer, for example, an 8-bit byte addressing machine with a dir bus 20-bit selections (example: Intel 8086) can address 2 ^ 20 (1,048,576) memory locations (1 MB of memory).While a 32-bit bus (example: Intel 80386) addresses 2 ^ 32 (4,294).967.296) locations (equivalent to a 4 GB address space).
In contrast, a 36-bit word routing machine with an 18-bit address bus addresses only 2 ^ 18 ( 262,144) 36-bit locations (9,437,184 bits), equivalent to 1,179,648 8-bit bytes, or 1152 KB or 1,125 MB (more than 8086).
Some older computers (decimal computers ) were addressable to decimal digits.For example, IBM 1620 computers from 1959.
Word length versus address length
Word length is a characteristic given to a given architecture The number of digits that the CPU can process at a time.Modern processors, including embedded systems, usually have a palm size open 8, 16, 24, 32 or 64 bits; most general purpose computers (PCs) currently use 32 or 64 bits.Other sizes have also been included in past computers such as 8, 9, 10, 12, 18, 24, 36, 39, 40, 48, and 60 bits.
Often, when we refer to word length on modern computers, we are also describing the size of the address space on that computer.For example, a computer that says "32 bits" also usually allows addresses of 32 bit memory; a 32-bit addressable byte computer can address 2 ^ 32=4,294,967,296 bytes of memory (or 4 GB).This allows a memory address to be efficiently stored in a word.
Anyway This is not always true:
Computers can have memory addresses larger or smaller than their word length.For example, many 8-bit processors, such as the 1975 MOS Technology 6502, support addresses 16-bit, otherwise, would have been limited to just 256 bytes of memory addressing.
Intel 8088 and Intel 8086 16-bit processors support 20-bit addressing via segmentation, allowing them access to 1 MB instead of 64 KB of memory.All Intel Pentium processors from the Pentium Pro include PAE (Physical Address Extensions or Physical Address Extension) that supports mapping 36-bit physical addresses to 32-bit virtual addresses.
In theory, the modern 6 computers 4 byte addressing bits can address 2 ^ 64 bytes (16 exabytes), but in practice the amount of memory is limited by the CPU, memory controller or printed circuit design (for example, number of physical connectors of memory).
Content of each memory location
Each memory location in a stored computer program stores a binary number or a decimal number of some kind.Its interpretation, as data of some type of data or as an instruction and its use will be determined by the instructions that receive and manipulate them.
The first programmers combined instructions and data in words as a way to save memory, when it was really expensive : the old Manchester Mark 1 computer (from 1948) had a space in its words of 40 bits to store a few bits of data (its processor ignored a small section of bits right in the middle of a word) and this small section was used a lot s times as additional data storage.
Self-replicating programs (such as computer viruses) treat themselves as data and sometimes as instructions.The self-coding code (also called mutant code) is mostly in currently unused, since its evaluation and maintenance is disproportionately difficult to simply save a few bytes; It can also give incorrect and unexpected results due to the assumptions of the compiler or processor about the state of the machine; even so it is still deliberately used with great care.
Address space in application programming
In the modern multitasking environment, an application process so In general, it has in its address space (or spaces) pieces of memory of the following types:
-Machine code, which includes: the program code itself (historically known as the code segment) and shared libraries.
-Data, which includes: initialized data (data segment); uninitialized (but assigned) variables; call stack; heap; shared memory and memory-mapped file.
Some parts of the address space may not be mapped at all.
Addressing schemes
A computer program can access a certain address given explicitly (in low-level programming it is usually called absolute address or specific address, and in high-level languages ​​it is known as the type of pointer data).But a program can also use relative addresses that specify a location in relation to something else (the base address).There are many more modes of indirect addressing.
Mapping logical addresses to physical or virtual memory also adds several levels of indirectness.
Doubts? needs more information?
Write and we will respond to your email
Comments
Post a Comment