欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

硬件中的可配置存儲器分區(qū)的制作方法

文檔序號:6422602閱讀:96來源:國知局
專利名稱:硬件中的可配置存儲器分區(qū)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種存儲器系統(tǒng),該系統(tǒng)可被配置為提供多個獨立的讀/寫緩沖器。
當數(shù)據(jù)從數(shù)據(jù)源傳送至目的地時,緩沖器通常用來臨時存儲數(shù)據(jù)。這種臨時的數(shù)據(jù)存儲允許數(shù)據(jù)源和目的地之間的異步操作以及數(shù)據(jù)源和目的地之間的短暫的速度失配周期,并且提供一種在不丟失數(shù)據(jù)的前提下調(diào)整數(shù)據(jù)源的數(shù)據(jù)傳輸速率的有效措施等等。
最初,來自數(shù)據(jù)源的數(shù)據(jù)以數(shù)據(jù)源所能提供的速度被寫入緩沖器,并且以目的地能夠接受的速度被讀出緩沖器。如果數(shù)據(jù)源的速度比目的地的速度慢,目的地就必須等待緩沖器中有可用數(shù)據(jù)。如果數(shù)據(jù)源的速度比目的地的速度快,則數(shù)據(jù)源持續(xù)為緩沖器提供數(shù)據(jù)直至緩沖器變滿或者幾乎變滿,此時,數(shù)據(jù)源被命令停止數(shù)據(jù)傳送,直到目的地從緩沖器中移走數(shù)據(jù),以便為源數(shù)據(jù)騰出空間。通過允許以數(shù)據(jù)源的傳輸速率從數(shù)據(jù)源接收數(shù)據(jù)直至緩沖器變滿,就可支持間歇的高于平均速率的傳輸速率,并且目的地處的間歇的接收延遲也就不必傳播到數(shù)據(jù)源??梢栽诓挥绊懻w數(shù)據(jù)傳輸速率的前提下所允許的、在數(shù)據(jù)源和目的地間的間歇的傳輸速度差的總量取決于緩沖器的大小,較大的緩沖器能夠比較小的緩沖器允許更大的速度差。
緩沖器的大小通?;跀?shù)據(jù)源或者目的地的特性決定,或者基于二者的特性決定,尤其與它們的數(shù)據(jù)傳輸速度的間歇特性有關(guān)。如果數(shù)據(jù)源和目的地各具有均勻的傳輸速率,就幾乎不用緩沖。如果數(shù)據(jù)源提供數(shù)據(jù)脈沖串,或者目的地分塊處理數(shù)據(jù),則緩沖器的大小通常被設(shè)置成可以容納所述脈沖串或塊的大小。
大部分系統(tǒng)都包含多個數(shù)據(jù)源和目的地,并且用多個緩沖器來便于每個數(shù)據(jù)源和目的地之間的數(shù)據(jù)傳輸。多數(shù)情況下,存儲器的總量是有限的,而分配給每個緩沖器的存儲器量的大小是基于上面提及的數(shù)據(jù)源和目的地的特性來確定的,并且也取決于與維持特定數(shù)據(jù)源和目的地之間的高傳輸速率相關(guān)聯(lián)的相對優(yōu)先權(quán)和其他性能因素。然而,在許多情況下,在其上運行應(yīng)用程序的系統(tǒng)并沒有利用系統(tǒng)設(shè)計所支持的所有數(shù)據(jù)源和/或目的地,而與這些數(shù)據(jù)源和/或目的地相關(guān)聯(lián)的緩沖器也并未被使用。同樣,不同的應(yīng)用程序可能將不同的優(yōu)先權(quán)與特定的數(shù)據(jù)源和目的地之間的傳輸相關(guān)聯(lián),而緩沖器大小的分配可能與希望的優(yōu)先權(quán)不一致。
通過向應(yīng)用程序提供整個緩沖器的存儲器空間并且讓應(yīng)用程序?qū)⒋鎯ζ鬟壿嫹謪^(qū)為各單獨設(shè)置大小的緩沖器,就可向應(yīng)用程序提供完全可配置的存儲器分區(qū)。但是,這種方法通常要求應(yīng)用程序處理緩沖器管理的所有方面??晒┻x擇地,系統(tǒng)可以保留處理緩沖器管理的職責,同時也允許可編程的緩沖器大小。然而在這樣一個實施例中,與管理可變緩沖器大小的未知組合相關(guān)聯(lián)的系統(tǒng)開銷會造成系統(tǒng)成本過高,并且/或者會引入處理延遲以致降低系統(tǒng)性能。
本發(fā)明的一個目的在于提供一種緩沖器管理系統(tǒng),該系統(tǒng)允許以最小的開銷進行可配置的存儲器分區(qū)。本發(fā)明的另一個目的在于提供一種易于控制和使用的緩沖器管理系統(tǒng)。而本發(fā)明的另外一個目的在于提供一種適合于在硬件設(shè)備上實現(xiàn)的緩沖器管理系統(tǒng)。
通過提供一個緩沖器管理系統(tǒng)來達到這些和其他目的,該系統(tǒng)將整個存儲器空間分區(qū)成可編程數(shù)量的大小基本一致的緩沖器。一個應(yīng)用程序?qū)⑺璧木彌_器數(shù)量傳送到緩沖器管理系統(tǒng),然后將這些緩沖器分配在由該應(yīng)用程序使用的數(shù)據(jù)傳輸路徑之間。可選地,能將多個大小一致的緩沖器合并以形成單個邏輯緩沖器。通過將全部存儲器空間分區(qū)成大小一致的緩沖器,管理多個緩沖器所需的開銷被最小化。通過將選定數(shù)量的受管理的緩沖器提供給一個應(yīng)用程序,該應(yīng)用程序能夠根據(jù)需要分配這些緩沖器,而不必考慮緩沖器管理的細節(jié)。
參照下面的附圖,以舉例的方式對本發(fā)明進行更詳細地解釋,其中

圖1示例了根據(jù)本發(fā)明的緩沖器管理系統(tǒng)的方框圖。
圖2示例了根據(jù)本發(fā)明將存儲器空間分區(qū)成大小一致的緩沖器的示例分區(qū)。
圖3示例了用于在根據(jù)本發(fā)明的已分區(qū)的緩沖器系統(tǒng)中使用的一種緩沖器編址方案的示例結(jié)構(gòu)。
在所有附圖中,同樣的附圖標記表示相似或相應(yīng)的特征或功能。
圖1示例了根據(jù)本發(fā)明的緩沖器管理系統(tǒng)100的示例方框圖。緩沖器管理系統(tǒng)100包含控制器150,被配置為對寫入控制邏輯130和讀出控制邏輯140進行控制,以便于從一個或多個數(shù)據(jù)源110到一個或多個目的地120的數(shù)據(jù)傳輸。盡管為了便于理解,圖中示例了分離的控制塊130、140和150,但是,控制塊130和140典型地是控制器150的組件。正如現(xiàn)有技術(shù)所公知的,一個可以發(fā)送和接收數(shù)據(jù)的設(shè)備可以作為數(shù)據(jù)源110和目的地120。為了便于參照,本文中數(shù)據(jù)源一目的地路徑被定義為一個管道,該管道實現(xiàn)從一個特定數(shù)據(jù)源到一個特定目的地、或從多個數(shù)據(jù)源到一個特定目的地、或從一個特定數(shù)據(jù)源到多個目的地、或從多個數(shù)據(jù)源到多個目的地的數(shù)據(jù)傳輸。也就是說,在一個數(shù)據(jù)源一目的地路徑上的緩沖器,可以接收到僅從一個數(shù)據(jù)源到一個目的地的數(shù)據(jù),或可以接收編址到同一目的地的所有數(shù)據(jù),或可以接收從一個數(shù)據(jù)源發(fā)送出來的所有數(shù)據(jù),或可以接收從多個數(shù)據(jù)源發(fā)送到多個目的地的所有數(shù)據(jù)。
一個或多個應(yīng)用程序(未示出)初始化在數(shù)據(jù)源110和目的地140之間的數(shù)據(jù)傳輸。取決于特定的應(yīng)用程序,可以定義不同的數(shù)據(jù)源-目的地路徑,可以為每一條路徑分配不同的優(yōu)先權(quán),并且可以展現(xiàn)出不同的通信量模式等等。根據(jù)本發(fā)明,取決于一個或多個應(yīng)用程序?qū)τ谠诓煌臄?shù)據(jù)源-目的地路徑上進行高效數(shù)據(jù)傳輸?shù)男枰刂破?50負責安排把緩沖存儲器200分區(qū)為各獨立的緩沖器。
鑒于本申請公開,對本領(lǐng)域普通技術(shù)人員而言可明確的是,本發(fā)明特別適合于以下實現(xiàn)方式其中將通過不同的數(shù)據(jù)源-目的地路徑傳輸數(shù)據(jù)的應(yīng)用程序是先驗已知的,但是目的地端口的總數(shù)則由應(yīng)用程序在運行時確定。例如,在硬件設(shè)計系統(tǒng)中,緩沖存儲器200、寫入控制邏輯130、讀出控制邏輯140和控制器150可以體現(xiàn)為預先定義的“庫”元件。當用這些庫元件生成定制設(shè)計的集成電路時,控制器150實現(xiàn)對緩沖存儲器200的分區(qū),以支持體現(xiàn)在集成電路中或者體現(xiàn)在包含了該集成電路的系統(tǒng)中的應(yīng)用程序。在另一個例子中,緩沖器管理系統(tǒng)100可以被包含在一個能運行多個應(yīng)用程序的可編程設(shè)備或系統(tǒng)中,當特定的應(yīng)用程序集被編程到這個可編程設(shè)備中時,控制器150對緩沖存儲器200進行分區(qū)。
在本發(fā)明的一個優(yōu)選實施例中,控制器150接收一個參數(shù),該參數(shù)指定了從緩沖存儲器200中所需的緩沖器數(shù)量?;谠搮?shù)(在下文中稱之為分區(qū)參數(shù)),控制器150將緩沖存儲器200分區(qū)為多個大小相同的緩沖器,其中緩沖器的相同大小k為2的冪。在本發(fā)明的一個優(yōu)選實施例中,分區(qū)的數(shù)量也是2的冪,如圖2所示。
在圖2中,存儲器200a包含一個單獨的緩沖器B0,對應(yīng)于分區(qū)參數(shù)1;存儲器200b包含兩個緩沖器B0 210和B1 211,對應(yīng)于分區(qū)參數(shù)2。存儲器200c包含4個緩沖器220、221、222、223,對應(yīng)于分區(qū)參數(shù)3或4。通常情況下,如存儲器200d所示,圖1中的存儲器200被分區(qū)為“n”個大小相同的緩沖器,這里“n”為2的整數(shù)冪(n=2N),對應(yīng)的分區(qū)參數(shù)在2N-1+1到n之間。
為便于理解,本發(fā)明最初是針對分區(qū)參數(shù)等于n的示例情況提出的,其中n是2的冪(n=2N)。下文中,將提出分區(qū)參數(shù)小于2N的例子。
來自數(shù)據(jù)源的數(shù)據(jù)被插入或?qū)懭氲较乱粋€可用的寫入位置,并從最后未讀出的位置被移走或讀出至目的地。寫入控制邏輯130確保下一個可用的寫入位置未被使用,這里“未被使用”被定義為不包含將要被讀出至目的地的數(shù)據(jù)。如果緩沖器已滿,從而整個緩沖器都包含了將要被讀出至目的地的數(shù)據(jù),則對緩沖器的寫入將被延遲,直至最早的或最后未讀出的數(shù)據(jù)被讀出至目的地,從而釋放緩沖器中的可用空間。讀出控制邏輯140確保尚未被讀出至目的地的數(shù)據(jù)是可用的,否則遲延讀操作。
在傳統(tǒng)的緩沖器系統(tǒng)中,和在本發(fā)明中一樣,每個緩沖器B0,B1,...都被配置為循環(huán)緩沖器,其中緩沖器的“終止(end)”或“頂部(top)”之后的“下一個”位置為緩沖器的“起始(start)”或“底部(bottom)”。寫入控制邏輯130和讀出控制邏輯140被配置為同時在多個緩沖器中實現(xiàn)該循環(huán)編址。下列偽代碼實現(xiàn)用于單個緩沖器的循環(huán)遞增函數(shù)function next_address(current_address,buffer_start,buffer_end)if current_address<buffer_endthen next_address=current_address+1else next_address=buffer_start.
在具有n個緩沖器的緩沖存儲器200的例子中,函數(shù)next_address可被如下定義function next_address(current_address,buffer_index)if current_address<buffer_end[buffer_index]then next_address=current_address+1else next_address=buffer_start[buffer_index];其中buffer_start和buffer_end數(shù)組包含每一個緩沖器的起始和終止位置,并且對于函數(shù)是局部已知的。使用這種函數(shù)形式,對n個緩沖器中的緩沖器“j”的寫指針(wp)的遞增可用下列命令實現(xiàn)wp[j]=next_address(wp[j],j).
以類似的方法,對緩沖器“j”的讀指針(rp)的遞增可用下列命令實現(xiàn)rp[j]=next_address(rp[j],j).
對緩沖器j的寫入可以通過下列偽代碼定義function write(data,j)if OK_to_write(j)thenbuffer[wp[j]]==datawp[j]==next_address(wp[j],j)write==SUCCESS;elsewrite==FAILURE;其中在這個模塊中,寫指針wp指向緩沖器中的下一個用來存放數(shù)據(jù)的可用位置,并且對于該函數(shù)是局部已知的。OK_to_write函數(shù)是一個傳統(tǒng)的檢查函數(shù),其基于比較讀指針和寫指針來驗證緩沖器未滿。在該實例中,如果寫入函數(shù)返回失敗(FAILURE),則指示數(shù)據(jù)源不要再發(fā)送其它數(shù)據(jù),并且寫入函數(shù)被應(yīng)用程序重復調(diào)用直至返回成功(SUCCESS),然后使數(shù)據(jù)源能夠再次發(fā)送另一個數(shù)據(jù)項。正如本領(lǐng)域公知的那樣,在數(shù)據(jù)源和緩沖器之間如果有一個顯著的時間遲后,則只要緩沖器變得“幾乎已滿(nearly full)”,數(shù)據(jù)源就可能被禁止發(fā)送其它數(shù)據(jù),其中使用一個數(shù)據(jù)槽閾值數(shù)量來定義“幾乎已滿”。
從緩沖器j的讀出可以用下面的偽代碼定義function read(j)loop here until OK_to_read(j);read=buffer[rp[j]]rp[j]=next_address(rp[i],j]);其中在該模塊中,讀指針rp指向緩沖器中的要從中讀出數(shù)據(jù)的下一個可用位置。OK_to_read(j)函數(shù)是一個傳統(tǒng)的檢查函數(shù),它驗證已被寫入到緩沖器中的數(shù)據(jù)尚未被讀出。在該實施例中,讀出函數(shù)在其內(nèi)部循環(huán)中等待,直到OK_to_read函數(shù)指示在緩沖器中有數(shù)據(jù)可供讀出。
注意,在上面給出的例子中,由應(yīng)用程序向n個緩沖器中的一個緩沖器進行寫入或從中進行讀出只需一次函數(shù)調(diào)用,從而使應(yīng)用程序的復雜度保持最小。根據(jù)本發(fā)明,應(yīng)用程序僅將它對緩沖器的需求通知控制器150,隨后只需使用前面提及的緩沖器索引(上面例子中提到的“j”)把每個緩沖器分配到每個數(shù)據(jù)源—目的地路徑上。通過對相應(yīng)地索引的緩沖器執(zhí)行讀出或?qū)懭?,實現(xiàn)沿著各條路徑的每個讀出或?qū)懭?。如圖1中的虛線箭頭所示,數(shù)據(jù)傳輸?shù)穆窂綐俗R通常包含在被傳輸?shù)臄?shù)據(jù)內(nèi)部,例如通過在數(shù)據(jù)中使用目的地字段。在該例中,控制器150提供正確的映射給寫入控制邏輯130,以實現(xiàn)從數(shù)據(jù)中的目的地字段到與被標識的目的地相對應(yīng)的緩沖器索引的轉(zhuǎn)換。在這個實施例中,在應(yīng)用程序中無需包含顯式的“寫入”函數(shù)調(diào)用,當包含目的地字段的數(shù)據(jù)包到達時,寫入函數(shù)被隱含地調(diào)用,并且從數(shù)據(jù)本身自動計算出緩沖器索引。
同樣需要注意,在上面的例子中,無論是顯式的還是隱含的,每個讀出或?qū)懭氩僮鞫夹枰{(diào)用一次next_address函數(shù)。因此,next_address函數(shù)的復雜度將直接影響緩沖器管理系統(tǒng)100可達到的吞吐量。上述的next_address函數(shù)需要基于buffer_start和buffer_end數(shù)組的所索引的內(nèi)容進行條件測試、比較和賦值。而且,上述next_address函數(shù)需要存儲這些數(shù)組或類似結(jié)構(gòu)。本領(lǐng)域普通技術(shù)人員也認識到,上面的next_address函數(shù)并不特別適合在硬件中實施。
根據(jù)本發(fā)明,next_address函數(shù)被優(yōu)化,以刪除基于buffer_start和buffer_end數(shù)組的所索引的內(nèi)容而進行的條件測試、比較和賦值,從而提供一個特別適合于在硬件中實施的函數(shù)。在一個優(yōu)選實施例中,buffer_start和buffer_end數(shù)組同樣被刪除。
如上所述,依照本發(fā)明,n個相同大小的緩沖器中的每個緩沖器的大小都為“k”,k為2的整數(shù)冪(k=2Z)。定義大小為2M的緩沖存儲器200的開頭為地址0,并且假設(shè)n個相同大小的緩沖器中的每一個在緩沖存儲器200中是連續(xù)的(緩沖存儲器200起始于地址0,終止于地址2M-1),限制每一個緩沖器大小為k(k=2Z)具有下列優(yōu)點地址中的低Z位將對應(yīng)于每個緩沖器中一個唯一的位置(從0到2Z-1),并且地址中的高M-Z位將對應(yīng)于上述每個緩沖器的索引(從0到n-1)。
圖3是示例在根據(jù)本發(fā)明的在被分區(qū)劃分的緩沖器系統(tǒng)中使用的緩沖器編址方案的示例結(jié)構(gòu)。如上所述,假設(shè)緩沖存儲器200大小為2M,因此M位被用來唯一編址緩沖存儲器200中的每一個存儲器位置。在這M位中,需要N位來對多達2N個緩沖器進行索引。剩余的M-N位于是可用來在2N個緩沖器中的每一個緩沖器內(nèi)直接進行編址,因為如上所述,地址中的低Z(=M-N)位與大小為2Z的緩沖器中的一個唯一的位置相對應(yīng)。
應(yīng)用圖3中示例的結(jié)構(gòu),用于實現(xiàn)循環(huán)遞增函數(shù)的偽代碼如下所示function next_address(current_address,buffer_index)next_address=current_address+1next_address{upper N bits}=buffer_index;其中括號表示next_address的高N位被給定的buffer_index代替。
本領(lǐng)域普通技術(shù)人員會認識到,上述函數(shù)非常適合于在硬件中實施。第一個語句僅對應(yīng)于地址遞增(address-increment)函數(shù),其應(yīng)用于current_address的全部內(nèi)容。如果current_address處于緩沖存儲器200中的所分配的緩沖器空間的末端,則該遞增函數(shù)將引起對圖3結(jié)構(gòu)中的緩沖器索引字段(高N位)的‘進位’,如果缺少下一個語句的話,其可能導致next_address錯誤地與下一個相鄰緩沖器相關(guān)聯(lián)。但是,第二個語句是位重寫(bit-overwrite)函數(shù),它通過確保next_address與緩沖器索引字段中的正確的buffer_index一起被返回而自動糾正該錯誤關(guān)聯(lián)。在硬件中,可以用一次或兩次位屏蔽(bit-masking)操作來實現(xiàn)該語句。
本領(lǐng)域普通技術(shù)人員還會認識到,圖3的結(jié)構(gòu)還給每個相同大小的緩沖器提供最大的可用存儲器。如圖2所示,如果只需要1個緩沖器,則N等于0,并且整個緩沖存儲器200都被分配給這個緩沖器;如果需要2個緩沖器,則N等于1,并且每個緩沖器擁有緩沖存儲器200的一半大??;而如果需要4個緩沖器,則N等于2,并且每個緩沖器擁有緩沖存儲器200的四分之一大小,等等。
在一個典型的硬件實施例中,上述的“庫”元件將包含一個大的緩沖存儲器200。在包含少數(shù)數(shù)據(jù)源-數(shù)據(jù)路徑的應(yīng)用程序中,每一個數(shù)據(jù)源-數(shù)據(jù)路徑都被分配了該緩沖存儲器200的較大部分,因此潛在地提供了高吞吐率。而在包含多個數(shù)據(jù)源-數(shù)據(jù)路徑的應(yīng)用程序中,每一條路徑只被提供了該緩沖存儲器的較小部分,而吞吐量也就同樣被限制了,如同在通常本來就有許多數(shù)據(jù)源-數(shù)據(jù)路徑的應(yīng)用程序中那樣,但是該應(yīng)用程序仍將得到支持,而無需重新設(shè)計庫元件。
也就是說,通過將存儲器空間分區(qū)成大小為2的整數(shù)冪的大小相同的緩沖器,可以提供一個高效的緩沖器管理系統(tǒng),其中管理多個循環(huán)緩沖器所需的開銷以及對整個可用緩沖存儲器進行分區(qū)和分配的開銷都是最小的。
本領(lǐng)域普通技術(shù)人員會認識到,雖然緩沖器具有相同的物理大小,但應(yīng)用程序可以邏輯地將多個相同物理大小的緩沖器關(guān)聯(lián)到一個邏輯緩沖器,并且將這個較大的邏輯緩沖器分配到一個特定的數(shù)據(jù)源—目的地路徑上。例如,應(yīng)用程序可能把圖2中的緩沖存儲器200c的緩沖器B0、B1和B2分配給一條路徑,而把緩沖器B3分配給另一條路徑。通過對每個緩沖器進行輪叫寫入或讀出(B0,B1,B2,B0,B1等等),就可實現(xiàn)在第一條路徑上的數(shù)據(jù)傳輸??商鎿Q地,如果緩沖器比數(shù)據(jù)源-目的地路徑多,則應(yīng)用程序可以被配置為保持一個或多個“備用的”緩沖器,并且當特定的路徑由于突然的通信量驟增發(fā)生高級別的寫入錯誤時,可根據(jù)需要動態(tài)地分配這些備用緩沖器。用于利用本發(fā)明所提供的優(yōu)勢的這些和其他技術(shù)對于本領(lǐng)域普通技術(shù)人員來說是顯而易見的。
本發(fā)明的原理也可以通過使用不同大小的緩沖器體現(xiàn),雖然復雜度稍微增加。例如,考慮把緩沖存儲器200分區(qū)為3個緩沖器。在將存儲器200c分區(qū)為4個緩沖器的例子中,需要用兩位來做緩沖器索引,即使用組合00,01,10和11。其中每一組合唯一地標識了200c的其中一個緩沖器B0、B1、B2和B3。而3個緩沖器同樣要用兩位來做緩沖器索引,但是使用上面詳細描述的算法,其中一個索引比位組合將不被使用,這樣,其中有一個分區(qū)就無法使用。
但是,在這個替換實施例中,緩沖器索引可以與多個位組合相對應(yīng)。換句話說,例如緩沖器B0可能對應(yīng)于索引位組合00,緩沖器B1對應(yīng)于索引位組合01,緩沖器B2可能對應(yīng)于索引位組合10或11。這樣,緩沖器B0和B1各被分配了緩沖存儲器200的四分之一,而緩沖器B2將被分配予緩沖存儲器200的一半。這種索引位組合的多重分配可以通過引入現(xiàn)有技術(shù)中公知的“無關(guān)(don’t care)”位屏蔽(bit-masking)操作來實現(xiàn)。也就是說,使用符號“-”來標識“無關(guān)”位,這樣,將上面給出的索引位分配規(guī)定為B0=00,B1=01,B2=1-。使用這個規(guī)定,把上面的將緩沖器索引存儲入next_address的高N位中的位分配語句修改成只替換所規(guī)定的位,而不管“無關(guān)”位。下列的示例偽代碼示例了這種技術(shù),其用于對緩沖器管理系統(tǒng)的硬件描述,該系統(tǒng)允許將具有8位(0-7)地址空間的緩沖存儲器分區(qū)為1、2、3或4個緩沖器地址遞增
case(no.of buffers)1ptr[7:0]+1;2case(buffer index)0ptr0[7:0]<={0,ptr0[6:0]+1};1ptr1[7:0]<={1,ptr1[6:0]+1};endcase3case(buffer index)0ptr0[7:0]<={00,ptr0[5:0]+1};1ptr1[7:0]<={01,ptr1[5:0]+1};2ptr2[7:0]<={1,ptr2[6:0]+1};endcase4case(buffer index)0ptr0[7:0]<={00,ptr0[5:0]+1};1ptr1[7:0]<={01,ptr1[5:0]+1};2ptr2[7:0]<={10,ptr2[5:0]+1};3ptr3[7:0]<={11,ptr3[5,0]+1};endcaseendcase.
在這個偽代碼示例中,“<=”符號表示符號右邊的內(nèi)容被傳送到符號左邊的寄存器中,花括號表示面向位(bit-oriented)的操作,其中第一個參數(shù)表示各最高有效位接收到的值,第二個參數(shù)表示各最低有效位接收到的值。
在上面的偽代碼的3個緩沖器的情況中,當指向緩沖器B0的指針(ptr0)遞增時,指針的高兩位被強置為00;當指向緩沖器B1的指針(ptr1)遞增時,指針的高兩位被強置為01;但是當指向緩沖器B2的指針(ptr2)遞增時,只有指針的最高位被強置為1,第二有效位被面向位的操作的第二個參數(shù)控制。也就是說,指向緩沖器B2的指針(ptr2)的低7位(從第6位到第0位)行進通過一個普通的計數(shù)循環(huán),而只有指向B0和B1的指針(ptr0和ptr1)的低6位(從第5位到第0位)行進通過一個普通計數(shù)循環(huán)增加?!盁o關(guān)”索引位的其它組合可以被容易地定義來提供不相等的緩沖器大小。例如,一組索引(00-,01-,1-0,101,111)對應(yīng)于整個緩沖存儲器200的(1/4,1/4,1/4,1/8,1/8)大小。
以上只示例了本發(fā)明的原理。但是,本領(lǐng)域普通技術(shù)人員會理解,能夠設(shè)計出各種各樣的安排,盡管沒有在此明確地描述或顯示,但是所述安排也體現(xiàn)本發(fā)明的原理從而落在下面的權(quán)利要求書的精神和范圍內(nèi)。
權(quán)利要求
1.一種緩沖器管理系統(tǒng)(100),包含緩沖存儲器(200)和適于耦合到緩沖存儲器(200)的控制器(150),該控制器被配置為根據(jù)分區(qū)參數(shù)將緩沖存儲器(200)分區(qū)為多個獨立緩沖器(220-223),所述分區(qū)參數(shù)確定所述多個緩沖器的數(shù)量,其中所述多個獨立緩沖器(220-223)中的每一個的大小都為2的整數(shù)冪,以便于對緩沖器進行循環(huán)訪問。
2.如權(quán)利要求1所述的緩沖器管理系統(tǒng)(100),其中控制器(150)被配置為包含一個循環(huán)遞增函數(shù),該循環(huán)遞增函數(shù)僅需一個地址遞增函數(shù)和一個位重寫函數(shù),以實現(xiàn)指向所述多個獨立緩沖器(220-223)中的所選定緩沖器的指針的循環(huán)遞增。
3.如權(quán)利要求1所述的緩沖器管理系統(tǒng)(100),其中所述多個獨立緩沖器(220-223)的緩沖器大小是相等的。
4.如權(quán)利要求1所述的緩沖器管理系統(tǒng)(100),其中控制器(150)被進一步配置為在多個數(shù)據(jù)源-目的地路徑之間分配所述多個獨立緩沖器(220-223)。
5.如權(quán)利要求1所述的緩沖器管理系統(tǒng)(100),其中控制器(150)被進一步配置成為一個或多個應(yīng)用程序提供寫入接口(130)和讀出接口(140),寫入接口(130)只需要將被存儲的數(shù)據(jù)的標識和所述多個獨立緩沖器(220-223)中的用來存儲該數(shù)據(jù)的選定緩沖器的標識,讀出接口(140)只需要該選定緩沖器的標識。
6.如權(quán)利要求1所述的緩沖器管理系統(tǒng)(100),其中緩沖存儲器(200)由M位地址編址,所述多個獨立緩沖器(220-223)中的每個緩沖器由N位索引來索引,該索引形成M位地址中的一組N個最高有效位,每一個緩沖器的大小至少為2M-N。
7.一種管理緩沖存儲器(200)的方法,包含接收一個分區(qū)參數(shù),把存儲器緩沖器分區(qū)為多個獨立緩沖器(220-223),其中所述多個緩沖器的數(shù)量由分區(qū)參數(shù)確定,并且所述多個獨立緩沖器(220-223)中的每個緩沖器的大小都為2的整數(shù)冪,從而便于對每個緩沖器進行循環(huán)編址。
8.如權(quán)利要求7所述的方法,其中所述多個獨立緩沖器(220-223)的大小是相等的。
9.如權(quán)利要求7所述的方法,進一步包含對每一個緩沖器提供循環(huán)編址,其中循環(huán)編址包含遞增緩沖存儲器(200)的地址,并重寫緩沖存儲器(200)中的對應(yīng)于該緩沖器索引的選定地址位。
10.如權(quán)利要求7所述的方法,進一步包含提供寫入接口(130),該寫入接口只需要將被存儲的數(shù)據(jù)的標識和所述多個獨立緩沖器(220-223)中的用來存儲該數(shù)據(jù)的選定緩沖器的標識,并提供讀出接口(140),該讀出接口只需要該選定緩沖器的標識。
11.如權(quán)利要求7所述的方法,其中緩沖存儲器(200)由M位地址編址,所述多個獨立緩沖器(220-223)中的每個緩沖器由N位索引來索引,該索引形成M位地址中的一組N個最高有效位,每一個緩沖器的大小至少為2M-N。
12.一種集成電路,包含緩沖存儲器(200)和控制器(150),該控制器包含寫入控制邏輯(130)和讀出控制邏輯(140),其中控制器(150)被配置為根據(jù)被提供給它的分區(qū)參數(shù)把緩沖存儲器(200)分區(qū)為多個緩沖器(220-223),所述多個緩沖器(220-223)中的每個緩沖器的大小都為2的整數(shù)冪,并且寫入控制邏輯(130)和讀出控制邏輯(140)各被配置為便于將每一個緩沖器用作循環(huán)緩沖器。
13.如權(quán)利要求12所述的集成電路,其中所述多個緩沖器(220-223)的大小是相等的。
14.如權(quán)利要求12所述的集成電路,其中將每個緩沖器用作循環(huán)緩沖器需要循環(huán)編址,并且控制器(150)被配置為通過一個遞增器和一個位屏蔽器來實現(xiàn)循環(huán)編址,該遞增器被配置成遞增緩沖存儲器(200)的地址,并且該位屏蔽器被配置為重寫對應(yīng)于緩沖存儲器(200)中的緩沖器索引的選定地址位。
15.如權(quán)利要求12所述的集成電路,其中寫入控制邏輯(130)僅根據(jù)數(shù)據(jù)值的標識和選定緩沖器的標識來將數(shù)據(jù)值存儲到所述多個緩沖器(220-223)中的選定緩沖器,而讀出控制邏輯(140)則僅根據(jù)選定緩沖器的標識來獲取數(shù)據(jù)值。
16.如權(quán)利要求12所述的集成電路,其中緩沖存儲器(200)用M位地址編址,所述多個獨立緩沖器(220-223)中的每個緩沖器由N位索引來索引,該索引形成M位地址中的一組N個最高有效位,每一個緩沖器的大小至少為2M-N。
全文摘要
一種緩沖器管理系統(tǒng)(100),它將整個存儲器空間(200)分區(qū)成可編程數(shù)量的大小基本一致的緩沖器(220-223)。應(yīng)用程序?qū)⑺杈彌_器的數(shù)量傳送給緩沖器管理系統(tǒng)(200),然后在由應(yīng)用程序所使用的各數(shù)據(jù)傳輸路徑之間分配這些緩沖器??蛇x地,多個大小一致的緩沖器可以合并形成單個邏輯緩沖器。通過將整個存儲器空間(200)分區(qū)成大小一致的緩沖器(220-223),管理多個緩沖器所需的開銷被最小化。通過提供所選數(shù)量的被管理緩沖器給應(yīng)用程序,應(yīng)用程序就可以根據(jù)需要分配這些緩沖器,而不用去關(guān)心緩沖器管理的細節(jié)。
文檔編號G06F5/06GK1726457SQ200380105793
公開日2006年1月25日 申請日期2003年12月9日 優(yōu)先權(quán)日2002年12月12日
發(fā)明者S·杜特塔 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
江安县| 吉安市| 呈贡县| 富锦市| 阜阳市| 永丰县| 渑池县| 宜春市| 罗江县| 咸阳市| 漳平市| 天峨县| 报价| 新沂市| 重庆市| 孝义市| 英山县| 辉县市| 越西县| 博罗县| 宝坻区| 竹山县| 鸡西市| 班戈县| 鄂温| 贵阳市| 平阳县| 隆子县| 丽江市| 莱芜市| 图们市| 玉林市| 新野县| 保德县| 兰坪| 杭州市| 莆田市| 衡南县| 隆德县| 新疆| 营山县|