導航:首頁 > 物理學科 > 為什麼存儲器要用物理地址

為什麼存儲器要用物理地址

發布時間:2022-12-23 10:22:34

① 什麼是邏輯地址,什麼是物理地址,它們之間有什麼關系

邏輯地址(Logical Address) 是指由程序產生的與段相關的偏移地址部分。例如,你在進行C語言指針編程中,可以讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進程數據段的地址,不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換);邏輯也就是在Intel 保護模式下程序執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全一樣)。應用程序員僅需與邏輯地址打交道,而分段和分頁機制對您來說是完全透明的,僅由系統編程人員涉及。應用程序員雖然自己可以直接操作內存,那也只能在操作系統給你分配的內存段操作。

線性地址(Linear Address) 是邏輯地址到物理地址變換之間的中間層。程序代碼會產生邏輯地址,或者說是段中的偏移地址,加上相應段的基地址就生成了一個線性地址。如果啟用了分頁機制,那麼線性地址可以再經變換以產生一個物理地址。若沒有啟用分頁機制,那麼線性地址直接就是物理地址。Intel 80386的線性地址空間容量為4G(2的32次方即32根地址匯流排定址)。

物理地址(Physical Address) 是指出現在CPU外部地址匯流排上的定址物理內存的地址信號,是地址變換的最終結果地址。如果啟用了分頁機制,那麼線性地址會使用頁目錄和頁表中的項變換成物理地址。如果沒有啟用分頁機制,那麼線性地址就直接成為物理地址了。虛擬內存(Virtual Memory) 是指計算機呈現出要比實際擁有的內存大得多的內存量。因此它允許程序員編制並運行比實際系統擁有的內存大得多的程序。這使得許多大型項目也能夠在具有有限內存資源的系統上實現。一個很恰當的比喻是:你不需要很長的軌道就可以讓一列火車從上海開到北京。你只需要足夠長的鐵軌(比如說3公里)就可以完成這個任務。採取的方法是把後面的鐵軌立刻鋪到火車的前面,只要你的操作足夠快並能滿足要求,列車就能象在一條完整的軌道上運行。這也就是虛擬內存管理需要完成的任務。在Linux 0.11內核中,給每個程序(進程)都劃分了總容量為64MB的虛擬內存空間。因此程序的邏輯地址范圍是0x0000000到0x4000000。有時我們也把邏輯地址稱為虛擬地址。因為與虛擬內存空間的概念類似,邏輯地址也是與實際物理內存容量無關的。 邏輯地址與物理地址的「差距」是0xC0000000,是由於虛擬地址->線性地址->物理地址映射正好差這個值。這個值是由操作系統指定的

從一篇網路文庫上賦值下來的,覺得說的挺好挺詳細的,參考下

② 物理地址是不是指計算機存放數據在硬碟等存儲設備里的地址

不是存放在硬碟的,物理地址是記錄在各個硬體固件晶元上的,不可變更,每個硬體的物理地址都是唯一的,如網卡物理地址就是MAC地址例如:e0:fd:b2:d8:ff。硬碟的物理地址是一串字元如:wne72002048ed0001927。通常物理地址用於本地硬體識別,以便確定數據進出硬體是哪一個,在網路中相當於手機識別碼或人的身份證。

③ 什麼是物理地址物理地址有何作用

網路中的地址分為物理地址和邏輯地址兩類,與網路層的IP地址
傳輸層的埠號以及應用層的用戶名相比較,局域望網的MAC層地址是由硬體來處理的,叫做物理地址或硬體地址.IP地址
傳輸層的埠號以及應用層的用戶名是邏輯地址一由軟體處理.我認為你說的MAC地址應該就是物理地址.
大多數區域網通過為網卡分配一個硬體地址來標識一個聯網的計算機或其他設備.所謂物理地址是指固化在網卡EPROM中的地址,這個地址應該保證在全網是唯一的.IEEE注冊委員會為每一個生產廠商分配物理地址的前三位元組,即公司標識.後面三位元組由廠商自行分配.即一個廠商獲得一個前三位元組的地址可以生產的網卡數量是16777216塊.即一塊網卡對應一個物理地址.也就是說對應物理地址的前三位元組可以知道他的生產廠商.
如果固化在網卡中的地址為002514895423,那麼這塊網卡插到主機A中,主機A的地址就是002514895423,不管主機A是連接在區域網1上還是在區域網2上,也不管這台計算機移到什麼位置,主機A的物理地址就是002514895423
.它是不變的,而且不會和世界上任何一台計算機相同.當主機A發送一幀時,網卡執行發送程序時,直接將這個地址作為源地址寫入該幀.當主機A接收一幀時,直接將這個地址與接收幀目的地址比較,以決定是否接收.
物理地址一般記作00-25-14-89-54-23(主機A的地址是002514895423)

④ 物理存儲器和存儲地址空間的區別

區別

1、存在方式

物理存儲器是實際存在的儲存地址,而存儲地址空間指邏輯上的儲存地址。

物理存儲器和存儲地址空間兩者都用B、KB、MB、GB來度量其容量大小。

物理存儲器:是指實際存在的具體存儲器晶元。如主板上裝插的主存條和裝載有系統的BIOS的ROM晶元,顯示卡上的顯示RAM晶元和裝載顯示BIOS的ROM晶元,以及各種適配卡上的RAM晶元和ROM晶元都是物理存儲器。

存儲地址空間:是指對存儲器編碼(編碼地址)的范圍。所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個號碼,通常叫作「編址」。分配一個號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是所謂的「定址」。

(4)為什麼存儲器要用物理地址擴展閱讀

主板上裝插的主存條和裝載有系統的BIOS的ROM晶元,顯示卡上的顯示RAM晶元和裝載顯示BIOS的ROM晶元,以及各種適配卡上的RAM晶元和ROM晶元都是物理存儲器。

存儲器是用來存儲程序和數據的部件,對於計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器(簡稱內存,港台稱之為記憶體)。

內存又稱主存,是CPU能直接定址的存儲空間,由半導體器件製成。內存的特點是存取速率快。內存是電腦中的主要部件,它是相對於外存而言的。

⑤ 什麼是邏輯地址和物理地址

有網友問到我:什麼是邏輯地址和物理地址?怎麼轉換?針對此問題,我為大家分享了具體的操作 方法 ,希望對你有幫助!

什麼是邏輯地址

是指由程式產生的和段相關的偏移地址部分。例如,你在進行C語言指針編程中,能讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,他是相對於你當前進程數據段的地址,不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換);邏輯也就是在Intel保護模式下程式執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全相同)。應用程式員僅需和邏輯地址打交道,而分段和分頁機制對你來說是完全透明的,僅由系統編程人員涉及。應用程式員雖然自己能直接操作內存,那也只能在 操作系統 給你分配的內存段操作。

什麼是物理地址

用於內存晶元級的單元定址,與處理器和CPU連接的地址匯流排相對應。 ——這個概念應該是這幾個概念中最好理解的一個,但是值得一提的是,雖然可以直接把物理地址理解成插在機器上那根內存本身,把內存看成一個從0位元組一直到最大空量逐位元組的編號的大數組,然後把這個數組叫做物理地址,但是事實上,這只是一個硬體提供給軟體的抽像,內存的定址方式並不是這樣。所以,說它是“與地址匯流排相對應”,是更貼切一些,不過拋開對物理內存定址方式的考慮,直接把物理地址與物理的內存一一對應,也是可以接受的。也許錯誤的理解更利於形而上的抽像。 虛擬內存(virtual memory) 這是對整個內存(不要與機器上插那條對上號)的抽像描述。它是相對於物理內存來講的,可以直接理解成“不直實的”,“假的”內存,例如,一個0x08000000內存地址,它並不對就物理地址上那個大數組中0x08000000 - 1那個地址元素;之所以是這樣,是因為現代操作系統都提供了一種內存管理的抽像,即虛擬內存(virtual memory)。進程使用虛擬內存中的地址,由操作系統協助相關硬體,把它“轉換”成真正的物理地址。這個“轉換”,是所有問題討論的關鍵。有了這樣的抽像,一個程序,就可以使用比真實物理地址大得多的地址空間。(拆東牆,補西牆,銀行也是這樣子做的),甚至多個進程可以使用相同的地址。不奇怪,因為轉換後的物理地址並非相同的。 ——可以把連接後的程序反編譯看一下,發現連接器已經為程序分配了一個地址,例如,要調用某個函數A,代碼不是call A,而是call 0x0811111111 ,也就是說,函數A的地址已經被定下來了。沒有這樣的“轉換”,沒有虛擬地址的概念,這樣做是根本行不通的。打住了,這個問題再說下去,就收不住了。邏輯地址(logical address) Intel為了兼容,將遠古時代的段式內存管理方式保留了下來。邏輯地址指的是機器語言指令中,用來指定一個操作數或者是一條指令的地址。以上例,我們說的連接器為A分配的0x08111111這個地址就是邏輯地址。 ——不過不好意思,這樣說,好像又違背了Intel中段式管理中,對邏輯地址要求,“一個邏輯地址,是由一個段標識符加上一個指定段內相對地址的偏移量,表示為 [段標識符:段內偏移量],也就是說,上例中那個0x08111111,應該表示為[A的代碼段標識符: 0x08111111],這樣,才完整一些” 線性地址(linear address)或也叫虛擬地址(virtual address) 跟邏輯地址類似,它也是一個不真實的地址,如果邏輯地址是對應的硬體平台段式管理轉換前地址的話,那麼線性地址則對應了硬體頁式內存的轉換前地址。

邏輯地址和物理地址拓展知識

存儲器中每一個單元的地址可以用兩種方法表示:

1.邏輯地址:其表達形式為“段地址:段內偏移地址”。

2.物理地址:CPU與存儲器進行數據交換時在地址匯流排上

提供的20位地址信息稱為物理地址。

物理地址=段地址×10H+段內偏移量

CPU一次處理的數據是16位,地址匯流排實際上代表CPU的定址能力,地址線為20條那麼CPU實際的定址能力就是2的20次方就是1M。實際的物理地址是這樣形成的:

段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。

例如段地址是1234H,偏移地址是4321H

那麼實際的物理地址怎麼算呢:1234H*10H+4321H=12340H+4321H=16661H

實際上可以這么來理解,就是段地址左移一位後加上偏移地址就得出實際的物理地址。

這里邏輯地址和物理地址的關系又可以用一個比喻來說明:

比如你的學號是0102,這是你的真實地址亦即物理地址,那麼又假如01表示你的班級名稱,02表示你相對整個班級的位置,這就是邏輯地址,道理是一樣的,只不過在實際由邏輯地址合成物理地址的時候需要將物理地址左移一位,再加上偏移地址。

邏輯地址到物理地址的轉換方法

以一個例子的形式講解邏輯地址到物理地址的轉換:

某虛擬存儲器的用戶編程空間共32個頁面,每頁為1KB,內存為16KB。假定某時刻一用戶頁表中已調入內存的頁面的頁號和物理塊號的對照表如下:

則邏輯地址0A5C(H)所對應的物理地址是什麼?要求:寫出主要計算過程。

解題過程:

首先要知道頁式存儲管理的邏輯地址分為兩部分:頁號和頁內地址。物理地址分為兩部分:

關系為:邏輯地址=頁號+頁內地址d

物理地址=塊號*塊長度( 等於頁面長度 L )+頁內地址;

頁號: p = lnt( 邏輯地址 A / 頁面長度 L ); d = 邏輯地址 A % 頁面長度 L (取余)

分析題:已知:用戶編程空間共32個頁面,2ˆ5=32得知頁號部分佔5位,由“每頁為1KB”,1K=2^10,可知內頁地址佔10位。

由“內存為16KB”,2^4=16得知塊號佔4位。

邏輯地址0A5C(H)所對應的二進製表示形式是:0000101001011100,後十位1001011100是頁內地址,

00010(本題特例,因為頁面長度為1KB)為為頁號,頁號化為十進制是2,在對照表中找到2對應的物理塊號是11,11轉換二進制是1011,11* 2^10 + d即可求出物理地址為10111001011100,化成十六進制為2 E5C;

即則邏輯地址0A5C(H)所對應的物理地址是2E5C;

猜你喜歡:

1. IP地址和物理地址有什麼區別

2. 物理地址和邏輯地址的區別

3. 虛擬地址與物理地址的概念

4. 物理地址什麼意思

5. 邏輯地址如何轉換成物理地址

6. 物理地址有什麼用

7. 物理地址作用是什麼

⑥ 什麼是邏輯地址什麼是物理地址

邏輯地址: 是指由程序產生的與段相關的偏移地址部分。又稱絕對地址。

物理地址:在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址,又叫實際地址或絕對地址。

一、關系:邏輯地址和物理地址相對的。物理地址是唯一的,邏輯地址的相對的。

二、表達方式:

1、邏輯地址:其表達形式為「段地址:段內偏移地址」。

2、物理地址:CPU與存儲器進行數據交換時在地址匯流排上 。

(6)為什麼存儲器要用物理地址擴展閱讀:

一、邏輯地址的產生背景

追根求源,Intel的8位機8080CPU,數據匯流排(DB)為8位,地址匯流排(AB)為16位。那麼這個16位地址信息也是要通過8位數據匯流排來傳送,也是要在數據通道中的暫存器,以及在CPU中的寄存器和內存中存放的,但由於AB正好是DB的整數倍,故不會產生矛盾!

但當上升到16位機後,Intel8086/8088CPU的設計由於當年IC集成技術和外封裝及引腳技術的限制,不能超過40個引腳。但又感覺到8位機原來的地址定址能力2^16=64KB太少了,但直接增加到16的整數倍即令AB=32位又是達不到的。

故而只能把AB暫時增加4條成為20條。則2^20=1MB的定址能力已經增加了16倍。但此舉卻造成了AB的20位和DB的16位之間的矛盾,20位地址信息既無法在DB上傳送,又無法在16位的CPU寄存器和內存單元中存放。於是應運而生就產生了CPU段結構的原理。

二、物理地址的計算方法

在實地址方式下,物理地址是通過段地址乘以16加上偏移地址得到的。而16位的段地址乘以16等同於左移4位二進制位,這樣變成20位的段基地址,最後段基地址加上段內偏移地址即可得到物理地址。

20位物理地址計算方法如下:

物理地址=段地址*16d+偏移地址。

⑦ 什麼是主存物理地址

主存一般指內存儲器,簡稱內存。
物理地址是內存實際編址中的位置,即地址。相對而言,真正在編程中使用的是邏輯地址。

⑧ 什麼是邏輯地址什麼是物理地址它們之間有什麼關系各用在何處

邏輯地址在工具書中的解釋

1、在有地址變換功能的計算機中,訪內指令給出的地址
(操作數)
叫邏輯地址,也叫相對地址。要經過定址方式的計算或變換才得到內存儲器中的物理地址。
2、把用戶程序中使用的地址稱為相對地址即邏輯地址。
網卡物理地址存儲器中存儲單元對應實際地址稱物理地址,與邏輯地址相對應。
網路中的地址分為物理地址和邏輯地址兩類,與網路層的IP地址傳輸層的埠號以及應用層的用戶名相比較,區域網的MAC層地址是由硬體來處理的,叫做物理地址或硬體地址。IP地址傳輸層的埠號以及應用層的用戶名是邏輯地址由軟體來處理。MAC地址不等同於物理地址.
大多數區域網通過為網卡分配一個硬體地址來標識一個聯網的計算機或其他設備.所謂物理地址是指固化在網卡EPROM中的地址,這個地址應該保證在全網是唯一的。IEEE注冊委員會為每一個生產廠商分配物理地址的前三位元組,即公司標識。後面三位元組由廠商自行分配,一個廠商獲得一個前三位元組的地址可以生產的網卡數量是16777216塊。而一塊網卡對應一個物理地址。也就是說對應物理地址的前三位元組就可以知道他的生產廠商。
例如固化在網卡中的地址為002514895423,那麼這塊網卡插到主機A中,主機A的物理地址就是002514895423,不管主機A是連接在區域網1上還是在區域網2上,也不管這台計算機移到什麼位置,主機A的物理地址就是002514895423。它是不變的,而且不會和世界上任何一台計算機相同。當主機A發送一幀時,網卡執行發送程序時,直接將這個地址作為源地址寫入該幀。當主機A接收一幀時,直接將這個地址與接收幀目的地址比較,以決定是否接收。物理地址一般記作00-25-14-89-54-23(主機A的地址是002514895423)。

⑨ 物理地址有什麼用

有網友反饋說:我在閱讀一些電腦知識的讀本時,常常看到“物理地址”這個名詞,說實話,我只知道IP地址,從未聽說過物理地址。這個物理地址也象IP地址一樣重要嗎?相信很多用戶與這位網友是一樣不知道物理地址有什麼用的,針對這個情況,我特意分享了物理地址的一些知識,希望可以幫助到大家。

物理地址

在存儲器里以位元組為單位存儲信息,為正確地存放或取得信息,每一個位元組單元給以一個唯一的存儲器地址,稱為物理地址(Physical Address),又叫實際地址或絕對地址。

在x86 CPU中,採用了段頁式內存管理機制,分段和分頁模型。

分頁(Paging)機制

邏輯地址由頁號和偏移量組成。

分段(Segment)機制

分段允許程序員把存儲器看成由多個地址空間或段組成。程序和相關的數據被劃分成一組段(segment),不要求所有程序的所有段都有相同長度。

和分頁一樣,分段情況下的邏輯地址由兩部分組成:段號和偏移量。

分段的優點:

簡化不斷增長的數據結構處理。

允許程序獨立地改變或重新編譯,而不要求整個程序集合重新鏈接和重新載入。

有助於進程間的共享。

有助於保護。由於一個段可以被構造成包含一個明確定義的程序或數據集,程序員或系統管理員可以以一種方便的形式指定訪問許可權。

虛擬內存

內存的基本思想是程序、數據、堆棧的總大小可以超過可用物理內存的大小, 操作系統 把程序當前使用的那些部分保留在內存中,而其他部分保存在磁碟上。

虛擬內存的實現基於分頁技術。

虛擬內存的優點:

在內存中可以同時運行多個進程

進程可以比內存全部空間還大,不再局限於物理內存大小

內存更高效地被使用

2 邏輯地址到線性地址的映射過程

X86 CPU邏輯地址到線性地址映射過程如下圖:

邏輯地址到線性地址映射過程如下:

(1)根據指令的性質來確定應該使用哪一個段寄存器(Segment Selector),例如轉移指令中的地址在代碼段,而取數據指令中的地址在數據段;

(2)根據段存器的內容,找到相應的“地址段描述結構“(Segment Descriptor),段描述結構都放在一個表(Descriptor Table)中(GDT或LDT、TR、IDT),而表的起始地址保存在GDTR、LDTR、IDTR、TR寄存器中。這就是4個內存管理寄存器GDTR、LDTR、IDTR和TR的用途;

(3)從地址段描述結構中找到基地址(Base Address);

(4)將指令發出的地址作為位移(Effective Address),與段描述結構中規定的段長度相比,看看是否越界;

(5)根據指令的性質和段描述符中的訪問許可權來確定是否越權;

(6)將指令中發出的地址作為位移,與基地址相加而得出線性地址(Linear Address)。

問題: 1、邏輯地址就是CPU指令發出的地址,那麼段選擇碼(Segment Selector)的值在哪裡? 2、知道段選擇碼後,需要從描述符表(Descriptor Table)中找到相應的表項,那怎麼知道描述符表在內存中哪個位置?

3 線性地址到物理地址的映射過程

X86 CPU線性地址到物理地址映射過程:

線性地址到物理地址映射過程如下:

(1)從CR3寄存器中獲取頁面目錄表(Page Directory)的基地址;

(2)以線性地址的Directory位段為下標,在目錄(Page Directory)中取得相應頁面表(Page Table)的基地址;

(3)以線性地址中的Table位段為下標,在所得到的頁面表中獲得相應的頁面描述項;

(4)將頁面描述項中給出的頁面基地址與線性地址中的offset位段相加得到物理地址。

閱讀全文

與為什麼存儲器要用物理地址相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:739
乙酸乙酯化學式怎麼算 瀏覽:1404
沈陽初中的數學是什麼版本的 瀏覽:1350
華為手機家人共享如何查看地理位置 瀏覽:1042
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:884
數學c什麼意思是什麼意思是什麼 瀏覽:1408
中考初中地理如何補 瀏覽:1299
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:701
數學奧數卡怎麼辦 瀏覽:1387
如何回答地理是什麼 瀏覽:1023
win7如何刪除電腦文件瀏覽歷史 瀏覽:1055
大學物理實驗干什麼用的到 瀏覽:1484
二年級上冊數學框框怎麼填 瀏覽:1699
西安瑞禧生物科技有限公司怎麼樣 瀏覽:969
武大的分析化學怎麼樣 瀏覽:1247
ige電化學發光偏高怎麼辦 瀏覽:1337
學而思初中英語和語文怎麼樣 瀏覽:1650
下列哪個水飛薊素化學結構 瀏覽:1423
化學理學哪些專業好 瀏覽:1486
數學中的棱的意思是什麼 瀏覽:1057