Address space
Encyclopedia
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, an address space defines a range of discrete addresses, each of which may correspond to a network host
Node (networking)
In communication networks, a node is a connection point, either a redistribution point or a communication endpoint . The definition of a node depends on the network and protocol layer referred to...

, peripheral device, disk sector
Disk sector
In computer disk storage, a sector is a subdivision of a track on a magnetic disk or optical disc. Each sector stores a fixed amount of user data. Traditional formatting of these storage media provides space for 512 bytes or 2048 bytes of user-accessible data per sector...

, a memory cell
Memory cell
Memory cell may refer to:* Memory cell, a building block of computer data storage*Memory B cell, an antibody producing cell*Memory T cell, an infection fighting cell...

 or other logical or physical entity.

Overview

Address spaces are created by combining enough uniquely identified qualifiers to make an address unambiguous. For a person's physical address, the address space would be a combination of locations, such as a neighborhood, town, city, or country. Components of an address space may be the same but unless all are identical, the locations will be different. An example could be that there are multiple buildings at the same address of "32 Main Street" but in different towns. Or in the same town but different states.

Examples

Examples in computing include main memory, which uses memory address
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...

es for physical memory and virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

 when supported.
Memory-mapped I/O
Memory-mapped I/O
Memory-mapped I/O and port I/O are two complementary methods of performing input/output between the CPU and peripheral devices in a computer...

 can also form an address space when it is implemented. The cylinder-head-sector
Cylinder-head-sector
Cylinder-head-sector, also known as CHS, was an early method for giving addresses to each physical block of data on a hard disk drive. In the case of floppy drives, for which the same exact diskette medium can be truly low-level formatted to different capacities, this is still true.Though CHS...

 scheme can be considered an address space for disk drives.

Computer network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

 addresses form an address space depending on the network architecture.
For IP address
IP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...

es in particular, the Internet Assigned Numbers Authority
Internet Assigned Numbers Authority
The Internet Assigned Numbers Authority is the entity that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System , media types, and other Internet Protocol-related symbols and numbers...

 (IANA) allocates ranges of numbers to various registries in order to enable them to each manage their particular address space.
The Domain Name System
Domain name system
The Domain Name System is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities...

 or other network naming systems manage other forms of addresses and map them to and from names used by users.

Address translation

In general, things in one address space are physically in a different location than things in another address space. For example, "house number 101 South" on one particular southward street is completely different from any house number (not just the 101st house) on a different southward street.

However, sometimes different address spaces overlap (some physical location exists in both address spaces). When overlapping address spaces are not aligned, translation is necessary. For example, virtual-to-physical address translation is necessary to translate addresses in the virtual memory address space to addresses in physical address space — one physical address, and one or more numerically different virtual addresses, all refer to the same physical byte of RAM.

Memory models

Many programmers prefer to use a flat memory model
Flat memory model
Flat memory model or linear memory model refers to a memory addressing paradigm in low-level software design such that the CPU can directly address all of the available memory locations without having to resort to any sort of memory segmentation or paging schemes.Memory management and...

, in which there is no distinction between code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 space, data
Data (computing)
In computer science, data is information in a form suitable for use with a computer. Data is often distinguished from programs. A program is a sequence of instructions that detail a task for the computer to perform...

 space, and virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

 — in other words, numerically identical pointers refer to exactly the same byte of RAM in all three address spaces.

However, many early computers did not support a flat memory model — in particular, Harvard architecture
Harvard architecture
The Harvard architecture is a computer architecture with physically separate storage and signal pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape and data in electro-mechanical counters...

 machines force program storage to be completely separate from data storage.
Many modern DSP
Digital signal processor
A digital signal processor is a specialized microprocessor with an architecture optimized for the fast operational needs of digital signal processing.-Typical characteristics:...

s (such as the Motorola 56000
Motorola 56000
The Motorola DSP56000 is a family of digital signal processor chips produced by Motorola Semiconductor starting in the 1980s and is still being produced in more advanced models in the 2000s. The 56k series was quite popular for a time in a number of computers, including the NeXT, Atari Falcon,...

) have 3 separate storage areas — program storage, coefficient storage, and data storage. Some commonly-used instructions fetch from all three areas simultaneously —
fewer storage areas (even if there were the same total bytes of storage) would make those instructions run slower.

Memory models in x86 architecture

Early x86 computers used the segmented memory model addresses based on a combination of two numbers: a memory segment, and an offset within that segment.
Some segments were implicitly treated as code segments, dedicated for instructions, stack
Call stack
In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, control stack, run-time stack, or machine stack, and is often shortened to just "the stack"...

 segments
, or normal data
Data (computing)
In computer science, data is information in a form suitable for use with a computer. Data is often distinguished from programs. A program is a sequence of instructions that detail a task for the computer to perform...

 segments
. Although the usages were different, the segments did not have different memory protection
Memory protection
Memory protection is a way to control memory access rights on a computer, and is a part of most modern operating systems. The main purpose of memory protection is to prevent a process from accessing memory that has not been allocated to it. This prevents a bug within a process from affecting...

s reflecting this.

Now, many programmers prefer to use a flat memory model
Flat memory model
Flat memory model or linear memory model refers to a memory addressing paradigm in low-level software design such that the CPU can directly address all of the available memory locations without having to resort to any sort of memory segmentation or paging schemes.Memory management and...

, in which all segments (segment registers) are generally set to zero, and only offsets are variable.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK