主存中存儲單元地址的分配
『壹』 MCS-51單片機內部程序存儲器是如何分配的哪些地址用於保留區有何作用
8051片內有4kB的程序存儲單元,其地址為0000H—0FFFH,其中一組特殊是0000H—0002H單元,系統復位後,PC為0000H,單片機從0000H單元開始執行程序 ,另一組特殊單元是0003H—002AH,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:
0003H—000AH 外部中斷0中斷地址區。
000BH—0012H 定時/計數器0中斷地址區。
0013H—001AH 外部中斷1中斷地址區。
001BH—0022H 定時/計數器1中斷地址區。
0023H—002AH 串列中斷地址區。
可見以上的40個單元是專門用於存放中斷處理程序的地址單元
二、數據存儲器
MCS-51內部RAM有128或256個位元組的用戶數據存儲(不同的型號有分別),它們是用於存放執行的中間結果和過程數據的。MCS-51的數據存儲器均可讀寫,部分單元還可以位定址。
1、 8051內部RAM共有256個單元,這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個位元組)為用戶數據RAM。從80H—FFH地址單元(也是128個位元組)為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結構分布。
在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。
內部RAM的20H—2FH單元為位定址區,既可作為一般單元用位元組定址,也可對它們的位進行定址。位定址區共有16個位元組,128個位,位地址為00H—7FH。。
『貳』 計算機的內存中的存儲單元的物理地址是怎樣排列的
各自排列,但可以映射
通過定址
方便定址
『叄』 主存中每個存儲單元幾個位元組
一個位元組為8位,即1Byte=
8b。
如果是SAM之類的,其上有標識。如
SRAM
晶元6264
的容量為8K×8
bit,其每個存儲單元含8b,共有8x1024個存儲單元。
Pentium(586)等微處理器構成的計算機,它們的字長是32
位。即4個位元組。
現在的64位處理器,字長為64位,即每個存儲單元含64b=8Byte,8個位元組。
『肆』 存儲單元的地址的基本定義
單元地址:單元地址簡稱地址,在存儲器中每個存儲單元都有唯一的地址編號,稱為單元地址。
在計算機中最小的信息單位是bit,也就是一個二進制位,8個bit組成一個Byte,也就是位元組。一個存儲單元可以存儲一個位元組,也就是8個二進制位。計算機的存儲器容量是以位元組為最小單位來計算的,對於一個有128個存儲單元的存儲器,可以說它的容量為128位元組。
(4)主存中存儲單元地址的分配擴展閱讀:
一般應具有存儲數據和讀寫數據的功能,以8位二進製作為一個存儲單元,也就是一個位元組。每個單元有一個地址,是一個整數編碼,可以表示為二進制整數。
程序中的變數和主存儲器的存儲單元相對應。變數的名字對應著存儲單元的地址,變數內容對應著單元所存儲的數據。存儲地址一般用十六進制數表示,而每一個存儲器地址中又存放著一組二進制(或十六進制)表示的數,通常稱為該地址的內容。
『伍』 cache 可以是看作是主存的延伸,與主存統一編址,接受cpu的訪問,但其速度要比主存高得多,這對
cache是高速緩沖存儲器存儲了頻繁訪問的主存,直接接受CPU的訪問,速度也比主存快?錯,錯在 並不是所有的數據cache 都比主存快,例如處理器引用某些地址時,先看cache里有沒有,他有的化,就直接復制到哪裡,速度就提高了,要是沒有,一樣跟主存一樣速度
應該是「接受CPU訪問」之前的錯了 高速緩存分為多級,有一級緩存,主要用來緩存CPU指令,二級緩存,才是CPU於物理內存之間的緩存,至於三級緩存應該就是二級緩存於內存間的另一個緩存,所以不是統一編址的
傳統意義上,我們把memory翻譯成內存,這個詞在台灣似乎是翻譯為記憶體。在pc上一般指的ram。但是在移動設備中還有一個詞叫做internal storage,這個詞直譯就是內存,但跟我們pc時代所說的內存具有完全不同的含義。所以,現在內存確實可以是ram,是內存條,也可能是手機上的flash。在說內存的時候現在傾向於直接使用ram來指代,避免歧義。
概述
存儲器分類
存儲器的層次結構
主存儲器
概述:
半導體晶元簡介
隨機存取存儲器(RAM)
只讀存儲器(ROM)
存儲器與CPU的連接
存儲器的校驗
漢明碼簡介:
提高訪問速度的措施
高速緩沖存儲器
Cache的工作原理:
主存—Cache的地址映射
寫操作
Pentium的Cache
輔助存儲器
概述
存儲器分類
按存儲介質分類:
半導體存儲器 TTL,MOS
磁表面存儲器 磁頭,載磁體
磁芯存儲器 硬磁材料,環狀元件
光碟存儲器 激光,磁光材料
按存取方式分類:
1.存取時間與物理地址無關(隨機訪問)
隨機存儲器 在程序的執行過程中 讀 寫
只讀存儲器 在程序的執行過程中 讀
2.存取時間與物理地址有關(串列訪問)
順序存取存儲器 磁帶
直接存取存儲器 磁碟
3.按在計算機中的作用分類
存儲器:主存儲器,Flash Memory,高速緩沖存儲器(Cache),輔助存儲器
主存儲器:RAM,ROM,
RAM:靜態RAM,動態RAM
ROM:MROM,PROM,EPROM,EEPROM
輔助存儲器:磁碟,磁帶,光碟
存儲器的層次結構
存儲器三個主要特性的關系:
速度:快--慢
容量:小--大
價格:高--低
緩存—主存層次和主存—輔助層次
緩存—主存:主存儲器地址 注重速度 由硬體來處理
主存—輔存:虛擬存儲器 注重容量 由軟硬體相結合
程序的局部性原理:程序在執行時呈現出局部規律,即在一段時間內,整個程序的執行僅限於程序中的某一部分。相應的,執行所訪問的存儲空間也局限於某個內存區域。
主存儲器
概述:
1.主存的基本組成
2.主存和CPU的聯系
3.主存中存儲單元地址的分配
高位位元組 地址為字地址
地址線24根,按位元組定址范圍為224224 =16M;
若字長32位,則一個字有4個位元組,所以要留2根地址線指出該字中的哪個位元組[00,01,10,11],即定址范圍為 224−2=4M224−2=4M;
若字長16位,則一個字有2個位元組,所以要留1根地址線指出該字中的哪個位元組[0,1],即定址范圍為 224−1=8M224−1=8M;
『陸』 內存中,存儲單元有多大,是多少位存儲單元有地址的關系不是很明白,想了很久,請大神幫忙解決一下
存儲單元一般以八個二進制單位也就是一個位元組為單位,位元組是最小的存儲單位。比如說一個八位二進制數11111111是一個位元組,也就是一個存儲單位。假如你的手機內存是128個位元組(BYTE),也就是128B,但是現在一般用兆(M)或者是(G)作為內存。1G=1024M,1M=1024B。肯定是有邏輯地址的,就像你家的家的地址或者是你的座位號一樣,不然cpu在讀寫數據的怎麼知道你要的數據在哪裡?假如我們把內存128B看成一個容器的話,分分成128層,單位為位元組。cpu會有個映射,記得把酒放在第一層,把水放在第二層了,把可樂放在第三層了。然後你要是要喝酒了,就去第一層給你拿,而不會去第二層給你拿。大致意思就是這樣。
『柒』 內存中的存儲單元的地址結構是幾維
內存中的存儲單元的地址結構是16位。
大部分16位和32位的CPU不允許將字或者長字存儲到內存中的任意地址。比如Motorola68000不允許將16位的字存儲到奇數地址中,將一個16位的字寫到奇數地址將引發異常。
每一個單元的地址稱為位元組地址,任何相鄰兩個單元組成一個字地址,按編址原則約定用其中一個較小的地址來表示字地址。一個字由兩個位元組組成,則低位元組對應低地址,高位元組對應高地址。
相關應用:
在計算機中,由控制器解釋,運算器執行的指令集是一個精心定義的數目十分有限的簡單指令集合。一般可以分為四類:
1)、數據移動 (如:將一個數值從存儲單元A拷貝到存儲單元B)。
2)、數邏運算(如:計算存儲單元A與存儲單元B之和,結果返回存儲單元C)。
3)、 條件驗證(如:如果存儲單元A內數值為100,則下一條指令地址為存儲單元F)。
4)、指令序列改易(如:下一條指令地址為存儲單元F)。
『捌』 內存中的物理地址是CPU分配嗎
內存單元的物理地址是由其所處的地址匯流排上的位置決定的,機器安裝完成後,其物理地址是固定的、不變的,並不是由CPU分配的。
但要操作哪個單元 是由cpu 中的控制器來完成的。
『玖』 什麼是字塊內地址什麼是主存塊地址什麼是緩存塊地址什麼是組地址
字塊內地址: 一個塊含有幾個字,數據位於第幾個字就是字塊內地止。
主存塊地址:將主存分塊存儲,位於第幾塊就是主存塊地址。
緩存塊地址:將cache分塊存儲,位於第幾塊就是主存塊地址。
組地址:將cache的塊分組,位於第幾組就是組地址。
具體關系如圖所示:
(9)主存中存儲單元地址的分配擴展閱讀:
cache(緩存)與主存映射有三種映射:
全相聯映射:主存的一塊可以映射到cache的任意一行中。
直接相聯映射 :根據cache的大小將主存劃分為若干個區,每個區中的塊與cache中的行一一對應。主存的一塊只能存放到cache的某一特定行中。
組相聯映射:
1、首先將cache的劃分為若干組(U組),每組有V行(稱為V路組相聯)。
2、主存按每U塊劃分為一組,每組有U塊。
3、主存的第j塊按模U映射到cache的第i組中的任意一行。
4、組間直接映射,組內全相聯映射
參考資料:網路-塊映射策略
『拾』 某機字長為32位,其存儲容量是64KB,按字編址其定址范圍是多少若主存以位元組編址,試畫出主存字地址和字
6.某機字長為32位,其存儲容量是64KB,按字編址它的定址范圍是多少?若主存以位元組編址,試畫出主存字地址和位元組地址的分配情況。
解:
按字編址的定址范圍如下:
64K=64*1024*8位,所以64KB/32位=(64*1024*8)/32=16*1024=16K
主存字地址和位元組地址的分配情況:如圖。
位是計算機來中數據的最小單位。計算機採用二進製表示和存儲數據,1位即1個二進制數0或者1;位元組也是屬於數據的單位,與位的換算公式為1位元組=8位;一個字等於多少位元組是根據字長決定的,當字長為32位時候,則等於的位元組是32/8=4個位元組(字長即包含的位數),於是上圖一個字對應四個位元組。;如果位元組編址的話則一個位元組為一個存儲單元,一個存儲單元可以存放一個8位二進制數,這個二進制數就是一個存儲字。8K個存儲單元(地址)中,可以存放8K×8位。這也就是存儲容量。拓展:
(1).此題是按照單字編址的,即單字所包含的基本單元的個數作為一個地址單元。單字所包含的基本單元個數即字長.基本單元指的就是位。
此外若
按照位元組編址,即位元組所包含的基本單元個數作為一個地址單元,則定址范圍為(64*1024*8位)/8位=8K,且表示又8K個存儲單元一個位元組永遠是8位.
計算機按32位字長半字屬編址。即半個字所包含的基本單元個數作為一個地址單元,則半字的位數為16位,范圍為(64*1024*8位)/16位=32K
計算機按32位字長雙字編址。則雙字的位數為64位,范圍為(64*1024*8位)/64位=8K
(2).地址線24根,如果地址線有24根,並且每根地址線有0、1兩位,我們可以從000…000(24位)一直到111…111(24位)。
按位元組定址范圍為=16M,這些地址表示存儲單元的位置,所以存儲單元也有16M個;
若字長32位,則一個字有4個位元組,所以要留2根地址線指出該字中的哪個位元組[00,01,10,11],即定址范圍為=4M;
若字長16位,則一個字有2個位元組,所以要留1根地址線指出該字中的哪個位元組[0,1],即定址范圍為=8M;