亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分布式存儲器控制和帶寬優(yōu)化的制作方法

文檔序號:6641642閱讀:196來源:國知局
專利名稱:分布式存儲器控制和帶寬優(yōu)化的制作方法
背景技術(shù)
本發(fā)明涉及并行處理器的存儲系統(tǒng)。
并行處理是處理計算過程中并發(fā)事件的信息的有效形式。并行處理同順序處理相比,需要在計算機(jī)中同時執(zhí)行許多程序。在并行處理器的范疇中,并行性包括在同一時刻做超過一件的事情。不像其中所有的任務(wù)都在一個工作站按順序完成的串行模式,或其中任務(wù)在特殊化的工作站通過并行處理完成的流水線機(jī)器,并行處理情況下提供了每一個都能完成所有任務(wù)的多個工作站。也就是說,通常,所有或多個工作站在問題的相同或共同基礎(chǔ)上同時且獨立地工作。某些問題適合通過施加并行處理來解決。
并行處理能在存儲系統(tǒng)上形成約束,特別當(dāng)不同的設(shè)備能從相同的存儲系統(tǒng)寫或讀的時候。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,隨機(jī)存取存儲器的控制器包括控制邏輯,包括檢測未完成的存儲器訪問的狀態(tài)以從存儲器訪問的多個隊列之一選擇存儲器訪問的判優(yōu)器??刂七壿嫯?dāng)裝置允許對鄰近的存儲器訪問進(jìn)行特殊處理時,響應(yīng)存儲器訪問鏈接位。


圖1是使用以硬件為基礎(chǔ)的多線路處理器的通信系統(tǒng)的框圖。
圖2是圖1的以硬件為基礎(chǔ)的多線路處理器的詳細(xì)的框圖。
圖3是圖1和圖2的以硬件為基礎(chǔ)的多線路處理器中使用的微引擎功能單元的框圖。
圖4是在以硬件為基礎(chǔ)的多線路處理器中使用的用于提高的帶寬操作的內(nèi)存控制器的框圖。
圖4A是表示圖4的SDRAM控制器中的判優(yōu)策略的流程圖。
發(fā)明描述參考圖1,通信系統(tǒng)10包括并行的、以硬件為基礎(chǔ)的多線路處理器12。以硬件為基礎(chǔ)的多線路處理器12與諸如外圍部件互連(PCI)總線14之類的總線、存儲器系統(tǒng)16和第二總線18相連。系統(tǒng)10對能被分解成并行的子任務(wù)或功能的任務(wù)特別有用。以硬件為基礎(chǔ)的多線路處理器12對跟帶寬有關(guān)而跟等待時間無關(guān)的任務(wù)特別有用。以硬件為基礎(chǔ)的多線路處理器12具有多重微引擎22,每一個微引擎均帶多重的能同時有效且能在一項任務(wù)上獨立工作的硬件控制的線路。
以硬件為基礎(chǔ)的多線路處理器12還包括中央控制器20,其協(xié)助負(fù)載以硬件為基礎(chǔ)的多線路處理器12的其它資源的微碼控制,并完成其它通用計算機(jī)類型的功能,諸如處理協(xié)議、異常以及在諸如邊界條件之類的微引擎終止數(shù)據(jù)包以獲取更詳細(xì)處理的條件下對分組處理的額外支持。在一實施例中,處理器20是以StrongArm(Arm是英國ARM有限公司的商標(biāo))為基礎(chǔ)的結(jié)構(gòu)。通用微處理器20具有操作系統(tǒng)。通過操作系統(tǒng),處理器20能調(diào)用功能以在微引擎22a-22f上操作。處理器20能使用任何支持的操作系統(tǒng),較佳為實時操作系統(tǒng)。對于作為Strong Arm結(jié)構(gòu)使用的核心處理器,可使用諸如微軟(Microsoft)NT實時、VXWorks和uCUS以及在互聯(lián)網(wǎng)上提供的免費軟件操作系統(tǒng)之類的操作系統(tǒng)。
以硬件為基礎(chǔ)的多線路處理器12還包括多個功能微引擎22a-22f。每一個功能性微引擎(微引擎)22a-22f都在硬件上保持多個程序計數(shù)器并與程序計數(shù)器相關(guān)的狀態(tài)。相應(yīng)的多個系列的線路能有效地同時在22a-22f中的每一個微引擎上有效,同時在任何一個時刻只有一條線路在進(jìn)行實際操作。
在一個實施例中,如圖所示,有六個微引擎22a-22f。微引擎22a-22f有處理四個硬件線路的能力。六個微引擎22a-22f用包括存儲系統(tǒng)16與總線接口24和28的共享資源進(jìn)行操作。存儲系統(tǒng)16包括同步動態(tài)隨機(jī)存取存儲器(SDRAM)控制器26a和靜態(tài)隨機(jī)存取存儲器(SRAM)控制器26b。SDRAM存儲器16a和SDRAM控制器26a通常用于處理大容量數(shù)據(jù),比如,處理網(wǎng)絡(luò)數(shù)據(jù)包的網(wǎng)絡(luò)有效負(fù)載。SRAM控制器26b和SRAM存儲器16b用于低等待時間、快速存取任務(wù)的網(wǎng)絡(luò)應(yīng)用,比如,存取檢索表、核心處理器20的存儲器,等等。
六個微引擎22a-22f以數(shù)據(jù)的特性為基礎(chǔ)對SDRAM16a或者SRAM16b進(jìn)行存取。從而,低等待時間、低帶寬的數(shù)據(jù)被存入SRAM并從中提取,而等待時間并非如此重要的帶寬較高的數(shù)據(jù)被存入SDRAM并從中提取。微引擎22a-22f能執(zhí)行對SDRAM控制器26a或SRAM控制器16b的存儲器訪問指令。
硬件多線路操作的優(yōu)點可通過SRAM或SDRAM存儲器的存取來解釋。舉例來說,來自微引擎、通過線路0請求的SRAM存取將造成SRAM控制器26b引發(fā)對SRAM存儲器16b的存取。SRAM控制器控制SRAM總線的判優(yōu),對SRAM16b進(jìn)行存取,從SRAM16b提取數(shù)據(jù),以及將數(shù)據(jù)返回到需求微引擎22a-22b。在SRAM的存取過程中,如果微引擎比如22a只有一個可操作的單獨線路,該引擎將靜止直到數(shù)據(jù)從SRAM返回。通過在22a-22f中每一個微引擎內(nèi)使用硬件關(guān)聯(lián)交換技術(shù),硬件關(guān)聯(lián)交換技術(shù)使帶獨特程序計數(shù)器的其它關(guān)聯(lián)在那相同的微引擎中執(zhí)行。由此,另外一條線路,比如線路1能運行,同時第一條線路,比如線路0正在等待讀取數(shù)據(jù)的返回。在執(zhí)行過程中,線路1可對SDRAM存儲器16a進(jìn)行存取。當(dāng)線路1在SDRAM單元上操作,且線路0在SRAM單元上操作時,一條新的線路,比如線路2現(xiàn)在能夠在微引擎22a內(nèi)操作。線路2能夠操作一定的時間直到它需要對存儲器進(jìn)行存取或完成某些其它的長等待時間的操作,比如對總線接口進(jìn)行存取。因此,在同時,處理器12可有憑借一個微引擎22a完成或操作的總線操作、SRAM操作和SDRAM操作,以及具有供應(yīng)給在數(shù)據(jù)通道處理更多操作的另一條線路。
硬件關(guān)聯(lián)交換技術(shù)同樣與任務(wù)同步完成。舉例來說,兩條線路可選中相同的共享資源,比如SRAM。這些功能分離單元,比如FBUS接口28、SRAM控制器26a和SDRAM控制器26b,當(dāng)它們完成來自于一個微引擎線路關(guān)聯(lián)的所請求的任務(wù)時,每一個單元都會返回報告操作完成的標(biāo)志信號。當(dāng)微引擎接收到標(biāo)志時,微引擎能檢測到該開啟哪一條線路。
以硬件為基礎(chǔ)的多線路處理器12應(yīng)用的一個例子是用作網(wǎng)絡(luò)處理器。作為網(wǎng)絡(luò)處理器時,以硬件為基礎(chǔ)的多線路處理器12與諸如媒體控制設(shè)備,比如一臺10/100BaseT的Octal MAC13a或一臺Gigabit Ethernet設(shè)備13b之類的網(wǎng)絡(luò)設(shè)備對接??偟膩碚f,作為網(wǎng)絡(luò)處理器時,以硬件為基礎(chǔ)的多線路處理器12能與任何類型的通信設(shè)備或接收/發(fā)送大量數(shù)據(jù)的通信接口對接。在網(wǎng)絡(luò)應(yīng)用中運行的通信系統(tǒng)10可接收到多個來自設(shè)備13a和13b的網(wǎng)絡(luò)數(shù)據(jù)包,并且可以并行的方式處理那些數(shù)據(jù)包。配備了以硬件為基礎(chǔ)的多線路處理器12后,每個網(wǎng)絡(luò)數(shù)據(jù)包可獨立地被處理。
使用處理器12的另一個例子是附言處理器的印刷機(jī)械或作為存儲子系統(tǒng),比如RAID磁盤存儲器的處理器。進(jìn)一步的使用是作為匹配引擎。舉例來說,在安全工業(yè)中,電子貿(mào)易的出現(xiàn)需要使用電子匹配引擎來匹配購買者與銷售者之間的訂單。這些以及其它并行型任務(wù)可在系統(tǒng)10上完成。
處理器12包括將處理器同第二總線18連接的總線接口28。在一個實施例中的總線接口28將處理器12同稱之為FBUS的18(FIFO總線)相連。FBUS接口28負(fù)責(zé)控制并將處理器12同F(xiàn)BUS18相連。FBUS18是用于對接媒體訪問控制器(MAC)設(shè)備的64位寬的FIFO總線。
處理器12包括第二接口,比如將其它屬于PCI14總線的系統(tǒng)元件同處理器12連接的PCI總線接口24。PCI總線接口24為存儲器16,比如SDRAM存儲器16a提供高速數(shù)據(jù)通道24a。憑借這個通道,數(shù)據(jù)可從SDRAM16a通過PCI總線14,依靠直接存儲器存取(DMA)轉(zhuǎn)移迅速被除去。以硬件為基礎(chǔ)的多線路處理器12支持圖像轉(zhuǎn)移。以硬件為基礎(chǔ)的多線路處理器12可使用多個DMA通道,因此,如果DMA轉(zhuǎn)移的一個目標(biāo)處于忙碌狀態(tài),另一個DMA通道可代替PCI總線將信息傳送至另一個目標(biāo)以維持處理器12的高效率。另外,PCI總線接口24支持目標(biāo)和主要操作。目標(biāo)操作是其中在總線14上的次要設(shè)備通過作為目標(biāo)操作次要的讀寫操作對SDRAM進(jìn)行存取的操作。在主要操作中,處理器核心20向PCI接口24直接發(fā)送數(shù)據(jù)或直接從PCI接口24接收數(shù)據(jù)。
每一個功能性單元均與一個或更多內(nèi)部總線相連。如以下所描述的,內(nèi)部總線是兩路32位的總線(也就是,一路總線用于讀操作,一路用于寫操作)。以硬件為基礎(chǔ)的多線路處理器12同樣被如此構(gòu)造,使處理器12中的內(nèi)部總線的帶寬量超過與處理器12連接的外部總線的帶寬。處理器12包括內(nèi)部核心處理器總線32,比如將處理器核心20同存儲控制器26a和26c相連并同下述的ASB譯碼器30相連的ASB總線(高級系統(tǒng)總線)。ASB總線是同Strong Arm處理器核心一起使用的稱之為AMBA總線的子集。處理器12還包括將微引擎單元同SRAM控制器16b、ASB譯碼器30以及FBUS接口28相連的專用總線34。存儲器總線38將存儲控制器26a和26b與總線接口24和28以及包括用于引導(dǎo)操作等的快擦寫只讀存儲器16c的存儲器系統(tǒng)16相連。
參考圖2,22a-22f中的每一個微引擎包括檢查標(biāo)志以判定在其上進(jìn)行操作的可用線路的判優(yōu)器。22a-22f中任一的微引擎的任何線路能夠?qū)DRAM控制器26a、SDRAM控制器26b或FBUS接口28進(jìn)行存取。每一個存儲控制器26a和26b包括多個存儲未完成存儲器訪問請求的隊列。隊列保持存儲器訪問的次序或排列存儲器訪問以優(yōu)化存儲器的帶寬。舉例來說,如果線路0同線路1不相關(guān)或沒有關(guān)系,沒有理由線路1和線路0不能混亂地完成其SRAM單元的存儲器訪問。微引擎22a-22f對存儲控制器26a和26b發(fā)出存儲器訪問的請求。微引擎22a-22f用足夠的存儲器訪問操作將存儲器子系統(tǒng)26a和26b溢出,使存儲器子系統(tǒng)26a和26b成為處理器12操作的瓶頸。
如果存儲器子系統(tǒng)16被在性質(zhì)上獨立的存儲器請求溢出,則處理器12能完成存儲器訪問分類。存儲器訪問分類提高了可達(dá)到的存儲器帶寬。存儲器訪問分類,如下所述,減少了停滯時間或訪問SRAM時發(fā)生的磁泡。有了對SRAM的存儲器訪問,讀寫操作之間的信號線上的轉(zhuǎn)換電流的方向產(chǎn)生了磁泡或等待電流在連接SRAM16b和SRAM控制器26b的導(dǎo)體上穩(wěn)定的停滯時間。
也就是說,驅(qū)動總線上電流的驅(qū)動器需要在改變狀態(tài)前穩(wěn)定下來。從而,讀操作后跟寫操作的重復(fù)循環(huán)能降低帶寬的峰值。存儲器訪問分類允許處理器12組織引導(dǎo)以進(jìn)行這樣的存儲,使長串的讀操作之后可跟長串的寫操作。這種做法可被用來最小化流水線中的停滯時間以有效地取得更接近于可供應(yīng)的最大帶寬。引導(dǎo)分類幫助維持并行硬件關(guān)聯(lián)線路。
SDRAM存儲器訪問分類允許隱藏從一個存儲單元到另一個存儲單元的預(yù)先充電。特別地,如果SDRAM存儲器系統(tǒng)16a被編組成一個奇數(shù)存儲單元和一個偶數(shù)存儲單元,在處理器在奇數(shù)存儲單元上操作的同時,存儲控制器26a能開始對偶數(shù)存儲單元進(jìn)行預(yù)先充電。如果存儲器訪問在奇數(shù)存儲單元和偶數(shù)存儲單元之間交替,則預(yù)先充電是可行的。通過排序存儲器訪問交替訪問相對的存儲單元,處理器12最大限度地利用了SDRAM帶寬。另外,可使用其它的優(yōu)化。比如說,操作可被合并且在存儲器訪問前被合并的合并優(yōu)化,打開了通過檢查地址已打開的存儲器頁面不能重新打開的頁面優(yōu)化和如以下所述的存儲器鏈鎖,以及可使用刷新機(jī)器。
FBUS接口28同服務(wù)被批準(zhǔn)時指示的中斷標(biāo)志一起,支持MAC設(shè)備所支持的每一個口的傳送和接收標(biāo)志。FBUS接口28還包括完成將要從FBUS18到來的數(shù)據(jù)包的表頭操作處理的控制器28a??刂破?8a抽取數(shù)據(jù)包的表頭并在SRAM中完成微程序控制的資源/目標(biāo)地址/協(xié)議的散列查找(用于地址修正)。如果散列不能成功解決,就將數(shù)據(jù)包表頭送至處理器核心20進(jìn)行附加的處理。FBUS接口28支持以下的內(nèi)部數(shù)據(jù)處理FBUS單元(共享的總線SRAM)去至/來自微引擎FBUS單元(通過專用總線) 從SDRAM單元寫操作FBUS單元(通過M總線) 讀至SDRAMFBUS18是標(biāo)準(zhǔn)工業(yè)總線,包括數(shù)據(jù)總線(比如64位寬)和地址的邊頻帶控制以及讀/寫控制。FBUS接口28具備了使用一系列輸入和輸出FIFO的29a-29b來輸入大量數(shù)據(jù)的能力。通過FIFO 29a-29b,微引擎22a-22f從SDRAM控制器26a提取數(shù)據(jù)或命令SDRAM控制器26a將數(shù)據(jù),從其中的數(shù)據(jù)來自總線18上設(shè)備的接收FIFO,送入FBUS接口28。數(shù)據(jù)可通過存儲控制器26a以直接存儲器存取的方式被送至SDRAM存儲器16a。類似地,微引擎能將數(shù)據(jù)從SDRAM26a移至接口28,通過FUBS接口28輸出至FBUS18。
數(shù)據(jù)功能在微引擎中分配。通過指令請求與SRAM26a、SDRAM26b和FUBS28連接。指令請求可以是存儲器請求或FBUS請求。舉例來說,指令請求能夠?qū)?shù)據(jù)從位于微引擎22a中的寄存器移至共享資源,比如SDRAM區(qū)、SRAM區(qū)、瞬時存儲器或某些MAC地址。指令被送出至每個功能性單元和共享資源。然而,共享資源不需要維持局部的數(shù)據(jù)緩沖。相反,共享資源可對位于微引擎內(nèi)的分配數(shù)據(jù)進(jìn)行存取。這樣做使微引擎22a-22f具有對局部數(shù)據(jù)的訪問,而不是對總線上訪問和對總線爭用的風(fēng)險的判優(yōu)。具有這樣的特征,有0周期停止用于等待微引擎22a-22f內(nèi)部的數(shù)據(jù)。
數(shù)據(jù)總線,比如說ASB總線30、SRAM總線34和與這些共享資源——比如存儲控制器26a和26b——相結(jié)合的SDRAM總線38,有充足的帶寬,于是不存在內(nèi)部瓶頸。因而,為了阻止瓶頸,處理器12對帶寬有要求,其中,每一個功能性單元配備至少內(nèi)部總線最大帶寬兩倍的帶寬。作為例子,SDRAM能在83MHz運行64位寬的總線。SRAM數(shù)據(jù)總線可具有分離的讀操作總線和寫操作總線,例如,可以是在166MHz運行的32位寬的讀操作總線和在166MHz運行的32位寬的寫操作總線。實質(zhì)上,那就是有效地為SDRAM帶寬兩倍的在166MHz運行的64位。
核心處理器20還能夠訪問共享資源。核心處理器20具有SDRAM控制器26a到總線接口24再通過總線32到SRAM控制器26b的直接通信。然而,為了訪問微引擎22a-22f并轉(zhuǎn)移位于任何微引擎22a-22f的寄存器,核心處理器20通過總線34之上的ASB譯碼器30訪問微引擎22a-22f。ASB譯碼器30在物理上可屬于FBUS接口28內(nèi),但在邏輯上是截然不同的。ASB譯碼器30完成FUBS微引擎轉(zhuǎn)移寄存器位置同核心處理器(即,ASB總線)地址之間的地址譯碼,這樣一來,核心處理器20可訪問屬于微引擎22a-22f的寄存器。
參考圖3,顯示了微引擎22a-22f的一個典型的例子,比如微引擎22f。微引擎包括控制存儲器70,其在實施中,在這里包括32位的1024個字的RAM。RAM存儲微程序。微程序可被核心處理器20裝載。微引擎22f同樣包括控制器邏輯72??刂破鬟壿嫲ㄖ噶罱獯a器73和程序計數(shù)器(PC)單元72a-72d。四個微程序計數(shù)器72a-72d保留在硬件中。微引擎22f還包括關(guān)聯(lián)事件轉(zhuǎn)換邏輯74。關(guān)聯(lián)事件邏輯74從每一個共享資源,例如SRAM26a、SDRAM26b或處理器核心20、控制寄存器和狀態(tài)寄存器等等,接收信息(例如,SEQ_#EVENT_RESPONSE;FBI_EVENT_RESPONSE;SRAM_EVENT_RESPONSE;SDRAM_EVENT_RESPONSE;和ASB_EVENT_RESPONSE)。這些信息提供了請求的功能是否已完成的信息?;诰€路請求的功能是否已完成并發(fā)出完成的信號,線路需要等待那個完成的信號,而且如果線路可以操作,那么線路被安排在可提供的線路列表中(未顯示)。微引擎22f能夠具有的線路最大值,舉例來說,4條線路。
除了執(zhí)行線路本地化的事件信號外,微引擎22使用全球化的狀態(tài)信號指示。有了狀態(tài)信號指示,執(zhí)行線路可將信號狀態(tài)傳播給所有的微引擎22。接收現(xiàn)有請求的信號,以及任何和所有微引擎中的線路可在這些狀態(tài)信號指示上轉(zhuǎn)移。這些狀態(tài)信號指示可用于檢測資源的有效性或資源是否應(yīng)該用來服務(wù)。
關(guān)聯(lián)事件邏輯74對四(4)條線路具有判優(yōu)性。在實施例中,判優(yōu)是循環(huán)裝置??墒褂闷渌▋?yōu)先隊列或加權(quán)公平隊列的技術(shù)。微引擎22f還包括執(zhí)行盒(EBOX)數(shù)據(jù)通道76,其包括算術(shù)邏輯單元76a和通用寄存器組76b。算術(shù)邏輯單元76a完成算術(shù)和邏輯功能以及轉(zhuǎn)換功能。寄存器組76b具有相對大數(shù)目的通用寄存器。在該實施中,在第一存儲單元——存儲單元A中有64個通用寄存器,在第二存儲單元——存儲單元B中有64個通用寄存器。通用寄存器如將要描述的,被開了視窗,使得它們可以相對尋址和絕對尋址。
微引擎22f還包括寫轉(zhuǎn)移寄存器棧78和讀轉(zhuǎn)移寄存器棧80。這些寄存器也同樣被開了視窗,使得它們能相對尋址和絕對尋址。寫轉(zhuǎn)移寄存器棧78,寫入資源的數(shù)據(jù)位于其中。類似地,讀寄存器棧80中位于從共享資源返回的數(shù)據(jù)。在數(shù)據(jù)到來之后或與數(shù)據(jù)同時到來的來自共享資源(例如SRAM控制器26a、SDRAM控制器26b或核心處理器20)的事件信號將被提供給關(guān)聯(lián)事件判優(yōu)器74,該判優(yōu)器隨后將發(fā)出信號給線路,告知數(shù)據(jù)有效或以發(fā)送。傳送寄存器存儲單元78和80都通過數(shù)據(jù)通道與執(zhí)行盒76(EBOX)相連。在實施中,讀轉(zhuǎn)移寄存器有64個寄存器,寫轉(zhuǎn)移寄存器有64個寄存器。
參考圖4,SDRAM存儲控制器26a包括存儲器訪問隊列90,其中,存儲器訪問請求來自不同的微引擎22a-22f。存儲控制器26a包括判優(yōu)器(服務(wù)有優(yōu)先權(quán)的機(jī)器)91,該判優(yōu)器選擇下一個給任何功能性單元發(fā)出命令的微引擎引導(dǎo)請求。已知一個微引擎正提供引導(dǎo)請求,則引導(dǎo)請求將通過SDRAM控制器26a內(nèi)部的地址和指令隊列90來到。如果引導(dǎo)請求具有“優(yōu)化的MEM位”組,來到的引導(dǎo)請求將被存入偶數(shù)存儲單元隊列90a或奇數(shù)存儲單元隊列90b。如果存儲器訪問請求不具有存儲器優(yōu)化位組,缺省的將被歸入順序隊列90c。SDRAM控制器26是在FBUS接口28、核心處理器20和PCI接口24中共享的資源。SDRAM控制器26還維持完成讀_修改_寫原子操作的狀態(tài)機(jī)器。SDRAM控制器26還完成來自SDRAM的數(shù)據(jù)請求的字節(jié)排列。
順序隊列90c維持來自微引擎的引導(dǎo)請求的順序。有了一系列的奇數(shù)和偶數(shù)存儲單元引導(dǎo),可請求,只有當(dāng)奇數(shù)存儲單元和偶數(shù)存儲單元的一序列存儲器訪問都完成時,才返回信號。如果微引擎22f將存儲器訪問分成奇數(shù)存儲單元引導(dǎo)和偶數(shù)存儲單元引導(dǎo),而且其中一個存儲單元,比如說,偶數(shù)存儲單元在奇數(shù)存儲單元之前耗盡了存儲器訪問,但信號被確立在最后一個偶數(shù)引導(dǎo)之上,可以想像存儲控制器26a會向微引擎返回信號,告知存儲器訪問已完成,盡管奇數(shù)存儲單元引導(dǎo)并未進(jìn)行。這種問題的出現(xiàn)將引起相干性問題。通過提供順序隊列90c來阻止這種情況的發(fā)生,該隊列允許具有多重存儲器訪問的微引擎,在未完成的存儲器訪問中,只有其最后的存儲器訪問需要完成的信號。
SDRAM控制器26a還包括高優(yōu)先權(quán)隊列90d。在高優(yōu)先權(quán)隊列90d中,從一個微引擎到來的存儲器訪問直接進(jìn)入高優(yōu)先權(quán)的隊列并以高于其它隊列中的其它存儲器訪問的優(yōu)先權(quán)操作。所有這些隊列,偶數(shù)存儲單元隊列90a、奇數(shù)存儲單元隊列90b、順序隊列90c和高優(yōu)先權(quán)隊列在單一的RAM結(jié)構(gòu)內(nèi)執(zhí)行,該結(jié)構(gòu)在邏輯上被分隔成四個不同的窗口,每個窗口具有其自己的頭指針和尾指針。由于填補操作和消耗操作只是單一的輸入和輸出,所以它們可被放入相同的RAM結(jié)構(gòu)以提高RAM結(jié)構(gòu)的密度。
SDRAM控制器26a還包括核心總線接口邏輯,即ASB總線92。ASB總線接口邏輯92將核心處理器20同SDRAM控制器26a連接。ASB總線是包括32位數(shù)據(jù)通道和28位地址通道的總線。數(shù)據(jù)通過MEM ASB數(shù)據(jù)設(shè)備98,例如緩沖器,存入存儲器或從存儲器提取。MEM ASB數(shù)據(jù)設(shè)備98是寫數(shù)據(jù)的隊列。如果通過ASB接口92有從核心處理器20來的數(shù)據(jù),那么數(shù)據(jù)可被存入MEM ASB設(shè)備98并隨后通過SDRAM接口110從MEM ASB設(shè)備98移至SDRAM存儲器16a。雖然未顯示,但對于讀操作可提供相同的隊列結(jié)構(gòu)。SDRAM控制器26a還包括使來自微引擎的數(shù)據(jù)出棧的引擎97和PCI總線。
附加的隊列包括PCI地址隊列94和保持一定數(shù)目請求的ASB讀/寫隊列96。存儲器請求通過多路復(fù)用器106被送至SDRAM接口110。多路復(fù)用器106通過SDRAM判優(yōu)器(服務(wù)優(yōu)先權(quán)設(shè)備)91控制,該判優(yōu)器檢測每個隊列的完滿性以及請求的狀態(tài),并以存儲在優(yōu)先權(quán)服務(wù)控制寄存器100中可編程的值為基礎(chǔ)通過這些檢測到的值決定優(yōu)先權(quán)。
一旦對多路復(fù)用器106的控制選擇了存儲器訪問請求,存儲器訪問請求被送至解碼器108,在那里被解碼并產(chǎn)生地址。解碼的地址被送至SDRAM接口110,在那里被分解成訪問SDRAM16a并在傳送數(shù)據(jù)至總線112的數(shù)據(jù)線26a上寫或讀數(shù)據(jù)的行地址選通和列地址選通。在實施中,總線112實際上是代替了單一總線的兩根分開的總線。分開的總線包括與分配的微引擎22a-22f相結(jié)合的讀操作總線以及與分配的微引擎22a-22f相結(jié)合的寫操作總線。
SDRAM控制器26a的特征是,當(dāng)存儲器訪問被存入隊列90中時,除了可被置位的優(yōu)化MEM位以外,還有存儲器訪問鏈接位(以下典型的存儲器訪問指令格式化中的“chain_ref”)。存儲器訪問鏈接位,當(dāng)被置位時,便允許對連續(xù)的存儲器訪問進(jìn)行特殊的處理。如前面提到的,判優(yōu)器(服務(wù)優(yōu)先權(quán)機(jī)器)91控制選擇哪個微引擎以在通向隊列90的命令總線上提供存儲器訪問請求(圖4)。存儲器訪問鏈接位的確立引起判優(yōu)器(服務(wù)優(yōu)先權(quán)機(jī)器)91選擇先前請求那條總線的功能性單元。
在隊列90中將收到連續(xù)的存儲器訪問,此日寸將存儲器訪問鏈接位置位。那些連續(xù)的引導(dǎo)通常將被存入順序隊列90c,因為連續(xù)的存儲器訪問是來自單一線路的多重存儲器訪問。為了提供同步,存儲控制器26a當(dāng)完成時在鏈接的存儲器訪問的末尾發(fā)出信號。然而,在優(yōu)化的存儲器鏈接中,(比如,當(dāng)優(yōu)化的MEM位與存儲器訪問鏈接位都被置位時)存儲器訪問可進(jìn)入不同的存儲單元并可能在其它存儲單元完全消耗掉之前在一個發(fā)出信號“完成”的存儲單元上完成,這樣將會破壞相干性。在這種情況下,存儲器訪問鏈接位通過控制器110被用于維持來自當(dāng)前隊列的存儲器訪問。
由于SDRAM引導(dǎo)能來源于許多源,特別存儲單元的下一個SDRAM引導(dǎo)為開放行的可能性很小。鏈接引導(dǎo)位的SDRAM能用于向控制器26a發(fā)出信號,本存儲單元保持開放而且下一個SDRAM引導(dǎo)應(yīng)該取自與現(xiàn)正執(zhí)行的寫操作相同的隊列。因此,SDRAM控制器策略總是在寫命令之后關(guān)閉本行,除非存儲器訪問鏈接位被置位。
參考圖4A,顯示了SDRAM控制器26a中判優(yōu)策略的流程圖。判優(yōu)策略支持鏈接的微引擎存儲器請求。處理過程115從檢查鏈接的微引擎存儲器訪問請求115a開始。處理過程115在鏈接的請求處停留,直到存儲器訪問鏈接位被清零。處理過程判定ASB總線請求115b,隨后是PCI總線115c、高優(yōu)先權(quán)隊列服務(wù)115d,相對存儲單元請求115e、順序隊列請求115f和相同存儲單元請求115g。鏈接的請求被完全完成,而服務(wù)115b-115d則是循環(huán)地進(jìn)行。只有當(dāng)服務(wù)115b-115d完全消耗掉時,過程才處理服務(wù)115e-115g。當(dāng)前面的SDRAM存儲器請求具有存儲器訪問鏈接位時,鏈接的微引擎存儲器訪問請求被置位。當(dāng)存儲器訪問鏈接位被置位后,判優(yōu)器(服務(wù)優(yōu)先權(quán)機(jī)器)91只再一次服務(wù)相同的隊列,直到存儲器訪問鏈接位被清零。由于在ASB處于等待狀態(tài)時強(qiáng)加在Strongarm核心上嚴(yán)重的性能損失,所以ASB的優(yōu)先權(quán)高于PCI。又由于PCI等待時間的要求,PCI具有高于微引擎的優(yōu)先權(quán)。但是與其它總線一起的話,判別優(yōu)先權(quán)就不一樣了。
存儲器訪問鏈接位還能用于,當(dāng)指令線路試圖從不同的存儲位置完成對字節(jié)連續(xù)排列的讀操作。例如,讀取排列的字節(jié)能用于向傳送FIFO裝載數(shù)據(jù)。讀取排列的字節(jié)用于形成四倍字長排列的64字節(jié)傳送FIFO引入線。SDRAM中的引入線可以不是四倍字長排列。SDRAM控制器讀取第一存儲位置并變換讀取內(nèi)容的N個字節(jié)以排列第一字節(jié)。SDRAM控制器讀取第二位置并連接來自第二存儲位置的(8-N)個字節(jié)以形成第一條64位的傳送FIFO引入線。剩余的從第二存儲位置讀取的N個字節(jié)被變換并與第三位置的第一個(8-N)的字節(jié)結(jié)合以形成第二條64位的傳送FIFO引入線。來自第三位置的剩余的N個字節(jié)與來自第四位置的第一個(8-N)的字節(jié)結(jié)合以產(chǎn)生第三條排列字節(jié)的傳送FIFO引入線,以此類推。
如果對下一個為相同傳送FIFO引入線指定的存儲器訪問有新的存儲指令,則存儲器訪問鏈接位的確立能夠連接隨后存儲器讀取指令的第一存儲位置與前面的SDRAM讀取指令的剩余字節(jié)。
判優(yōu)器(服務(wù)優(yōu)先權(quán)機(jī)器)91起動從六引擎到FBUS、SRAM、PCI和SDRAM控制器的指令引導(dǎo)。當(dāng)存儲器訪問鏈接位被置位的SDRAM指令從微引擎送出時,判優(yōu)器(服務(wù)優(yōu)先權(quán)機(jī)器)91將只允許來自相同微引擎的SDRAM請求,直到不帶存儲器訪問鏈接位的指令被送至結(jié)束鏈接序列的SDRAM控制器。
以下顯示了存儲器訪問指令典型的格式化,該存儲器訪問指令顯示作為可選標(biāo)記稱為“chain_ref”的存儲器鏈接位的實施sdram[sdram_cmd,$$sdram_xfer_reg,source_op1,source_op2,ref_count],optional_tokensdram_cmd字段規(guī)定了在SDRAM16a上完成的操作,包括從SDRAM到SDRAM轉(zhuǎn)移寄存器的讀操作,從SDRAM轉(zhuǎn)移寄存器到SDRAM16a的寫操作或從接收FIFO29a(圖2)到SDRAM16a的讀操作和從SDRAM16a到傳送FIFO29b(圖2)的寫操作。
$$sdram_xfer_reg字段規(guī)定了在讀操作或?qū)懖僮魃戏謩e接收或提供SDRAM數(shù)據(jù)的連續(xù)系列注冊表開頭的寄存器。
source_op1/source_op2字段規(guī)定了內(nèi)容相關(guān)的寄存器或5位由零組成的范圍從+31到0的直接數(shù)據(jù)。這些操作數(shù)被一起添加以形成SDRAM地址。
ref_count字段規(guī)定了被引導(dǎo)的連續(xù)的SDRAM四倍字長的數(shù)目。
存儲器訪問指令同樣有能具有幾種狀態(tài)的可選擇標(biāo)記字段,包括sig_done當(dāng)引導(dǎo)完成時,發(fā)出相應(yīng)的使存儲數(shù)據(jù)起源或下沉的微引擎/線路組的信號。不跟ctx_swap或defer一起使用。
ctx_swap當(dāng)發(fā)出存儲器訪問的命令時,該標(biāo)記使微引擎換出當(dāng)前執(zhí)行的線路以讓另一條線路執(zhí)行。不跟chain_ref和sig_donge一起使用。
chain_ref存儲器鏈接位引起存儲控制器在以上所討論的當(dāng)前引導(dǎo)之后迅速處理來自該微引擎/線路組的下一個SDRAM引導(dǎo)。通常,該標(biāo)記不跟ctx_swap或defer一起使用。一旦存儲鏈接引導(dǎo)被啟動,微引擎/線路組就不再執(zhí)行轉(zhuǎn)移指令直到鏈接完成。
defer跟ctx_swap選項一起使用。規(guī)定,在該引導(dǎo)之后在內(nèi)容被交換之前將執(zhí)行一條指令。不跟chain_ref或sig_done一起使用。
ordered將SDRAM存儲器訪問排入順序隊列90c。順序隊列90c保存使用順序選擇標(biāo)記的引導(dǎo)執(zhí)行的順序。不跟optimize_mem或priority一起使用。如果既沒有規(guī)定priority又沒有規(guī)定optimize_mem,則系統(tǒng)設(shè)定值為順序的。
priority將SDRAM引導(dǎo)排入優(yōu)先權(quán)隊列90d中。優(yōu)先權(quán)隊列90d賦予該存儲器訪問高于其它SDRAM引導(dǎo)的優(yōu)先權(quán)。不跟ordered或optimize_mem一起使用。
optimize_mem通過自動將SDRAM引導(dǎo)排入奇數(shù)或偶數(shù)對列90a或90b對存儲器帶寬進(jìn)行優(yōu)化。奇數(shù)或偶數(shù)隊列90a或90b根據(jù)地址引導(dǎo)數(shù)據(jù)在奇數(shù)SDRAM存儲單元還是在偶數(shù)SDRAM存儲單元來選擇。這樣作可能會導(dǎo)致引導(dǎo)執(zhí)行的順序不同于它們在所發(fā)出指令中的順序。不跟ordered或priority一起使用。
indirect_ref表示,過載負(fù)荷的限定符或附加的限定符與該引導(dǎo)有聯(lián)系。這些限定符通過ALU76在先前的微字中輸出。限定符的格式取決于SDRAM的指令。
其它實施例可以理解的是,雖然對本發(fā)明與其詳細(xì)的描述相結(jié)合作了描述,但前面的描述旨在描繪本發(fā)明但并不是限定本發(fā)明的范圍,本發(fā)明的范圍由所附權(quán)利要求的范圍決定。其它的方面、優(yōu)勢以及修改在以下的權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種隨機(jī)存取存儲器的控制器,其特征在于包含控制邏輯,包括檢測未完成的存儲器訪問的狀態(tài)以從多個存儲器訪問隊列中的一個選擇存儲器訪問的判優(yōu)器,所述的控制邏輯當(dāng)裝置允許對連續(xù)存儲器訪問進(jìn)行特殊處理時響應(yīng)存儲器訪問鏈接位。
2.權(quán)利要求1的控制器,其特征在于,使用來自具有存儲器訪問鏈接位被置位的編碼線路的連續(xù)存儲器訪問,以從不連續(xù)的存儲緩沖器形成字節(jié)連續(xù)排列的讀操作模塊。
3.權(quán)利要求1的控制器,其特征在于,使用來自具有存儲器訪問鏈接位被置位的編碼線路的連續(xù)存儲器訪問,以當(dāng)連續(xù)數(shù)據(jù)寫操作在相同SDRAM頁進(jìn)行時對性能進(jìn)行優(yōu)化。
4.權(quán)利要求1的控制器,其特征在于,存儲器訪問鏈接位的確立引起判優(yōu)器對先前請求的對存儲器系統(tǒng)訪問的功能性單元進(jìn)行選擇。
5.權(quán)利要求1的控制器,其特征在于,還包含從多個微控制功能性單元獲取存儲器訪問的地址和指令隊列;從計算機(jī)總線獲取存儲器訪問的第一讀/寫隊列;從核心處理器獲取存儲器訪問的第二讀/寫隊列;其中,地址和指令隊列包含從高優(yōu)先權(quán)任務(wù)獲取存儲器訪問的高優(yōu)先權(quán)隊列。
6.權(quán)利要求5的控制器,其特征在于,控制邏輯響應(yīng)優(yōu)化的存儲位和存儲器訪問鏈接位,其中,存儲器訪問鏈接位的確立引起判優(yōu)器維持來自當(dāng)前隊列的存儲器訪問。
7.權(quán)利要求1的控制器,其特征在于,判優(yōu)器具有有利于鏈接的微引擎存儲器訪問的判優(yōu)策略。
8.權(quán)利要求7的控制器,其特征在于,判優(yōu)器具有這樣的判優(yōu)策略,即服務(wù)鏈接發(fā)出請求直到存儲器訪問鏈接位被清零為止。
9.權(quán)利要求1的控制器,其特征在于,判優(yōu)器具有這樣的判優(yōu)策略,即通過檢查鏈接的微引擎存儲器訪問的請求來啟動。
10.權(quán)利要求1的控制器,其特征在于,判優(yōu)策略使鏈接的存儲請求得到完整地服務(wù)。
11.權(quán)利要求5的控制器,其特征在于,當(dāng)存儲器訪問鏈接位被置位時,判優(yōu)器繼續(xù)服務(wù)于來自相同隊列的存儲請求,直到存儲器訪問鏈接位被清零。
12.一種并行的以硬件為基礎(chǔ)的多線路處理器,其特征在于包含與系統(tǒng)功能協(xié)調(diào)的通用處理器;支持多重硬件線路的多個微引擎;隨機(jī)存取存儲器的控制器,其包含控制邏輯,其包括檢測未完成的存儲器訪問的狀態(tài)以從多個存儲器訪問隊列中的一個選擇存儲器訪問的判優(yōu)器,所述的控制邏輯當(dāng)裝置允許對連續(xù)存儲器訪問進(jìn)行特殊處理時響應(yīng)存儲器訪問鏈接位。
13.權(quán)利要求12的處理器,其特征在于,控制器引起來自具有存儲器訪問鏈接位被置位的編碼線路的連續(xù)存儲器訪問從不連續(xù)的存儲緩沖器形成字節(jié)連續(xù)排列的讀操作模塊。
14.權(quán)利要求12的處理器,其特征在于,控制器引起來自具有存儲器訪問鏈接位被置位的編碼線路的連續(xù)存儲器訪問當(dāng)連續(xù)數(shù)據(jù)寫操作在相同SDRAM頁進(jìn)行時對性能進(jìn)行優(yōu)化。
15.權(quán)利要求12的處理器,其特征在于,存儲器訪問鏈接位的確立引起判優(yōu)器對先前請求的對存儲器系統(tǒng)進(jìn)行訪問的功能性單元進(jìn)行選擇。
16.一種控制對共享存儲器的訪問的方法,其特征在于包含確定存儲器訪問鏈接位是否被確立;從多個以功能性單元為基礎(chǔ)的存儲器訪問隊列中的一個選擇存儲器訪問,該功能性單元對存儲器訪問鏈接位進(jìn)行確立并如先前請求的對存儲器系統(tǒng)進(jìn)行訪問。
17.權(quán)利要求16的方法,其特征在于,選擇使鏈接的微引擎存儲器訪問比其它類型的存儲器訪問請求有利。
18.權(quán)利要求17的方法,其特征在于,選擇為鏈接的請求服務(wù),直到存儲器訪問鏈接位被清零。
19.權(quán)利要求17的方法,其特征在于,選擇通過檢查鏈接的微引擎存儲器訪問請求來啟動。
20.一種設(shè)備,其特征在于包含具有控制對共享存儲器進(jìn)行訪問的可執(zhí)行指令的機(jī)器可讀的存儲媒質(zhì),該可執(zhí)行指令使機(jī)器確定存儲器訪問鏈接位是否被確立;從多個以功能性單元為基礎(chǔ)的存儲器訪問隊列中的一個選擇存儲器訪問,該功能性單元對存儲器訪問鏈接位進(jìn)行確立并如先前請求的對存儲器系統(tǒng)進(jìn)行訪問。
全文摘要
一種隨機(jī)存取存儲器的控制器具有控制邏輯,其包括檢測未完成的存儲器訪問狀態(tài)的判優(yōu)器??刂破鲝亩鄠€存儲器訪問隊列中的一個選擇存儲器訪問??刂七壿嬙谘b置允許對連續(xù)的存儲器訪問進(jìn)行特殊處理時響應(yīng)存儲器訪問鏈接位。
文檔編號G06F13/16GK1437730SQ00819181
公開日2003年8月20日 申請日期2000年12月6日 優(yōu)先權(quán)日1999年12月28日
發(fā)明者G·沃爾里奇, D·伯恩斯坦因, M·J·阿迪萊塔, W·威勒 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1