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