征候是什么意思| 翩跹是什么意思| 梦到谈恋爱预示着什么| 闺蜜是什么样的关系| 百事可乐和可口可乐有什么区别| 脑梗吃什么最好| 做背有什么好处及作用| 胃炎吃什么中药效果好| palladium是什么牌子| 神的国和神的义指的是什么| 为什么一直口渴| 子宫内膜炎吃什么药| 狮子是什么科| 红煞是什么意思| lancome是什么牌子的| 疱疹挂什么科| 下肢血栓吃什么药| 什么工作赚钱| mi是什么单位| 什么是免疫组化检查| 湿疹是什么样的症状| 咳嗽吃什么好的快| 骆驼吃什么| 夏至喝什么汤| 肚脐上三指是什么地方| c罗全名叫什么| 属兔本命佛是什么佛| 秋葵补什么| 窦性心动过缓伴不齐是什么意思| 是什么数学符号| 景页读什么| 孕反应最早什么时候开始| 打歌是什么意思| 6月15是什么星座| 煮中药用什么锅| 孕妇贫血吃什么| 苋菜是什么菜| 藿香正气水什么牌子的好| 生粉是什么| 梦见巨蟒是什么预兆| 售后服务是做什么的| 肺部硬结灶是什么意思| 良知是什么意思| 玫琳凯属于什么档次| 8月一日是什么节日| 你想什么| 秋天有什么水果成熟| 打玻尿酸有什么副作用吗| 什么是不饱和脂肪酸| 山芋是什么| 3人死亡属于什么事故| 牙根发炎吃什么药| 女人吃什么排卵最快| 目赤什么意思| 不解之谜的意思是什么| 万年历是什么| 日斤念什么字| 夹生饭是什么意思| 什么是意识| 吃什么可以补黄体酮| 养胃吃什么好| 1994年的狗是什么命| 感冒看什么科| 农历7月21日是什么星座| 月经是黑色的是什么原因| mrv是什么检查| 不明原因发烧挂什么科| 吃什么补充维生素b6| 小孩瘦小不长肉是什么原因| 眼白有点黄是什么原因| 母仪天下什么意思| 高血压吃什么药| 前额白发是什么原因| 什么人适合喝三七粉| 高岗为什么自杀| 人中长痘痘是什么原因| 二级建造师什么时候出成绩| 玩手机头疼是什么原因| 小鼠吃什么| 吃秋葵有什么好处| 煲什么汤去湿气最好| 农历又叫什么| 蕾丝是什么意思| 屏蔽一个人意味着什么| 什么是文爱| 药材种植什么最赚钱| 吃什么补肾气| 五黄煞是什么意思| 单核细胞高是什么感染| 水瓶女喜欢什么样的男生| 吃什么清肺养肺| 什么颜色对眼睛有好处| sap是做什么的| 女人眼睛干涩吃什么药| 心气不足吃什么中成药| kap是什么意思| 幼儿贫血吃什么补血最快| 乙肝表面抗体阳性是什么意思| 做梦梦见鱼是什么意思| 7月11日是什么日子| 什么叫卒中| 蜗牛爱吃什么| 梦见丧尸是什么预兆| 心经是什么意思| 送情人什么礼物最好| 姜文和姜武是什么关系| 小酌怡情什么意思| 结婚6年是什么婚| 628是什么星座| 三险一金是什么| 排场是什么意思| 别有洞天是什么生肖| 膝盖跪着疼是什么原因| 血红蛋白浓度偏低是什么原因| 耳朵红热是什么原因| 为什么起荨麻疹| 巴基斯坦人说什么语言| 缜密是什么意思| 吃完晚饭就犯困是什么原因| 梦见蝎子是什么意思| 颈椎不舒服挂什么科| 干你什么事| 小跟班是什么意思| 双脚发热是什么原因| 牌匾是什么意思| 磨豆腐是什么意思| 男人喜欢什么姿势| 急性尿道炎吃什么药| 喉咙发炎是什么症状| 满清十大酷刑是什么| 黄疸肝炎有什么症状| 青岛是什么省| 暹什么意思| 白色糠疹是什么原因引起的| 布洛芬属于什么类药物| 双手麻是什么原因| 闭经和绝经有什么区别| 1998年出生属什么生肖| 头大是什么原因造成的| 什么是射精| 取环前需要做什么检查| 4月13日是什么星座| 泌尿系统感染挂什么科| 老人头晕吃什么药效果好| 生蚝吃多了有什么危害| 湿疹吃什么中药| 痂是什么意思| 1893年是什么年| 雌激素低有什么症状| 肠胀气是什么原因引起的怎么解决| 为什么要做包皮手术| 正月初七什么星座| 深度睡眠是什么意思| 什么是命| pa66是什么材料| 虫可念什么| mri什么意思| 血小板低是什么原因引起的| 十指连心是什么意思| 苦瓜煮水喝有什么功效| 女人大腿粗代表什么| 熊是什么意思| 开户名是什么| 肠子疼是什么原因| 倾尽所有什么意思| 怀孕喝酒会有什么反应| 什么手机像素最高| 富贵病是什么病| 不拘小节是什么意思| 昙花什么时间开花| 现在开什么实体店赚钱| 大白刁是什么鱼| 万丈深渊是什么意思| 玉米什么的什么的| 吃羊肉有什么好处| 生肖猪和什么生肖最配| 农历8月是什么星座| 小腿肚子疼是什么原因| 急性扁桃体化脓是什么原因引起的| 老花眼有什么办法可以恢复| 鹦鹉可以吃什么| 胃疼能吃什么| 女性私处长什么样| 肝火旺盛吃什么| 口粮是什么意思| os是什么| 胃消化不良吃什么药| 鮰鱼是什么鱼| 胆汁反流吃什么药| 左腿麻木是什么征兆| 火影忍者大结局是什么| 四是什么生肖| 拉肚子吃什么食物好得快| 人生得意须尽欢是什么意思| 梦见红棺材是什么征兆| 尿不尽是什么意思| 虎视眈眈是什么意思| 心脏有早搏吃什么药好| 龟头炎是什么症状| 肛门痒痒的是什么原因| 有趣是什么意思| 琀是什么意思| 四季常青财运旺是什么生肖| 什么是血小板| 霉菌感染男性什么症状| 潮汐车道什么意思| 乳腺属于什么科室| 刑警队是干什么的| 鸡属相和什么属相最配| 爱是什么词| 养肝护肝吃什么好| 颜值控是什么意思| 姓蔡的女孩起什么名字| 唇周发黑是什么原因| 河豚是什么| 188是什么意思| 男性做彩超要检查什么| 怀孕呕吐吃什么可以缓解| 用什么挠脚心最痒| 魂牵梦绕的意思是什么| 安道尔微信暗示什么| 肾结石能吃什么水果| 什么是性侵| 73年属什么生肖| 尽善尽美是什么意思| 男属鼠的和什么属相最配| 超敏crp是什么意思| 淀粉在超市里叫什么| chick是什么意思| 女人右手断掌代表什么| 孕20周做什么检查| 天蝎座什么象星座| 什么病才查凝血四项呢| 齐人之福什么意思| 突然嗜睡是什么原因造成的| 疼和痛有什么区别| 晚生是什么意思| date是什么意思| 早晨醒来口苦是什么原因| 八月十八号是什么星座| 甲状腺囊性结节是什么意思| 手指头痒是什么原因| 脑癌是什么原因引起的| esim卡是什么| 梦见蛇是什么征兆| 什么食物降胆固醇最好| 酥油是什么| 游丝是什么意思| 雷震子是什么神| 推介会是什么意思| 双侧甲状腺弥漫病变是什么意思| 丝状疣用什么药膏| 迁移是什么意思| 内衣为什么会发霉| 激素高是什么原因| 男孩学什么专业好| rv是什么品牌| 核磁共振挂什么科| 中国最贵的烟是什么烟| 口水为什么是臭的| 麻薯粉是什么粉| hot什么意思| idh是什么意思| 家里为什么会有跳蚤| 百度Jump to content

六月初六什么日子

From Wikipedia, the free encyclopedia
(Redirected from Memory location)
In a computer using virtual memory, accessing the location corresponding to a memory address may involve many levels.
百度 ”百度公司董事长李彦宏建议国家出台政策,鼓励企业打造高水平人工智能开放平台;加快研究自动驾驶运营政策,尽快明确自动驾驶汽车运营的资质要求;提高自动驾驶领域网络安全和风险防范意识;推进智能化道路基础设施规划建设,打造支持自动驾驶汽车的新型城市交通环境。

In computing, a memory address is a reference to a specific memory location in memory used by both software and hardware.[1] These addresses are fixed-length sequences of digits, typically displayed and handled as unsigned integers. This numerical representation is based on the features of CPU (such as the instruction pointer and incremental address registers). Programming language constructs often treat the memory like an array.

Types

[edit]

Physical addresses

[edit]

A digital computer's main memory consists of many memory locations, each identified by a unique physical address (a specific code). The CPU or other devices can use these codes to access the corresponding memory locations. Generally, only system software (such as the BIOS, operating systems, and specialized utility programs like memory testers) directly addresses physical memory using machine code instructions or processor registers. These instructions tell the CPU to interact with a hardware component called the memory controller. The memory controller manages access to memory using the memory bus or a system bus, or through separate control, address, and data buses, to execute the program's commands. The bus managed by the memory controller consists of multiple parallel lines, each representing a binary digit (bit).

Logical addresses

[edit]

A computer program uses memory addresses to execute machine code, and to store and retrieve data. In early computers, logical addresses (used by programs) and physical addresses (actual locations in hardware memory) were the same. However, with the introduction of virtual memory most application programs do not deal directly with physical addresses. Instead, they use logical or virtual addresses, which are translated to physical addresses by the computer's memory management unit (MMU) and the operating system's memory mapping mechanisms.

Unit of address resolution

[edit]

Most modern computers are byte-addressable. Each address identifies a single 8-bit byte (octet) of storage. Data larger than a single byte may be stored in a sequence of consecutive addresses. There exist word-addressable computers, where the minimal addressable storage unit is exactly the processor's word.[a] For example, the Data General Nova minicomputer, and the Texas Instruments TMS9900 and National Semiconductor IMP-16 microcomputers, used 16-bit words, and there are many old mainframe computers that use 36-bit word addressing (such as the IBM 7090, with 15-bit word addresses, giving an address space of 215 36-bit words, approximately 128 kilobytes of storage, and the DEC PDP-6/PDP-10, with 18-bit word addresses, giving an address space of 218 36-bit words, approximately 1 megabyte of storage), not byte addressing. The range of addressing of memory depends on the bit size of the bus used for addresses – the more bits used, the more addresses are available to the computer. For example, an 8-bit-byte-addressable machine with a 20-bit address bus (e.g. Intel 8086) can address 220 (1,048,576) memory locations, or one MiB of memory, while a 32-bit bus (e.g. Intel 80386) addresses 232 (4,294,967,296) locations, or a 4 GiB address space. In contrast, a 36-bit word-addressable machine with an 18-bit address bus addresses only 218 (262,144) 36-bit locations (9,437,184 bits), equivalent to 1,179,648 8-bit bytes, or 1152 KiB, or 1.125 MiB — slightly more than the 8086.

A small number of older machines are bit-addressable. For example, a variable filed length (VFL) instruction on the IBM 7030 Stretch specifies a bit address, a byte size of 1 to 8 and a field length.

Some older computers (decimal computers) are decimal digit-addressable. For example, each address in the IBM 1620's magnetic-core memory identified a single six bit binary-coded decimal digit, consisting of a parity bit, flag bit and four numerical bits.[2] The 1620 used 5-digit decimal addresses, so in theory the highest possible address was 99,999. In practice, the CPU supported 20,000 memory locations, and up to two optional external memory units could be added, each supporting 20,000 addresses, for a total of 60,000 (00000–59999).

Some older computers are character-addressable, with 6-bit BCD characters containing a 2-bit zone and a 4-bit digit; the characters in an address only have digit values representing 0–9. Typically some of the zone bits are part of the address and some are used for other purposes, e.g., index register, indirect address.[3]

Some older computers are decimal-word addressable, typically with 4-digit addresses.[4] In some machines the address fields also select index registers, restricting the range of possible address.[5]

Word size versus address size

[edit]

Word size is a characteristic of computer architecture denoting the number of bits that a CPU can process at one time. Modern processors, including embedded systems, usually have a word size of 8, 16, 24, 32 or 64 bits; most current general-purpose computers use 32 or 64 bits. Many different sizes have been used historically, including 8, 9, 10, 12, 18, 24, 36, 39, 40, 48 and 60 bits.

Very often, when referring to the word size of a modern computer, one is also describing the size of address space on that computer. For instance, a computer said to be "32-bit" also usually allows 32-bit memory addresses; a byte-addressable 32-bit computer can address 232 = 4,294,967,296 bytes of memory, or 4 gibibytes (GiB). This allows one memory address to be efficiently stored in one word.

However, this does not always hold true. Computers can have memory addresses larger or smaller than their word size. For instance, many 8-bit processors, such as the MOS Technology 6502, supported 16-bit addresses— if not, they would have been limited to a mere 256 bytes of memory addressing. The 16-bit Intel 8088 and Intel 8086 supported 20-bit addressing via segmentation, allowing them to access 1 MiB rather than 64 KiB of memory. All Intel Pentium processors since the Pentium Pro include Physical Address Extensions (PAE) which support mapping 36-bit physical addresses to 32-bit virtual addresses. Many early LISP implementations on, e.g., 36-bit processors, held 2 addresses per word as the result of a cons. Some early processors held 2 and even 3 addresses per instruction word.

In theory, modern byte-addressable 64-bit computers can address 264 bytes (16 exbibytes), but in practice the amount of memory is limited by the CPU, the memory controller, or the printed circuit board design (e.g., number of physical memory connectors or amount of soldered-on memory).

Contents of each memory location

[edit]

Each memory location in a stored-program computer holds a binary number or decimal number of some sort. Its interpretation, as data of some data type or as an instruction, and use are determined by the instructions which retrieve and manipulate it.

Some early programmers combined instructions and data in words as a way to save memory, when it was expensive: The Manchester Mark 1 had space in its 40-bit words to store little bits of data – its processor ignored a small section in the middle of a word – and that was often exploited as extra data storage.[citation needed] Self-replicating programs such as viruses treat themselves sometimes as data and sometimes as instructions. Self-modifying code is generally deprecated nowadays, as it makes testing and maintenance disproportionally difficult to the saving of a few bytes, and can also give incorrect results because of the compiler or processor's assumptions about the machine's state, but is still sometimes used deliberately, with great care.

Address space in application programming

[edit]

In modern multitasking environment, an application process usually has in its address space (or spaces) chunks of memory of following types:

Some parts of address space may be not mapped at all.

Some systems have a "split" memory architecture where machine code, constants, and data are in different locations, and may have different address sizes. For example, PIC18 microcontrollers have a 21-bit program counter to address machine code and constants in Flash memory, and 12-bit address registers to address data in SRAM.

Addressing schemes

[edit]

A computer program can access an address given explicitly – in low-level programming this is usually called an absolute address, or sometimes a specific address, and is known as pointer data type in higher-level languages. But a program can also use relative address which specifies a location in relation to somewhere else (the base address). There are many more indirect addressing modes.

Mapping logical addresses to physical and virtual memory also adds several levels of indirection; see below.

Memory models

[edit]

Many programmers prefer to address memory such that there is no distinction between code space and data space (see above), as well as from physical and virtual memory (see above) — in other words, numerically identical pointers refer to exactly the same byte of RAM.

However, many early computers did not support such a flat memory model — in particular, Harvard architecture machines force program storage to be completely separate from data storage. Many modern DSPs (such as the Motorola 56000) have three 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

[edit]

Early x86 processors use the segmented memory model addresses based on a combination of two numbers: a memory segment, and an offset within that segment.

Some segments are implicitly treated as code segments, dedicated for instructions, stack segments, or normal data segments. Although the usages are different, the segments do not have different memory protections reflecting this. In the flat memory model all segments (segment registers) are generally set to zero, and only offsets are variable.

Memory models in IBM S/360 and successors multiprocessors

[edit]

In the 360/65 and 360/67, IBM introduced a concept known as prefixing.[6] Prefixing is a level of address translation that applies to addresses in real mode and to addresses generated by dynamic address translation, using a unique prefix assigned to each CPU in a multiprocessor system. On the 360/65, 360/67 and every successor prior to z/Architecture, it logically swaps a 4096 byte block of storage with another block assigned to the CPU. On z/Architecture,[7] prefixing operates on 8196-byte blocks. IBM classifies addresses on these systems as:[8]

  • Virtual addresses: addresses subject to dynamic address translation
  • Real addresses: addresses generated from dynamic address translation, and addresses used by code running in real mode
  • Absolute addresses: physical addresses

On the 360/65, on S/370 models without DAT and when running with translation turned off, there are only a flat real address space and a flat absolute address space.

On the 360/67, S/370 and successors through S/390, when running with translation on, addresses contain a segment number, a page number and an offset. Although early models supported both 2 KiB and 4 KiB page sizes, later models only supported 4 KiB. IBM later added instructions to move data between a primary address space and a secondary address space.

S/370-XA added 31-bit addresses, but retained the segment/page/offset hierarchy with 4 KiB pages.

ESA/370 added 16 access registers (ARs) and an AR access control mode, in which a 31-bit address was translated using the address space designated by a selected AR.

z/Architecture supports 64-bit virtual, real and absolute addresses, with multi-level page tables.

See also

[edit]

Notes

[edit]
  1. ^ Some word-addressable computers have byte-handling instructions, typically supporing byte sizes up to a word but not supporting bytes that straddled words. For example, the DEC PDP-6 and PDP-10 have
    • Deposit Byte (DPB)
    • Increment Byte Pointer (IBP)
    • Increment and Deposit Byte (IDPB)
    • Increment and Load Byte (ILDB)
    • Load Byte (LDB)

References

[edit]
  1. ^ Abrahamson, Karl R. (Aug 20, 2022). "5.10.1. The Memory and Memory Addresses". East Carolina University. Retrieved Feb 3, 2023.
  2. ^ IBM 1620 Central Processing Unit, Model 1 (PDF). Systems Reference Library. IBM. A26-5706-3. Retrieved March 7, 2025.
  3. ^ System Reference Manual - RCA 3301 (PDF). RCA EDP. September 1967. 94-16-000. Retrieved March 7, 2025.
  4. ^ IBM 7070-7074 Principles of Operation (PDF). Systems Reference Library. IBM. GA22-7003-6. Retrieved March 7, 2025.
  5. ^ 650 magnetic drum data-processing machine - manual of operation (PDF). IBM22-6060-2. June 1955. 22-6060-2. Retrieved March 7, 2025.
  6. ^ "Multisystem Operation" (PDF). IBM System/360 Principles of Operation (PDF). Systems Reference Library (Eighth ed.). September 1968. p. 18. A22-6821-7. Retrieved July 21, 2024. The relocation procedure applies to the first 4,096 bytes of storage. This area contains all permanent storage assignments and, generally, has special significance to supervisory programs. The relocation is accomplished by inserting a 12-bit prefix in each address which has the high-order 12 bits set to zero and hence, pertains to location 0-4095.
  7. ^ "Prefixing in the z/Architecture Architectural Mode" (PDF). z/Architecture Principles of Operation (PDF) (Fourteenth ed.). May 2022. p. 3-21–3-23. SA22-7832-13. Retrieved July 21, 2024. Prefixing provides the ability to assign the block of real addresses containing assigned storage locations to a different block in absolute storage for each CPU, thus permitting more than one CPU sharing main storage to operate concurrently with a minimum of interference, especially in the processing of interruptions.
  8. ^ "Address Types" (PDF). z/Architecture Principles of Operation (PDF) (Fourteenth ed.). May 2022. pp. 3-4 – 3-5. SA22-7832-13. Retrieved July 21, 2024.
葡萄的茎属于什么茎 1981属什么 夏天吃什么菜好 山代表什么生肖 骨折挂什么科
什么油炒菜好吃又健康 什么情况下做喉镜 阉割什么意思 独善其身是什么意思啊 通草长什么样图片
猫抓病是什么病 hcg值低是什么原因 立冬吃什么 安抚奶嘴什么时候戒掉 孙悟空是什么佛
97年出生属什么 文曲星是什么神仙 荪是什么意思 塔罗牌正位和逆位是什么意思 老年人喝什么牛奶好
猫三联什么时候打adwl56.com 薛之谦的真名叫什么hcv8jop5ns8r.cn 转氨酶升高有什么症状hcv9jop7ns4r.cn 汧是什么意思hcv8jop7ns0r.cn 何五行属性是什么hcv9jop4ns7r.cn
男人割了皮包什么样子hcv8jop6ns2r.cn dew是什么意思hcv8jop2ns2r.cn 镉是什么东西hcv8jop8ns9r.cn 胃难受想吐是什么原因baiqunet.com bg是什么hcv8jop1ns7r.cn
小孩肠套叠什么症状hcv7jop9ns6r.cn 口腔黏膜挂什么科beikeqingting.com 英文为什么怎么写hcv8jop4ns2r.cn 服化道什么意思hcv8jop6ns0r.cn 荨麻疹吃什么药hcv8jop1ns0r.cn
激酶是什么hcv8jop3ns7r.cn 哺乳期可以吃什么消炎药dayuxmw.com 人流手术前需要注意什么hcv8jop1ns6r.cn 蘑菇不能和什么一起吃hcv8jop8ns5r.cn 什么是淋巴结wuhaiwuya.com
百度