程序員心中的一道坎:主存的編址與計算和串并聯(lián)系統(tǒng)!
作者個人研發(fā)的在高并發(fā)場景下,提供的簡單、穩(wěn)定、可擴(kuò)展的延遲消息隊列框架,具有精準(zhǔn)的定時任務(wù)和延遲隊列處理功能。自開源半年多以來,已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗。為使更多童鞋受益,現(xiàn)給出開源框架地址:https://github.com/sunshinelyz/mykit-delay
文章已收錄到:
https://github.com/sunshinelyz/technology-binghe
https://gitee.com/binghe001/technology-binghe
主存編址與計算
這里,小伙伴們首先要區(qū)分兩個概念,一個是編址,一個是尋址。
編址: 存儲器是由一個個存儲單元構(gòu)成的,為了對存儲器進(jìn)行有效的管理,就需要對各個存儲單元編上號,即給每個單元賦予一個地址碼,這叫編址。經(jīng)編址后,存儲器在邏輯上便形成一個線性地址空間。
尋址: 存取數(shù)據(jù)時,必須先給出地址碼,再由硬件電路譯碼找到數(shù)據(jù)所在地址,這叫尋址。
編址可以分為兩種:按字編址和按字節(jié)編址。
- 按字編址:存儲體的存儲單元是字存儲單元,即最小尋址單位是一個字。
- 按字節(jié)編址:存儲體的存儲單元是字節(jié)存儲單元,即最小尋址單位是一個字節(jié)。
對于主存編址中最常見的計算形式為:根據(jù)存儲器所要求的容量和選定的存儲芯片的容量,就可以計算出所需要的芯片的數(shù)量。公式如下所示。
- 總片數(shù) = 總?cè)萘?nbsp;/ 每片的容量
這里,給小伙伴們舉一個例子:若內(nèi)存地址區(qū)間為4000H ~ 43FFH,每個存儲單元可存儲16位二進(jìn)制數(shù),該內(nèi)存區(qū)域使用4片存儲器芯片構(gòu)成,則構(gòu)成該內(nèi)存所用的存儲器芯片的容量是多少?
解題思路也比較簡單,我們一起來看看如何解題:
(1)首先,我們來求解4000H ~ 43FFH地址空間的總?cè)萘浚褂媒K止地址-起始地址+1即可得到總?cè)萘?,也就?3FFH - 4000H + 1 = 43FFH + 1 - 4000H = 4400H - 4000H = 400H。
注意:在計算機(jī)中,以H結(jié)尾的數(shù)字是十六進(jìn)制,逢16進(jìn)1,而F在十六進(jìn)制中表示15,所以,43FFH + 1 = 4400H。
所以,4000H ~ 43FFH地址空間的總?cè)萘繛?00H。
(2)接下來,我們要把400H轉(zhuǎn)換成二進(jìn)制,對于十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)來說,每一位十六進(jìn)制數(shù)對應(yīng)著四位的二進(jìn)制數(shù),我們可以把400H拆分成4、0、0三部分,4轉(zhuǎn)換成二進(jìn)制數(shù)就表示0100,十六進(jìn)制的0轉(zhuǎn)換成二進(jìn)制為0000。所以,400H轉(zhuǎn)換成二進(jìn)制的結(jié)果為:0100 0000 0000。
0100 0000 0000也就是2的10次方,即為2^10^。
(3)題目中說的每個存儲單元可存儲16位二進(jìn)制數(shù),所有總共可以存儲的二進(jìn)制數(shù)就是:2^10^ * 16。
(4)該區(qū)域使用4片存儲器芯片構(gòu)成,所以,存儲芯片的容量為:2^10^ * 16 / 4 = 2^10^ * 4 = 2^12^,最終的結(jié)果單位為bit。
總線
一條總線同一時刻只允許一個設(shè)備發(fā)送數(shù)據(jù),但允許多個設(shè)備接收數(shù)據(jù)。
總線的分類
總線可以分為數(shù)據(jù)總線、地址總線和控制總線。
數(shù)據(jù)總線(Data Bus):在CPU和RAM之間來回傳送需要處理或是需要存儲的數(shù)據(jù)。
地址總線(Address Bus):用來指定在RAM(Random Access Memory)之中存儲的數(shù)據(jù)的地址。
控制總線(Control Bus):將微處理器控制單元(Control Unit)的信號傳送到周邊設(shè)備,一般常見的為USB Bus和1394 Bus。
串聯(lián)系統(tǒng)與并聯(lián)系統(tǒng)
這里,先給小伙伴們簡單介紹下什么是串聯(lián)系統(tǒng),什么是并聯(lián)系統(tǒng)。
串聯(lián)系統(tǒng)
串聯(lián)系統(tǒng)是組成系統(tǒng)的所有單元中任一單元失效就會導(dǎo)致整個系統(tǒng)失效的系統(tǒng)。把用電器各元件逐個順次連接起來,接入電路就組成了串聯(lián)電路。我們常見的裝飾用的"滿天星"小彩燈,常常就是串聯(lián)的。串聯(lián)電路有以下一些特點:⑴電路連接特點:串聯(lián)的整個電路是一個回路,各用電器依次相連,沒有"分支點"。⑵用電器工作特點:各用電器相互影響,電路中一個用電器不工作,其余的用電器就無法工作。⑶開關(guān)控制特點:串聯(lián)電路中的開關(guān)控制整個電路,開關(guān)位置變了,對電路的控制作用沒有影響。即串聯(lián)電路中開關(guān)的控制作用與其在電路中的位置無關(guān)。
注:以上對于串聯(lián)系統(tǒng)的描述來源于網(wǎng)絡(luò)。
接下來,我們來看一個關(guān)于串聯(lián)系統(tǒng)的圖形表示,這里我們假設(shè)串聯(lián)系統(tǒng)中每個部分的可靠度依次為R1,R2,...Rn,如下所示。
則整個系統(tǒng)的可靠度為:R = R1 * R2 * ... * Rn。
并聯(lián)系統(tǒng)
并聯(lián)系統(tǒng)指的是組成系統(tǒng)的所有單元都失效時才失效的系統(tǒng)。把電路中的元件并列地接到電路中的兩點間,電路中的電流分為幾個分支,分別流經(jīng)幾個元件的連接方式叫并聯(lián)。并聯(lián)電路是使在構(gòu)成并聯(lián)的電路元件間電流有一條以上的相互獨立通路,為電路組成二種基本的方式之一。例如,一個包含兩個電燈泡和一個9 V電池的簡單電路。若兩個電燈泡分別由兩組導(dǎo)線分開地連接到電池,則兩燈泡為并聯(lián)。
即若干二端電路元件共同跨接在一對節(jié)點之間的連接方式。這樣連成的總體稱為并聯(lián)組合。其特點是:①組合中的元件具有相同的電壓;②流入組合端點的電流等于流過幾個元件的電流之和;③線性時不變電阻元件并聯(lián)時,并聯(lián)組合等效于一個電阻元件,其電導(dǎo)等于各并聯(lián)電阻的電導(dǎo)之和,稱為并聯(lián)組合的等效電導(dǎo),其倒數(shù)稱為等效電阻
注:以上對于并聯(lián)系統(tǒng)的描述來源于網(wǎng)絡(luò)。
接下來,我們來看一個關(guān)于并聯(lián)系統(tǒng)的圖形表示,這里我們假設(shè)并聯(lián)系統(tǒng)中每個部分的可靠度依次為R1,R2,...Rn,如下所示。
則整個并聯(lián)系統(tǒng)的可靠度R = 1 - (1 - R1) * (1 - R2) * ... * (1-Rn)。
混合型系統(tǒng)
混合型系統(tǒng)就是既有串聯(lián)系統(tǒng),又有并聯(lián)系統(tǒng)的系統(tǒng),這里,我們也使用一個圖形進(jìn)行表示,如下所示。
所以,上圖并聯(lián)系統(tǒng)的可靠度為:R * (1 - (1 - R) ^3^) * (1 - (1 - R) ^2^)
本文轉(zhuǎn)載自微信公眾號「冰河技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系冰河技術(shù)公眾號。