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