close

記憶體位置(Memory Address)

    程式設計師常常利用"記憶體位置"來存取某些記憶單元的內容,在80X86系統中分成三種位置
    1.邏輯位置 2.線性位置(又稱虛擬位置) 3.實體位置

  • 邏輯位置(Logical Address)
    • 邏輯位置屬於機械語言指令的一部分,可用來指定一個運算元(Operand)或是一個指令(Instruction)的位置。
    • 這種位置採用80X86的分節式架構(Segmented Architecture),迫使M$ Windows的程式設計員必須將他們的程式切成許多Segment(節區)。
    • 每一個邏輯位置由一個Segment和一個Offset(偏移量) 或是 Displacement(位移量) 組成 ; 而Offset 指出了節區起始處到實際位置之間的距離。
  • 線性位置
    • 由一個32位元的無號數(unsigned)整數定址 可定址到4GB的記憶單元(4,294,967,296) 。
    • 線性位址通常以十六進位制(Hexadecimal)的符號來表示。
    • 其範圍0x00000000~0xffffffff。
  • 實體位置(Physical Address)
    • 用來決定記憶體單元在記憶晶片的位址。
    • 利用微處理器的位址引線(Address Pin) 來指定傳送到記憶體單元上
    • 實體位址以32位元或36位元的無號數來表示
   
    記憶體管理單元(Memory Management Unit 簡稱 MMU) 會利用一個名為分頁單元(Segmentation Unit)的硬體電路,把邏輯位址轉成線性位址;然後接者有一個分頁單元(Paging Unit)的硬體電路會把線性位址轉成實體位址
邏輯位址=>[分節單元]=>線性位址=>[分頁單元]=>實體位址=>記憶體單元

     在多處理氣得系統中,所有CPU通常會共用相同的記憶體空間;所以記憶體晶片必須可以有多個獨立自主的CPU同時存取。又因為記憶體晶片的讀寫操作必須依序進行,所以要在每一個匯流排和每一個記憶體晶片上之間安插一個記憶體仲裁器(Memory Arbiter)的硬體電路。
arrow
arrow
    全站熱搜

    Aminzai 發表在 痞客邦 留言(1) 人氣()