7.3 编址与存储相关计算
兩個方面的內(nèi)容:一方面是內(nèi)存的編址方法,另外一方面就是磁帶、光盤它的容量以及其它方面的一些計算.內(nèi)存編址方法這一塊有兩個方面的內(nèi)容是需要大家掌握的:第一方面是編址,
編址的概念:在計算機的系統(tǒng)當(dāng)中,它的存儲器有很多個存儲空間,就如同我們?nèi)ヒ粋€澡堂,它可能有儲物柜,然后排列了很多很多的儲物柜,它會對這個儲物柜進行編號,從1號開始編一直編到100號或者是200號,如果說你不對這些儲物柜進行編號,那么這些儲物柜就無法利用起來.因為客人來了之后他不清楚自己是哪一個儲物柜,所以不方便把東西放進來也不方便把東西取出去.編址就起了這樣的一個作用:就是標(biāo)明每一個空間它的一個地址,或者說是一個名稱,能夠找得到這一個空間的名稱.內(nèi)存當(dāng)中的具體編址的方法:
?
例如這是一塊內(nèi)存芯片,要對這一塊芯片進行編址,我們首先要了解的就是這每一個空格代表一個位,就是一個bit.每一個方格就是一個bit,然后這一塊芯片總共呢它有8行4列,所以有32位,32個bit.這4條線是數(shù)據(jù)線,用于取出當(dāng)中的數(shù)據(jù).然后我們的編址是按4位4位的編址,每4位編一個地址.每4位編一個地址之后我們就可以一次性每一次取出4個位.其實這一個概念就和我們以前講到的多少位的計算機能夠聯(lián)系起來,比如說16位的計算機,那么它的數(shù)據(jù)位,數(shù)據(jù)總線的寬度它就是16位,這樣的一個計算機系統(tǒng)它一次可以取出來的數(shù)據(jù)量就為16位.這樣的計算機它的一個字,注意不是字節(jié),是一個字,就是16位.當(dāng)然對于32位的計算機,那么它的一個字就是32位.64位的計算機,它的一個字,就是64位.注意這個64位也就是我們所說的這個數(shù)據(jù)總線的寬度.數(shù)據(jù)總線的寬度就表示了計算機一次它可以取出多少個數(shù)據(jù),或者說是一次處理多少數(shù)據(jù).扯遠了,回到正題.
這里是每4位編成一個地址,那么我們的32個空間要編多少個地址呢?我們就發(fā)現(xiàn)按4位4位的編址這一塊芯片要編8個地址,要編8個地址是不是就意味著要8條地址線呢?是不是需要8條地址線?其實不需要的.因為我們所用的地址是3位的地址,用不著8位.只需要用3位的10就能夠表示8個地址了.
我們可以把這8位連到一個譯碼芯片上面.這邊接3個位,這邊的才是地址線.這邊輸入的比如是000,譯碼信號就會指示出我們現(xiàn)在要存儲的數(shù)據(jù)是000號數(shù)據(jù).而如果譯碼信號進入的是001,那么譯碼信號它就會指示需要存取的空間是001號空間.所以說我們平時所講到的地址的位數(shù)或者說編這一些地址需要的地址線的數(shù)量,是講的這個地址它的位數(shù),并不是指的它能夠指示的空間的一個數(shù)量.其實從這一個例題我們也能夠看出一個規(guī)律,多少位的2進制數(shù),能夠表示出來的數(shù)值,就是它的編址空間的大小.我們剛才說了3位的空間,3位的2進制數(shù),用2^3就可以計算出它能夠給多少個空間進行編址.2^3=8,所以3位的地址能夠編8個地址出來.可以指示出8個空間.而2^4=16,所以用4位的地址可以表示16個空間.同樣的道理,地址線的條數(shù),比如說是14,那么它可以編址的內(nèi)存空間的個數(shù)就是2^14個.
主要要理解的就是地址的位數(shù)和它表達的值的數(shù)量的一個關(guān)系.3位的地址可以表示出8個實際的地址出來.4位的可以表示16個地址.這個就像我們平常的儲物柜編號一樣的,這是2進制的,然后如果我們是10進制的,1位10進制的就可以編0-9個地址,就可以表示給10個存儲空間進行編址.而兩位的地址是00-99就可以給100個數(shù)、100個空間進行編址,這是10進制.而我們現(xiàn)在用的2進制,2進制的話就是2^n,2的n次方,得到的數(shù)就是這么多位地址,能夠表示給多少個存儲空間進行編址.
下面我們還需要了解的一個問題就是芯片的拼接.芯片的拼接也比較常用.這一個芯片它是8*4位的芯片,也就是有8行,每一行有4個位,4個bit,然后我們?nèi)绻f要把這一個芯片拼接成容量更大的芯片.我們通常有兩種方式進行拼接,我們可以縱向的拼接,也可以橫向的拼接.這樣子拼接出來的存儲空間,我們知道都是64個位,也就是8個字節(jié)的空間.但是大家需要注意一點,這樣子拼接出來的兩塊芯片,它就是完全不同的兩種芯片了.這一塊芯片稱為16*4的芯片,而這種芯片被稱為8*8的芯片.它們的特性也由它們的結(jié)構(gòu)所決定,所以它們也存在著不同的特性.
這個16*4拼合起來的大芯片,它的地址位數(shù)是4位,就是不再是我們以前所說的3位了,因為3位已經(jīng)編不完這些地址了,3位只能夠編8個地址,因為2^4=16,剛好夠用4位地址,那么我們這一種芯片它的地址線的位數(shù)就是4位,而數(shù)據(jù)線的位數(shù)它沒有變化.這種芯片它一次只能取4個位,而這種8*8的芯片情況就不同了,8*8的芯片由于它的行數(shù)仍然只有8行,所以對它進行編址仍然用3位的地址就可以了.它不同的是它這個數(shù)據(jù)線的位數(shù)增多了,它數(shù)據(jù)線的位數(shù)由4位增至了8位數(shù)據(jù)線,這樣子它就一次性能夠取出8個數(shù)據(jù)來,就是8個位的數(shù)據(jù).
所以這兩種芯片雖然都是用同樣的芯片組合起來的,拼接起來的,但是它們的特性是完全不同的.我們再把這個意思把它拓廣,因為我們平常8*4位芯片不可能會出現(xiàn)到這種這么小的芯片,那么我們可以認為是8KB*4位的芯片.讓你兩塊芯片組成一個16KB*4位的芯片,那么你組合就應(yīng)該是這種組合方式.而這個8KB我們也可以計算出它的編址需要多少位地址,我們就把8KB寫成2^n次方的形式,求出這個n來就行了.因為1KB它是等于2^10,而8=2^3,所以8KB=2^13,所以若這個存儲芯片是8KB的大小,那么它的地址線應(yīng)該有13根,也就是說它的地址的位數(shù)有13位之多.好,下面我們講清楚這一些基本的一些的概念,一些思想之后,我們來從實際的問題當(dāng)中來看待.
來看看這些問題應(yīng)當(dāng)要如何應(yīng)用我們剛剛所學(xué)到的知識,來解決.
如果主存的容量為:
它其實就是一個16MB*8位的芯片,主存我們可以看做是16MB*8位的芯片,它是按字節(jié)來編址,所以每一次能夠取出8個位因為8位就是一個字節(jié),所以我們就只要把這一個16MB化成2的n次方,就能夠求出,求出這個n之后,就知道主存的地址至少應(yīng)該需要多少個位,那么16MB是等于2的,1MB=2^20,因為1KB=2^10,16MB=2^(4+20)=2^24.那么我們就求出來了,求出這個主存的地址,應(yīng)該是24位.
如果這個題目不按字節(jié)來編址,我按4位來編址,換成4位編址情況確實有所不同,我們就把這個16MB*8位就得變化了,就是16MB*2*4位,就等于把一個字節(jié)拆成兩個部分,兩個4位,然后這個2要并入前面一部分,就變成了32MB*4位,然后就是把這一個32MB的地址空間化為2的n次方形式,我們就發(fā)現(xiàn)如果按4位來編址,那么地址的位數(shù)就需要25位了.
同樣再把這個題目改一改, 我們改成按字編址,而不按字節(jié)編址.按字編址而我們同時又知道這個計算機系統(tǒng)是64位的系統(tǒng),64位代表是8個字節(jié),因為每8位是一個字節(jié),所以64位應(yīng)該是8個字節(jié),那么也就是說現(xiàn)在要對16MB字節(jié)的這個空間每8個字節(jié)來進行這個編址.那么我們這邊就得寫成另外一種形式了,就寫成2MB*8字節(jié),注意哦我們再怎么變換形式它的總?cè)萘看笮∫恢睕]有發(fā)生變化的,都是16MB.這個乘以8位就相當(dāng)于乘了一個字節(jié).而這里乘了2后面乘了4位,4位是0.5個字節(jié),也就是半個字節(jié),1/2個字節(jié),這里就是2MB*8字節(jié),我們只要把這個2MB寫成2的n次方形式,求出n,那么這個地址的數(shù)也就求出來了.求出來應(yīng)該是21.就是按字編址,而每個字有64位的話那么我們的地址的位數(shù)就只需要21位了.
接下來再來看一個問題,這一個問題就牽涉到了也是內(nèi)存編址,它是內(nèi)存地址容量的一個計算.題目是這樣子的:內(nèi)存按字節(jié)編址,地址從A4000H-CBFFFH,這個計算還是比較容易的.它的原則是什么一個原則呢?一個什么原理來計算呢?
開始起始地址是A4000這一條線,這一條線就是CBFFF,我們就只要求出這一段的大小就可以了.因為它是一個連續(xù)的地址空間,當(dāng)然這個計算就比較好計算了,而且又是字節(jié)編址,那么我們就直接把這個地址減去這一個地址,用它尾數(shù)-開始數(shù)+1那么我們就能夠得到字節(jié)數(shù),這里有一個單位的換算我們就直接用CBFFF-A4000+1,加1是為了,很容易理解如果我的起始地址是從1開始,到9,我們很容易可以知道123456789是9個空間,然后如果說我們用尾數(shù)9減去1還缺了1個所以要補1個加1.那么我們就直接用CBFFF減A4000再加1就行了.我們可以先給這個CBFFF+1-A4000,這樣子就得到了2進制的28000H.我們把這個16進制的數(shù)轉(zhuǎn)成10進制,轉(zhuǎn)成10進制之后然后我們就發(fā)現(xiàn)它的大小剛好是160KB.我們也可以現(xiàn)在用計算機、計算器算一下,
轉(zhuǎn)載于:https://www.cnblogs.com/ZHONGZHENHUA/p/7252436.html
總結(jié)
以上是生活随笔為你收集整理的7.3 编址与存储相关计算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交通运输线(LCA)
- 下一篇: Nodejs扩展,实现消息弹窗