專利名稱:自我調節視頻fifo的方法和裝置的制作方法
技術領域:
本發明總的涉及計算機系統,更具體地說,本發明涉及圖形計算機系統。
個人計算機和工作站計算機等在諸如陰極射線管(CRT)和監視器等輸出顯示器上生成圖形和視頻。近來,這些計算機系統的輸出顯示器已經變得更加先進、更加靈活。計算機產業中有一種趨勢,那就是在顯示器上生成更復雜的圖形、更豐富的色彩以及富于變化的分辨率。因此,圖形計算機系統的設計者們已經不得不設計相關的計算機圖形硬件來滿足這些設計需求。
圖1表示了支持圖形顯示的現代計算機系統中常見的計算機圖形硬件的一部分。如圖1所示,現有技術的計算機系統101帶有存儲器控制器103,能從顯示存儲器(未予示出)接收顯示數據113。被存儲器控制器103接收的顯示數據113然后被傳輸到先進先出存儲器(FIFO)105。在顯示數據113項被寫入FIFO 105之后,就可以開始一個FIFO讀周期,將FIFO 105中存儲的顯示數據113的數據項從FIFO105順序讀出,傳輸到輸出顯示器115。如圖1中所示,顯示數據113項從顯示存儲器到輸出顯示器115的傳輸,是由輸出顯示控制器107控制的。輸出顯示控制器107向存儲器控制器103生成一個FIFO寫信號109。FIFO寫信號109是輸出顯示控制器107的一個請求,它使存儲器控制器103從顯示存儲器提取顯示數據113,隨后將顯示數據113裝入FIFO105。如圖1所示,存儲器控制器103以系統時鐘117定時。圖1還顯示,顯示數據113是根據由輸出顯示控制器107生成的一系列FIFO讀信號111被輸出到輸出顯示器115的。FIFO讀信號111是輸出顯示控制器107的一個請求,它使顯示數據113的一個數據項在視頻時鐘119的控制下從FIFO105傳輸到輸出顯示器115。
人們知道,現有技術的計算機系統101中,系統時鐘117與視頻時鐘119一般具有不同的時鐘頻率。更重要的是,顯示數據113寫入FIFO105的速度,不同于與該顯示數據113隨后被輸出顯示器115讀出或日使用的速度。結果,計算機系統設計者們要面臨FIFO105變滿這個潛在問題。當FIFO105變滿時,新的顯示數據113項的寫入可能會覆蓋掉現存的顯示數據113項,而在此之前,輸出顯示器115卻來不及讀出在FIFO105中的被覆蓋的顯示數據113項。這個情況通常被稱為上溢。出現這種情況的一個后果是,有些顯示數據113項可能會丟失,或者不能正確地寫到輸出顯示器115。
諸如現有技術的計算機系統101的計算機系統,它們的一個要求是,顯示數據113必須被連續不斷地傳輸到輸出顯示器115。因此FIFO絕不能變空。由于向存儲器控制器103發出一個FIFO寫信號109的時間,與相關的顯示數據113項在FIFO105中準備好被讀出的時間,兩者之間存在某種時間差,因此FIFO寫信號109必須在一個FIFO讀周期被完成之前提前一些時間發出,以保證FIFO105不會變空。
我們也注意到,如果現有技術計算機系統101的輸出顯示控制器107不等待足夠的時間,讓存儲器控制器103將新的顯示數據113項寫入FIFO105,就會發生下溢情況。就是說,如果輸出顯示控制器107在FIFO105內容為空時過早向FIFO105發出一個FIFO讀信號111,就會發生一個下溢情況,導致將錯誤的顯示數據113寫到輸出顯示器115。這種情況自然也是不能接受的。總之,FIFO105絕不能變滿,也絕不能變空。
人們知道,在FIFO讀周期期間向存儲器控制器103發出要求開始重新裝載FIFO105的FIFO寫信號109,其最佳的時間提前量是多少,這是設計者門極其難以預測的。如上所述,如果為了避免發生下溢情況而將FIFO105設計得過分大,電路設計者就能使輸出顯示控制器107在FIFO讀周期中很早地發出這種要求重新裝載FIFO105的FIFO寫信號109。如果FIFO寫信號109在FIFO讀周期中太遲才被發出,FIFO就可能會在新的顯示數據113項被寫入FIFO105之前變空,導致發生不希望發生的下溢情況。
預測輸出顯示控制器107發出FIFO寫信號109的最佳時間這個問題,在系統時鐘和/或視頻時鐘為未知的情況中更加糟糕。人們注意到,計算機系統設計者們經常不能預先確定系統時鐘117和視頻時鐘119的時鐘頻率。此外,在計算機上運行的軟件要確定系統時鐘17和視頻時鐘119的頻率也有困難。其結果是,顯示數據113項被寫入FIFO105和從FIFO105中讀出的速度是未知數。因此,為了應付最壞的情況,圖形計算機系統設計者們不得不使用非常大的FIFO105,用這種方法來避免上溢和下溢情況,所犧牲的襯底面積(substrate area)和代價令人難以接受。
計算機設計者們解決上述問題所采用的另一種現有技術解決方法是,采用能存儲許多數據項的大容量FIFO105來容納大量的顯示數據113。理論上講,如果FIFO105無限地大,上溢情況就絕不會發生。此外,輸出顯示控制器107也就能在輸出顯示器115消耗完FIFO105中所有現存的有效顯示數據113項之前的恰當時間發出FIFO寫信號109。下溢情況也因此而不會發生。這種現有技術解決方法這樣就解決了與現有技術的計算機系統101關聯的上溢和下溢問題的。這種現有技術的設計的一個明顯后果是,FIFO105必須被設計得不必要地大。
因此,需要有一種盡可能少地發生上溢和下溢情況的、從存儲器向輸出顯示器傳輸顯示數據的FIFO。此外,這種FIFO不應過分龐大,不應毫無必要地犧牲寶貴的襯底面積和費用。此外,這種FIFO還應當能適合并適應未知的系統時鐘頻率與視頻時鐘頻率的組合。這種FIFO會有效地降低上溢和下溢情況的發生,可廣泛地用于各種現代的圖形計算機系統。
本文描述用從/向FIFO讀、寫顯示數據的方法和裝置。在一個實施例中,一個被設置為接收和提供顯示數據的存儲器控制器連接著FIFO。一個被設置為向存儲器控制器生成FIFO寫信號的輸出顯示控制器這樣連接著FIFO,使得存儲器控制器能根據該FIFO寫信號將一部分顯示數據寫到FIFO。然后,根據輸出顯示控制器生成的FIFO讀信號,FIFO中該部分顯示數據的顯示數據項被從FIFO中順序讀出。將一個可編程寄存器設置成存儲與FIFO中某顯示數據項對應的一個值。當該特定顯示數據項被從FIFO讀出時,輸出顯示控制器向存儲器控制器生成另一個FIFO寫信號,要求將另一部分顯示數據裝入FIFO。本發明的另外特點和優點,顯見于以下的詳細說明、附圖及權利要求中。本發明的其它特點和優點,顯見于各附圖及以下的詳細說明。
本發明是通過舉例來說明的,但并不局限于附圖。
圖1表示一個含有現有技術FIFO的現有技術計算機系統的局部。
圖2表示在一個計算機系統中實施的本發明的框圖。
圖3表示本發明的FIFO與當前的計數寄存器及顯示數據項寄存器的關系。
圖4是表示根據本發明表示各特定事件發生的時序圖。
圖5是表示根據本發明的一個示范性過程的流程圖。
本文描述從/向FIFO讀、寫顯示數據的方法和裝置。為了使讀者透徹地理解本發明,以下說明中列舉了大量的具體細節,例如時鐘頻率、存儲器大小、數據使用的速度等等。然而,本領域的一般熟練人員顯然知道,本發明的實施未必需要采用這些具體細節。為了避免不必要地妨礙對本發明的說明,在其它情況下,沒有對已知的材料或方法詳加說明。
本發明提出一種在使用容量合理的視頻FIFO情況下解決視頻FIFO上溢和下溢問題的新穎方法。本發明采用一種自我調節的視頻FIFO,它能協調FIFO讀信號與FIFO寫信號的時間關系,最大限度地降低了經過初始化階段以后,FIFO上溢和/或下溢情況發生的可能性。
圖2表示在一個計算機系統201中實施的本發明的框圖。如圖2所示,計算機系統201是一個含有與系統存儲器223和總線225相連的中央處理單元(CPU)221的通用計算機。圖形子系統243與總線225相連。本發明一個實施例中的總線225是PCI總線。應當注意,CPU221與圖形子系統243之間的通訊也可以采用其它類型的總線。
在圖2所示的實施例中,圖形子系統243是通過總線接227與總線225相連的。控制電路220連接總線接227并控制著存儲器控制器203。存儲顯示數據213的本地存儲器231與存儲器控制器203相連。顯示數據213是最終要被傳輸到輸出顯示器215的顯示數據。應當明白,顯示數據213可以包含許多代表視頻數據或圖形數據的顯示數據項。存儲器控制器203連接視頻FIFO 205。存儲器控制器203和視頻FIFO205與輸出顯示控制器207相連。如圖2所示,存儲器控制器203從輸出控制器207接收FIFO寫信號205,FIFO205從輸出控制器207接收FIFO讀信號211。FIFO205的一個輸出端連接視頻輸出電路233,后者連接到輸出顯示器215。如圖2所示,存儲器控制器203用系統時鐘217定時,而視頻輸出電路用視頻時鐘219定時。
輸出顯示控制器207包括計數寄存器235和顯示數據項寄存器237。此外,輸出顯示控制器207連接成接收FIFO205發出的下溢信號239和上溢信號241。當FIFO205中發生下溢情況時,輸出顯示控制器207就通過下溢信號239得到通知。當FIFO205中發生上溢情況時,輸出顯示控制器207就通過上溢信號241得到通知。
在本發明的一個實施例中,除本地存儲器231之外,圖形子系統243的所有部件都在同一個基片上。在該實施例中,控制電路229包括一個精簡指令集計算機(RISC)處理器以及支持電路,諸如指令高速緩沖存儲器和VGA兼容電路。
本發明考慮了這樣一個事實,即諸如CRT和監視器等輸出顯示器具有不同的輸出模式。例如,不同的輸出顯示器有不同的輸出分辨率。不同的顯示分辨率影響視頻消費速度或日從FIFO205的視頻輸出速度。就是說,視頻時鐘219的頻率可能要依賴輸出顯示器215具有的特定分辨率。此外,許多計算機系統都有可變的輸出分辨率,使得輸出顯示器215的輸出分辨率隨時可以改變,由此隨時改變著視頻時鐘219的頻率。例如,在一個實施例中,當輸出顯示器215的分辨率被設置為640×480×16時,視頻時鐘的頻率可能是31MHz。另一種情況下,當輸出顯示器215的分辨率被設置為1,024×768×16時,視頻時鐘219的頻率可能是78MHz。所以說,從FIFO205讀出視頻數據或日顯示數據的速度,受輸出分辨率的影響。
此外,上面說過,存儲器控制器203向FIFO205寫入視頻數據或日顯示數據的速度,與系統時鐘217有關。我們知道,計算機系統設計人員經常事先不知道系統時鐘217的頻率是多少。其原因是圖形子系統243可以被安裝在系統時鐘217的時鐘頻率各異的各種不同計算機系統201中。此外,本發明圖形子系統243的一個實施例可以按不同的頻率操作,由此導致系統時鐘217具有各種不同的時鐘頻率配置。
系統時鐘217和視頻時鐘219頻率的未知組合的總體效果是,計算機系統設計者要想精確地協調FIFO寫信號209和FIFO讀信號211的發出以避免FIFO205中發生上溢情況和下溢情況,即使不是不可能,也極端困難。本發明通過采用顯示數據項寄存器提供了一種解決這種問題的方法。
以下說明本發明用顯示數據項寄存器237和FIFO205進行的操作。如圖3所示,FIFO305是一個有0~N-1的N個項的存儲器。FIFO305中的每個項被設置為存儲DATA(O)~DATA(N-1)中的一個顯示數據項。在本發明的一個實施例中,FIFO305是一個16項×8字節的存儲器,信息容量是1,024個二進制位。在該實施例中,一次讀取并輸出到視頻輸出電路223的信息量是32位。因此,假設FIFO 305中裝滿了顯示數據項,一個FIFO讀周期就需要32(1024÷32)個FIFO讀信號才能讀完FIFO305中的全部數據。因此,由于FIFO305中有32個項,該實施例中的N=32。如果例如每次訪問FIFO305能讀取64位數據,FIFO305則含有16(1024÷64)個項,于是該實施例中的N則等于16。
現在回過來參見圖2,假設顯示數據213已經被寫入本地存儲器231。然后,輸出顯示控制器207向存儲器控制器203發出一個要求加載FIFO205的FIFO寫信號209。作為響應,存儲器控制器203提取一部分顯示數據或者說1,024位的顯示數據213,將該數據裝入FIFO205。假設FIFO205是一個16項×8字節的FIFO、每個時鐘讀取32位數據,則FIFO205能如圖3的FIFO305所示的那樣容納32個項。存儲器控制器203按照系統時鐘217控制的速度,將DATA(O)~DATA(N-1)寫入FIFO205。然后,輸出顯示控制器207開始將FIFO205中的顯示數據213項,經視頻輸出電路233順序地傳輸到輸出顯示器215。為此,輸出顯示控制器207要向FIFO205發出一系列FIFO讀信號211。現在回到圖3,DATA(0)中的顯示數據213項第一個被從FIFO305讀出,井經視頻輸出電路233輸出到輸出顯示器215。然后,輸出顯示控制器207向FIFO205發出下一個FIFO讀信號211,DATA(1)于是被從FIFO305讀出,并經視頻輸出電路233輸出到輸出顯示器215。如圖3所示,顯示數據項寄存器337含有一個指向FIFO305中某項的值。在圖3的例子中,顯示數據項寄存器337指向FIFO305中的第M個項DATA(M)。當根據FIFO讀信號211將DATA(M)從FIFO305讀出時,輸出顯示控制器207向存儲器控制器203發出另一個FIFO寫信號209,要求開始將要向輸出顯示器215傳輸的下一部分顯示數據213裝入FIFO305。
本發明中,顯示數據項寄存器337是一個可編程寄存器,被編程為包含指向FIFO305中的某個顯示數據213項的值。當該特定顯示數據213項被從FIFO305讀取時,下一個FIFO寫信號209被發往存儲器控制器203。對編程進顯示數據項寄存器337中的顯示數據213項的選擇,要使得FIFO305中發生上溢和下溢情況的可能性最小。就是說,對編程進顯示數據項寄存器337中的值的選擇,要使得在FIFO讀周期中足夠早地發出下一個FIFO寫信號209,以避免下溢情況的發生。此外,對為顯示數據項寄存器337所選擇項的選擇,要使得在FIFO讀周期中足夠遲地發出下一個FIFO寫信號209,以有時間在FIFO305中騰出足夠數量的存儲位置,避免上溢情況的發生。
下溢情況指的是,當向FIFO305發出一個FIFO讀信號211時,FIFO305中沒有供向輸出顯示器傳輸的新數據。如果存儲器控制器203在FIFO充滿了尚未被讀取的顯示數據213項時向FIFO305寫數據,則發生上溢情況。
在本發明的一個實施例中,計數寄存器335任何時刻都指向正在被從FIFO305讀取的那個特定的顯示數據213項。因此,例如在某FIFO讀周期開始的時候,計數器335可能等于0,指向FIFO305中的第一個項。在該特定項被讀取之后,計數器335被遞增到下一個值。因此在本例中,計數器335應等于1。在計數器335到達FIFO305中的最后一項以后,計數器335被翻轉回指向FIFO305中的第一項,如圖3所示。
在本發明的一個實施例中,將計數寄存器335中的值與顯示數據項寄存器337中的值進行比較。當計數寄存器335與顯示數據項寄存器337相等時,發出一個FIFO寫信號209。圖3中,數據項寄存器337指向FIFO305中的第M個項,計數寄存器335也指向FIFO305中的第M個項。因此根據本發明,此時要向存儲器控制器203發出一個FIFO寫信號209。
這樣,如果編程進顯示數據項寄存器337中的值是一個選擇恰當的值,就能在系統時鐘217和視頻時鐘219的時鐘頻率是未知數的系統中,避免FIFO205中上溢和下溢情況的發生。本發明的另一個好處是,FIFO205或305的容量不必為了避免下溢和上溢情況而過分地大,因此就不必犧牲不必要的費用和襯底面積。
本發明的另一個新穎內容,如圖2所示,是使用下溢信號239和上溢信號241。由于使用下溢信號239和上溢信號241,本發明具有能夠進行自我調節的能力。這種自我調節功能,能夠對編程進顯示數據項寄存器337中的特定值動態更新,以隨時能適應系統時鐘217和視頻時鐘219的時鐘頻率的任意特定組合。這樣,對于時鐘頻率的任意特定組合,動態地調整顯示數據項寄存器337中的值,以保證用編程進顯示數據項寄存器337中的是一個理想值,最大限度地減少FIFO205中上溢和下溢情況的發生。
下面敘述本發明的自我調節特性。接著以上的例子,假設在顯示數據項寄存器337中的值現在還不是最佳值。例如系統啟動、系統復位等情況時可能就處于這種狀態。假設現在顯示數據213項已經被寫入圖3的FIFO305,并且下一個FIFO讀信號已經發出。當計數器355的值等于顯示數據項寄存器337中的值時,向圖2的存儲器控制器203發出一個FIFO寫信號209。
現在假設,當存儲器控制器203開始將本地存儲器231的下一部分顯示數據213裝入FIFO305時,發生上溢情況。就是說,存儲器控制器203試圖在FIFO205已“滿”的情況下將數據“推入”FIFO205。作為響應,FIFO205生成一個上溢信號241,該信號被輸出顯示控制器207接收。根據所接收的上溢信號241,顯示數據項寄存器337中的值遞增1,如圖3所示。于是,下一個FIFO寫信號209將在FIFO讀周期的“更晚些時間”被發出。就是說,如果顯示數據項寄存器337上一次指在DATA(M),那么顯示數據項寄存器337在根據上溢信號241遞增之后,將指在DATA(M+1)。結果,在下一個FIFO讀周期中,在下一個FIFO寫信號209被發往存儲器控制器203之前,將會有更多的FIFO305中的數據單元被讀取并釋放。
顯示數據項寄存器337每當接收到一個FIFO205發出的上溢信號時就遞增一次。最后,顯示數據項寄存器337將被最優化,使得在下一個FIFO寫信號209發出之前,有更多的FIFO305存儲單元能被讀取并釋放,以避免FIFO205中發生上溢情況。
與此類似,假設在FIFO讀周期中發出FIFO寫信號的時間過遲,在存儲器控制器203還沒有機會向FIFO305寫入任何顯示數據之前,就可能有個FIFO讀信號211被發往FIFO305。這種情況發生的可能原因是,向存儲器控制器203發出FIFO寫信號209的時間與顯示數據213項實際被寫入FIFO305的時間之間,存在時間差。其結果會是,FIFO205中發生下溢情況,FIFO205向輸出顯示控制器207發出下溢信號239。
根據所接收的下溢信號239,顯示數據項寄存器337中的值因此遞減。于是,如果顯示數據項寄存器337原來指在DATA(M),如圖3所示,那么在FIFO205發生下溢情況后,顯示數據項寄存器337將指在DATA(M-1)。這會導致在隨后的FIFO讀周期中下一個FIFO寫信號209被更早地發出。顯示數據項寄存器337每當出現一個下溢信號239時就遞減一次,直至最后,顯示數據項寄存器337被調整到適當的值。
注意在本發明中,在顯示數據項寄存器337的值被最優化之前會多次發生上溢和下溢情況。然而,在本發明的一個實施例中,顯示數據項寄存器337的值被最優化的速度很快,以致計算機系統201的用戶不能識別出在輸出顯示器215上產生的錯誤。換言之,本發明調整的速度很快,以致用戶察覺不到屏幕上的錯誤。由此可知,系統啟動或系統復位時顯示數據項寄存器337的初始值是多少無關緊要,因為本發明的調整時間相當短。在本發明的一個實施例中,系統復位時顯示數據項寄存器337的初始值被設定為0。
圖4中的時序線401表示本發明中一些事件發生的時序線(timeline)。時序線401上的時間自左至右推移。t0時,顯示數據213被寫入圖形子系統243的本地存儲器231。
t1時,輸出顯示控制器207向存儲器控制器203發出一個FIFO寫信號209,要求提取以前寫入本地存儲器231中的一部分顯示數據213。存儲器控制器203按照由系統時鐘217控制的速度從本地存儲器231獲得該部分顯示數據。所獲得該部分顯示數據的顯示數據213項然后被寫入FIFO205。
t2時,讀取FIFO205中與t1時的FIFO寫信號209關聯的第一個顯示數據213項。
t3時,讀取FIFO205中顯示數據項寄存器337所指的特定顯示數據213項。相應地,下一個FIFO寫信號209被發往存儲器控制器203。存儲器控制器203從本地存儲器231獲得下一部分顯示數據213,并將該顯示數據寫入FIFO205中現在已被釋放的單元。
t4時,讀取FIFO205中與t3時的FIFO寫信號209關聯的第一個顯示數據213項。
與上述情況類似,在t5時刻,讀取FIFO205中顯示數據項寄存器337所指的特定顯示數據213項,由此導致下一個FIFO寫信號209被發往存儲器控制器203。
最后在t6時刻,讀取FIFO 205中與t5時的FIFO寫信號209關聯的第一個顯示數據項。
時序線401的過程連續進行,直到在TN時所有顯示數據213都被輸出到輸出顯示器215。
如圖4所示,t2與t4之間的時間表示一個FIFO讀周期所需的時間量。與此類似,t4與t6之間的時間量表示另一個FIFO讀周期所需的時間。此外,t3和t5代表各FIFO讀周期中發出FIFO寫信號209的時刻。根據本發明,t3和t5被選擇在能避免FIFO205中發生上溢和下溢情況的最佳時間發生。
為了適應系統時鐘217和視頻時鐘的頻率的可能變化,本發明的自我調節特性有選擇地將t3和t5偏移到各個FIFO讀周期中的最佳時刻,使FIFO205中發生上溢和下溢情況的可能性最小。就是說,如果FIFO205中發生下溢情況,就將t3和t5左移,即在它們各自的FIFO讀周期中提前一些;相反,如果FIFO205中發生上溢情況,就將t3和t5右移,即在它們各自的FIFO讀周期中推后一些。本發明就是這樣左移和/或右移時間t3和t5,直到設定一個最佳時間。
圖5表示了本發明的一個實施例的處理步驟的流程圖501。假設本地存儲器中存有顯示數據,本發明連續不斷地從本地存儲器讀取顯示數據并將顯示數據傳輸到輸出顯示器。方框513表示生成一個FIFO讀信號。然后如方框515所示,從FIFO讀取一個顯示數據項。該顯示數據項然后被從FIFO輸出。然后判斷,在屏幕上畫該條掃描行時是否發生了下溢情況。本領域中眾所周知,輸出顯示器上有許多掃描行。在本實施例中,顯示數據項寄存器只有在掃描行到達末端時才遞增或遞減。因此如方框519所示,如果未發生下溢情況,過程前進到方框535;另一方面,如果在掃描行期間發生了下溢情況,并且如方框521所示到達了掃描行的末端,則如方框523所示,使顯示數據項寄存器遞減。
下一步如方框535所示,判斷在該特定掃描行期間是否發生了上溢情況。如果發生了,并且如方框537所示到達了掃描行的末端,則如方框539所示,使顯示數據項寄存器遞增。
然后,過程返回到方框513,生成另一個讀信號。如圖所示,該過程循環往復,連續不斷地將本地存儲器的顯示數據向輸出顯示器215傳輸。
本文至此說明了一種自適應的自我調節視頻FIFO。本文描述的視頻FIFO的特點是用一個可編程寄存器來最佳地調整FIFO寫信號的發出時機與FIFO讀周期的關系。采用本發明,能使初始化階段后發生無益的FIFO上溢和下溢情況的可能性最小化。采用本發明,就不必采用毫無必要的大容量視頻FIFO來減少這種上溢和下溢情況的發生。此外,本發明對系統時鐘與視頻時鐘的組合情況未知或可變組合的計算機系統具有自適應性。因此本發明提供了一種費用較低的靈活的圖形計算機系統。
本文在以上的詳細說明中,描述了一種從/向FIFO讀、寫顯示數據的裝置和方法。本發明的裝置和方法是通過結合它們具體的典型實施例而描述的。不過很顯然,在不偏離本發明的實質和范圍的前提下,可以對它們作出各種修改。因此本說明及其附圖應視為是說明性的而不是限制性的。
權利要求
1.一種從/向FIFO讀、寫顯示數據的裝置,該裝置包括一個與FIFO相連的存儲器控制器,存儲器控制器被配置成根據FIFO寫信號向FIFO寫入一部分顯示數據;一個與FIFO及存儲器控制器相連的輸出顯示控制器,輸出顯示控制器被配置成根據正從FIFO中讀取的顯示數據項,向存儲器控制器生成FIFO寫信號;一個可編程存儲器電路,它被配置成存儲一個指示要從FIFO中讀取的顯示數據項的顯示數據項值。
2.權利要求1描述的裝置,其中,FIFO被配置成當發生下溢情況時生成一個下溢信號,其中FIFO進一步被配置成當發生上溢情況時生成一個上溢信號;輸出顯示控制器連接成接收下溢信號和上溢信號。
3.權利要求2描述的裝置,其中,顯示數據項值根據上溢信號而遞增。
4.權利要求2描述的裝置,其中,顯示數據項值根據下溢信號而遞減。
5.權利要求1描述的裝置,進一步包括一個計數器電路,它被配置成指示與FIFO中當前正被讀取的顯示數據項對應的當前顯示數據項值。
6.權利要求5描述的裝置,其中,輸出顯示控制器進一步根據當前顯示數據項值生成FIFO寫信號。
7.權利要求1描述的裝置,其中,可編程存儲器電路是一個第一寄存器。
8.權利要求5描述的裝置,其中,計數器電路是一個第二寄存器。
9.權利要求1描述的裝置,其中,存儲器控制器在第一時鐘信號控制下向FIFO裝入部分數據,顯示數據在第二時鐘信號控制下被輸出FIFO。
10.權利要求9描述的裝置,其中,第一時鐘信號與第二時鐘信號有可變的時鐘頻率。
11.權利要求10描述的裝置,其中,第一時鐘信號是系統時鐘信號,第二時鐘信號是視頻時鐘信號。
12.權利要求1描述的裝置,進一步包括一個與存儲器控制器相連的存儲器,存儲器控制器由該存儲器提供顯示數據。
13.權利要求1描述的裝置,進一步包括一個輸出顯示器,其中,顯示數據是根據FIFO讀信號被從FIFO輸出到輸出顯示器的。
14.一種從/向先進先出存儲器(FIFO)讀、寫顯示數據的方法,該方法包括以下步驟在一個可編程存儲器電路中,存儲一個指示要從FIFO中讀取的顯示數據項的顯示數據項值;根據來自一個輸出顯示控制器的FIFO寫信號,用一個存儲器控制器向FIFO寫入一部分顯示數據;根據來自輸出顯示控制器的FIFO讀信號,順序讀取FIFO中多個顯示數據項的每個顯示數據項;根據正從FIFO中讀取的顯示數據項,生成FIFO寫信號。
15.權利要求14描述的方法,進一步包括的步驟是,在初始穩定階段過后,調整顯示數據項值,以降低FIFO中發生上溢情況和下溢情況的概率。
16.權利要求15描述的方法,其中,調整步驟所包括以下步驟根據FIFO中發生的上溢情況利用FIFO生成一個上溢信號;根據上溢信號遞增顯示數據項值;根據FIFO中發生的下溢情況利用FIFO生成一個下溢信號;根據下溢信號遞減顯示數據項值。
17.權利要求16描述的方法,其中,遞增步驟是在某掃描行末端的顯示數據項從FIFO讀出之后執行的。
18.權利要求16描述的方法,其中,遞減步驟是在某掃描行末端的顯示數據項從FIFO讀出之后執行的。
19.權利要求14描述的方法,其中,存儲器控制器在一個第一時鐘信號控制下接收部分數據,顯示數據在一個第二時鐘信號控制下被順序讀出FIFO。
20.權利要求17描述的方法,其中,第一時鐘信號與第二時鐘信號有可變的時鐘頻率。
21.權利要求20描述的方法,其中,第一時鐘信號是一個系統時鐘信號,第二時鐘信號是一個視頻時鐘信號。
22.權利要求14描述的方法,其中,存儲器控制器從一個存儲器接收該部分顯示數據。
23.權利要求14描述的方法,其中,從FIFO順序讀出的顯示數據被輸出到一個輸出顯示器。
24.權利要求14描述的方法,其中,可編程存儲器電路是一個第一寄存器。
25.一個計算機系統,包括一個中央處理單元(CPU);一個與CPU相連的系統存儲器;一個與CPU相連的總線;一個與總線相連、在一個輸出顯示器上生成并顯示顯示數據的圖形子系統,該圖形子系統包括在一個本地存儲器中儲存的顯示數據;一個先進先出存儲器(FIFO);一個與本地存儲器及FIFO相連的存儲器控制器,存儲器控制器被配置成根據一個FIFO寫信號向FIFO寫入一部分顯示數據;一個與FIFO及存儲器控制器相連的輸出顯示控制器,輸出顯示控制器被配置成根據正從FIFO中讀取的顯示數據項,生成FIFO寫信號;一個連接成根據一個FIFO讀信號從FIFO接收顯示數據的視頻輸出電路,視頻輸出電路向輸出顯示器輸出顯示數據;一個可編程存儲器電路,它被配置成存儲一個指示要從FIFO中讀取的顯示數據項的顯示數據項值。
26.權利要求25描述的計算機系統,其中,當FIFO中發生下溢情況時,FIFO生成一個下溢信號;當FIFO中發生上溢情況時,FIFO生成一個上溢信號。
27.權利要求26描述的計算機系統,其中,要讀出的顯示數據項值根據上溢信號而遞增,以指示要從FIFO順序讀出的下一個顯示數據項。
28.權利要求26描述的計算機系統,其中,要讀出的顯示數據項值根據下溢信號而遞減,以指示要從FIFO順序讀出的上一個顯示數據項。
29.權利要求25描述的計算機系統,其中,可編程存儲器電路是輸出顯示控制器中的一個寄存器。
30.權利要求25描述的計算機系統,存儲器控制器在第一時鐘信號控制下向FIFO寫入該部分顯示數據,顯示數據在第二時鐘信號控制下被從FIFO中順序讀出。
31.權利要求30描述的計算機系統,其中,第一時鐘信號與第二時鐘信號具有可變的時鐘頻率。
32.權利要求31描述的計算機系統,其中,第一時鐘信號是系統時鐘信號,第二時鐘信號是視頻時鐘信號。
全文摘要
本文介紹從/向FIFO(205)讀、寫顯示數據(213)的方法和裝置。存儲器控制器(203)從存儲器提取顯示數據并將該顯示數據寫到FIFO。輸出顯示控制器(207)生成由FIFO接收的FIFO讀信號(211),根據該FIFO讀信號,顯示數據項被從FIFO中順序讀出,傳輸到輸出顯示器。可編程存儲器電路(237)存儲一個指向FIFO中某特定顯示數據項的指針值。選擇該指針值以使FIFO中發生上溢(241)和下溢情況的可能性最小化。本裝置具有動態地適應有不同的系統時鐘(217)與視頻時鐘(219)頻率的不同的計算機系統配置。
文檔編號G09G5/00GK1218569SQ97194630
公開日1999年6月2日 申請日期1997年3月3日 優先權日1996年3月15日
發明者S·克里斯納慕爾蒂, J·R·佩特爾森, P·A·舒帕克 申請人:微米技術有限公司