德國(guó)MADLER緩沖器的工作原理
德國(guó)MADLER緩沖器的傳輸數(shù)據(jù)
此類的每個(gè)子類都定義了兩種獲取和放置操作:
相對(duì)操作讀取或?qū)懭胍粋€(gè)或多個(gè)元素,它從當(dāng)前位置開(kāi)始,然后將位置增加所傳輸?shù)脑財(cái)?shù)。如果請(qǐng)求的傳輸超出限制,則相對(duì)獲取操作將拋出BufferUnderflowException,相對(duì)放置操作將拋出BufferOverflowException;這兩種情況下,都沒(méi)有數(shù)據(jù)被傳輸。
德國(guó)MADLER緩沖器操作采用顯式元素索引,該操作不影響位置。如果索引參數(shù)超出限制,獲取操作和放置操作將拋出IndexOutOfBoundsException。
當(dāng)然,通過(guò)適當(dāng)通道的 I/O 操作(通常與當(dāng)前位置有關(guān))也可以將數(shù)據(jù)傳輸?shù)骄彌_區(qū)或從緩沖區(qū)傳出數(shù)據(jù)。
做標(biāo)記和重置
德國(guó)MADLER緩沖器緩沖區(qū)的標(biāo)記是一個(gè)索引,在調(diào)用reset方法時(shí)會(huì)將緩沖區(qū)的位置重置為該索引。并非總是需要定義標(biāo)記,但在定義標(biāo)記時(shí),不能將其定義為負(fù)數(shù),并且不能讓它大于位置。如果定義了標(biāo)記,德國(guó)MADLER緩沖器則在將位置或限制調(diào)整為小于該標(biāo)記的值時(shí),該標(biāo)記將被丟棄。如果未定義標(biāo)記,那么調(diào)用reset方法將導(dǎo)致拋出InvalidMarkException。
不變式
德國(guó)MADLER緩沖器標(biāo)記、位置、限制和容量值遵守以下不變式:
0<=標(biāo)記<=位置<=限制<=容量新創(chuàng)建的緩沖區(qū)總有一個(gè) 0 位置和一個(gè)未定義的標(biāo)記。德國(guó)MADLER緩沖器初始限制可以為 0,也可以為其他值,這取決于緩沖區(qū)類型及其構(gòu)建方式。一般情況下,緩沖區(qū)的初始內(nèi)容是未定義的。
清除反轉(zhuǎn)重繞
德國(guó)MADLER緩沖器除了訪問(wèn)位置、限制、容量值的方法以及做標(biāo)記和重置的方法外,此類還定義了以下可對(duì)緩沖區(qū)進(jìn)行的操作:
clear()使緩沖區(qū)為一系列新的通道讀取或相對(duì)放置操作做好準(zhǔn)備:它將限制設(shè)置為容量大小,將位置設(shè)置為 0。
flip()使緩沖區(qū)為一系列新的通道寫(xiě)入或相對(duì)獲取操作做好準(zhǔn)備:它將限制設(shè)置為當(dāng)前位置,然后將位置設(shè)置為 0。
rewind()使緩沖區(qū)為重新讀取已包含的數(shù)據(jù)做好準(zhǔn)備:它使限制保持不變,將位置設(shè)置為 0。
只讀緩沖區(qū)
德國(guó)MADLER緩沖器每個(gè)緩沖區(qū)都是可讀取的,但并非每個(gè)緩沖區(qū)都是可寫(xiě)入的。每個(gè)緩沖區(qū)類的轉(zhuǎn)變方法都被為可選操作,當(dāng)對(duì)只讀緩沖區(qū)調(diào)用時(shí),將拋出ReadOnlyBufferException。只讀緩沖區(qū)不允許更改其內(nèi)容,但其標(biāo)記、位置和限制值是可變的??梢哉{(diào)用其isReadOnly方法確定緩沖區(qū)是否為只讀。
線程安全
多個(gè)當(dāng)前線程使用緩沖區(qū)是不安全的。如果一個(gè)緩沖區(qū)由不止一個(gè)線程使用,則應(yīng)該通過(guò)適當(dāng)?shù)耐絹?lái)控制對(duì)該緩沖區(qū)的訪問(wèn)。
德國(guó)MADLER緩沖器調(diào)用鏈
此類中的方法返回調(diào)用它們的緩沖區(qū)(否則它們不會(huì)返回任何值)。此操作允許將方法調(diào)用組成一個(gè)鏈;例如,語(yǔ)句序列
b.flip(); b.position(23); b.limit(42);可以由以下更緊湊的一個(gè)語(yǔ)句代替 b.flip().position(23).limit(42);
從以下版本開(kāi)始:1.4
德國(guó)MADLER緩沖器的基本原理
在CPU的設(shè)計(jì)中,一般輸出線的直流負(fù)載能力可以驅(qū)動(dòng)一個(gè)TTL負(fù)載,而在連接中,CPU的一根地址線或數(shù)據(jù)線,可能連接多個(gè)存儲(chǔ)器芯片,但存儲(chǔ)器芯片都為MOS電路,主要是電容負(fù)載,直流負(fù)載遠(yuǎn)小于TTL負(fù)載。故小型系統(tǒng)中,CPU可與存儲(chǔ)器直接相連,在大型系統(tǒng)中就需要加德國(guó)MADLER緩沖器。
任何程序或數(shù)據(jù)要為CPU所使用,必須先放到主存儲(chǔ)器(內(nèi)存)中,即CPU只與主存交換數(shù)據(jù),所以主存的速度在很大程度上決定了系統(tǒng)的運(yùn)行速度。程序在運(yùn)行期間,在一個(gè)較短的時(shí)間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器的一個(gè)很小范圍的地址空間內(nèi)。指令地址本來(lái)就是連續(xù)分布的,再加上循環(huán)程序段和子程序段要多次重復(fù)執(zhí)行,因此對(duì)這些地址中的內(nèi)容的訪問(wèn)就自然的具有時(shí)間集中分布的傾向。數(shù)據(jù)分布的集中傾向不如程序這么明顯,但對(duì)數(shù)組的存儲(chǔ)和訪問(wèn)以及工作單元的選擇可以使存儲(chǔ)器地址相對(duì)地集中。這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問(wèn),而對(duì)此范圍外的地址訪問(wèn)甚少的現(xiàn)象被稱為程序訪問(wèn)的局部化(Locality of Reference)性質(zhì)。由此性質(zhì)可知,在這個(gè)局部范圍內(nèi)被訪問(wèn)的信息集合隨時(shí)間的變化是很緩慢的,如果把在一段時(shí)間內(nèi)一定地址范圍被頻繁訪問(wèn)的信息集合成批地從主存中讀到一個(gè)能高速存取的小容量存儲(chǔ)器中存放起來(lái),供程序在這段時(shí)間內(nèi)隨時(shí)采用而減少或不再去訪問(wèn)速度較慢的主存,就可以加快程序的運(yùn)行速度。這個(gè)介于CPU和主存之間的高速小容量存儲(chǔ)器就稱之為高速緩沖存儲(chǔ)器,簡(jiǎn)稱Cache。不難看出,程序訪問(wèn)的局部化性質(zhì)是Cache得以實(shí)現(xiàn)的原理基礎(chǔ)。同理,構(gòu)造磁盤(pán)高速緩沖存儲(chǔ)器(簡(jiǎn)稱磁盤(pán)Cache),也將提高系統(tǒng)的整體運(yùn)行速度CPU一般設(shè)有一級(jí)緩存(L1 Cache)和二級(jí)緩存(L2 Cache)。一級(jí)緩存是由CPU制造商直接做在CPU內(nèi)部的,其速度極快,但容量較小,一般只有十幾K。PⅡ以前的PC一般都是將二級(jí)緩存做在主板上,并且可以人為升級(jí),其容量從256KB到1MB不等,而PⅡ CPU則采用了全新的封裝方式,把CPU內(nèi)核與二級(jí)緩存一起封裝在一只金屬盒內(nèi),并且不可以升級(jí)。二級(jí)緩存一般比一級(jí)緩存大一個(gè)數(shù)量級(jí)以上,另外,在CPU中,已經(jīng)出現(xiàn)了帶有三級(jí)緩存的情況。
高速緩沖存儲(chǔ)器
高速緩沖存儲(chǔ)器,即Cache。我們知道,數(shù)據(jù)分布的集中傾向不如程序這么明顯,如果把在一段時(shí)間內(nèi)一定地址范圍被頻繁訪問(wèn)的信息集合成批地從主的系統(tǒng)中,CPU訪問(wèn)數(shù)據(jù)時(shí),在Cache中能直接找到的概率,它是Cache的一個(gè)重要指標(biāo),與Cache的大小、替換算法、程序特性等因素有關(guān)。增加Cache后,CPU訪問(wèn)主存的速度是可以預(yù)算的,64KB的Cache可以緩沖4MB的主存,且命中都在90%以上。以主頻為100MHz的CPU(時(shí)鐘周期約為10ns)、20ns的Cache、70ns的RAM、命中為90%計(jì)算,CPU訪問(wèn)主存的周期為:有Cache時(shí),20×0.9+70×0.1=34ns;無(wú)Cache時(shí),70×1=70ns。由此可見(jiàn),加了Cache后,CPU訪問(wèn)主存的速度大大提高了,但有一點(diǎn)需注意,加Cache只是加快了CPU訪問(wèn)主存的速度,而CPU訪問(wèn)主存只是計(jì)算機(jī)整個(gè)操作的一部分,所以增加Cache對(duì)系統(tǒng)整體速度只能提高10~20%左右。
接口集成電路語(yǔ)
zui基本線路構(gòu)成的門(mén)電路存在著抗干擾性能差和不對(duì)稱等缺點(diǎn)。為了克服這些缺點(diǎn),可以在輸出或輸入端附加反相器作為緩沖級(jí);也可以輸出或輸入端同時(shí)都加反相器作為緩沖級(jí)。這樣組成的門(mén)電路稱為帶德國(guó)MADLER緩沖器的門(mén)電路。
帶緩沖輸出的門(mén)電路輸出端都是1個(gè)反相器,輸出驅(qū)動(dòng)能力僅由該輸出級(jí)的管子特性決定,與各輸入端所處邏輯狀態(tài)無(wú)關(guān)。而不帶德國(guó)MADLER緩沖器的門(mén)電路其輸出驅(qū)動(dòng)能力與輸入狀態(tài)有關(guān)。另一方面。帶德國(guó)MADLER緩沖器的門(mén)電路的轉(zhuǎn)移特性至少是由3級(jí)轉(zhuǎn)移特性相乘的結(jié)果,因此轉(zhuǎn)換區(qū)域窄,形狀接近理想矩形,并且不隨輸入使用端數(shù)的情況而變化、加德國(guó)MADLER緩沖器的門(mén)電路,抗干擾性能提高10%電源電壓。此外,帶德國(guó)MADLER緩沖器的門(mén)電路還有輸出波形對(duì)稱、交流電壓增益大、帶寬窄、輸入電容比較小等優(yōu)點(diǎn)。不過(guò),由于附加了緩沖級(jí),也帶來(lái)了一些缺點(diǎn)。例如傳輸延遲時(shí)間加大,因此,帶德國(guó)MADLER緩沖器的門(mén)電路適宜用在高速電路系統(tǒng)中。
相關(guān)產(chǎn)品
免責(zé)聲明
- 凡本網(wǎng)注明“來(lái)源:化工儀器網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-化工儀器網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:化工儀器網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其他來(lái)源(非化工儀器網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。