專利名稱:無線應(yīng)用的應(yīng)用處理器和存儲器體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng)中的存儲器訪問。特別地,本發(fā)明涉及一種訪問存儲器的方法和實現(xiàn)該方法的計算機系統(tǒng)。
背景技術(shù):
最近幾年中,無線技術(shù)的應(yīng)用特別是無線便攜式電話已經(jīng)非常普遍。便攜式電話使用多種類型的射頻基帶和基站調(diào)制協(xié)議,如碼分多址(CDMA)、全球移動通訊系統(tǒng)(GSM)、通用分組無線業(yè)務(wù)(GPRS)、個人數(shù)字蜂窩(PDC)等。
便攜式電話通常具有一個提供語音通訊所需計算的基帶芯片。該基帶芯片通常包括中央處理單元(CPU),與非易失存儲器(FLASH類型存儲器)或易失性偽靜態(tài)隨機存取存儲器(pSRAM)、靜態(tài)隨機存取存儲器(SRAM)、同步動態(tài)隨機存取存儲器(SDRAM類型存儲器)等對接的存儲器接口,液晶顯示(LCD)控制器,鍵盤和音頻設(shè)備或者其接口,以及與射頻(RF)元件對接以建立到基站的鏈接的裝置。
不久前便攜式電話僅用于純語音通訊,但隨著互聯(lián)網(wǎng)的發(fā)展,各種無線載體,如SKT、J-Phone、DoCoMo、Verizon、Vodaphone等,已嘗試向便攜式電話用戶提供數(shù)據(jù)服務(wù),以實現(xiàn)單用戶的更高利潤。
這種數(shù)據(jù)服務(wù)通常要求基帶芯片具有更好的性能。某些情況下,為了減少對基帶芯片的性能要求,也可以用應(yīng)用芯片執(zhí)行特定的應(yīng)用。應(yīng)用芯片和基帶芯片通常需要一個存儲器子系統(tǒng)。
便攜式電話的存儲器子系統(tǒng)是便攜式電話成本最高的元件之一,因此基帶芯片和應(yīng)用處理器訪問存儲器子系統(tǒng)的方式對便攜式電話的成本和性能具有顯著影響。
圖1a是基帶處理器及其存儲器子系統(tǒng)的圖示;圖1b是基帶處理器、其存儲器子系統(tǒng)、連接到基帶處理器的具有自己的存儲器子系統(tǒng)的應(yīng)用處理器的圖示;圖2a顯示了在基帶處理器和應(yīng)用處理器間共享的存儲器子系統(tǒng)的圖示,其中基帶處理器以直通方式(pass-through mode)通過應(yīng)用處理器訪問存儲器子系統(tǒng);圖2b是可替代的在基帶處理器和應(yīng)用處理器間共享的存儲器子系統(tǒng)的圖示,其中存儲總線被分開,基帶處理器以直通方式通過應(yīng)用處理器訪問存儲器子系統(tǒng);圖3顯示了存儲器子系統(tǒng)的兩條完全總線的圖示,其中基帶在一條存儲總線上訪問存儲器,同時應(yīng)用處理器在另一條總線上訪問另一個存儲器,并且當應(yīng)用處理器不運行或處于待機模式時,基帶處理器可通過其中任何一條總線訪問所有的存儲器。
圖4a、4b、4c、4d是各種存儲器訪問類型的時序圖;圖5是用于基帶處理器直通和應(yīng)用處理器訪問存儲器的各種多路復(fù)用器的示例圖;圖6顯示了為增強基帶處理器性能而采用應(yīng)用處理器中的L1或L2高速緩存的示例圖;圖7是通過應(yīng)用處理器更新或刷新LCD設(shè)備的有效機制的示例圖。
具體實施例方式
在下面的說明書中,基于說明目的,為充分了解本發(fā)明列舉了很多具體細節(jié)。然而,本領(lǐng)域技術(shù)人員應(yīng)該明白,即使沒有這些具體細節(jié)也可以實施本發(fā)明。在其他實施例中,為避免模糊本發(fā)明,用框圖來表示結(jié)構(gòu)和設(shè)備。
本說明書中提及的“一個實施例”是指與該實施例相關(guān)描述的一個特定的特征、結(jié)構(gòu)或特性已包括在本發(fā)明的至少一個實施例中。短語“在一個實施例中”在說明書很多地方的出現(xiàn)不一定是指同一實施例,也不一定是互相排除其他實施例的單獨的或可替換的實施例。而且,所描述的各種特征可能在一些實施例中被展示了而在其他實施例中沒有。類似地,所描述的各種要求可能是一些實施例的要求而不是其他實施例的要求。
可提供給便攜式電話的數(shù)據(jù)服務(wù)包括基于位置的服務(wù)、全球或基于地理位置的實時或延時新聞、顯示圖片的約會服務(wù)、體育賽事視頻流,二維(2D)和三維(3D)游戲、使用或不使用內(nèi)嵌在便攜式電話中的照相機的對動態(tài)圖象專家組(MPEG4)或聯(lián)合圖片專家組(JPEG)的支持或多媒體消息等。其中各個數(shù)據(jù)服務(wù)均由應(yīng)用產(chǎn)生,這要求基帶芯片具有更高的性能。當可以將應(yīng)用功能結(jié)合到基帶芯片時,將基帶調(diào)制功能和至少部分應(yīng)用分離到兩個獨立的芯片也是可能的。第二個芯片也將包括到便攜式電話的存儲器子系統(tǒng)的接口。
本發(fā)明提供了一種在空間和成本受限的便攜式電話環(huán)境中在基帶設(shè)備和應(yīng)用處理器間共享存儲器的機制。本發(fā)明提供了一種將應(yīng)用處理器與基帶處理器結(jié)合配置的機制,以便便攜式電話或其他這種系統(tǒng),如個人數(shù)字助理(PDA)、雙向?qū)ず魴C、掌上電腦、筆記本電腦等所需要的存儲器由基帶和應(yīng)用處理器共享,從而減少電源消耗和降低成本。特別地,共享存儲器的機制和訪問存儲器子系統(tǒng)所需的判決是這樣的沒有WAIT或READY信號的基帶具有對存儲器子系統(tǒng)的立即訪問權(quán),應(yīng)用處理器如果正在訪問存儲器則提前中止或中斷訪問并稍后再試。
圖1a是一個基帶芯片或處理器101如何連接到存儲器子系統(tǒng)102的各個存儲器的現(xiàn)有拓撲的一個例子。典型地,基帶處理器基帶總線包括地址線(AB)、控制線(CB)、片選(CSB)以及數(shù)據(jù)總線(DB)。在典型的便攜式電話中,有各種類型的存儲器,即如NOR閃存和/或NAND閃存和/或鏡像位(mirror-bit)閃存或ROM等的非易失性存儲器,以及如SRAM(如基于6晶體管的存儲器)或pSRAM(偽靜態(tài)RAM或其等效物)或基于SDRAM(同步DRAM)的存儲器等的易失存儲器。其中一些存儲器可以支持突發(fā)模式運行。存儲器102交疊顯示表示他們具有連接在存儲器和基帶處理器101間的相同的地址總線(AB)、數(shù)據(jù)總線(DB)和控制線(CB)以及他們可以具有連接自基帶處理器的獨立片選(CSB)。也可以將易失和非易失存儲器與基帶芯片集成在同一硅片上。典型地,啟動代碼和其他駐留軟件駐留在諸如NOR閃存或ROM等的非易失存儲器中,運行時數(shù)據(jù)和/或下載的程序從易失存儲器中運行。下載的程序還可以存儲在諸如閃存的非易失存儲器中。
典型便攜式電話中基帶處理器和存儲器間的數(shù)據(jù)總線(DB)是16位寬但也可以是32位或更多位。典型地,控制信號包括有諸如OE(輸出使能)、WE(寫入使能)和BE(字節(jié)使能)。還有多個CSB(片選)用于與基帶處理器對接的各個存儲設(shè)備,以及還有尋址同一基帶總線上其他設(shè)備的片選,這些設(shè)備諸如未在圖中示出的LCD、音頻設(shè)備或其他數(shù)字照相設(shè)備等。
一些基帶處理器也支持WAIT信號,當另一個設(shè)備聲明該信號時,其會導(dǎo)致基帶處理器等待基帶總線上的當前讀寫操作或訪問周期。也可選用READY信號,其中READY信號的聲明向基帶處理器指示基帶總線(DB)上要被讀取的數(shù)據(jù)就緒或基帶總線上的數(shù)據(jù)已經(jīng)被寫入或現(xiàn)在可以被寫入。也可以用跟READY信號相同的方式使用WAIT信號,以及用跟WAIT信號相同的方式使用READY信號。
在典型的便攜式電話中,基帶101控制基帶總線,基帶啟動總線上的處理。處理類型或訪問類型包括正常讀寫或突發(fā)讀寫。在一個實施例中,突發(fā)訪問類型的處理可以有一個從基帶101到存儲器的時鐘。為使其他設(shè)備啟動基帶總線上的處理,可以提供一種其他設(shè)備按序請求控制(即多主控功能)基帶總線的機制。雖然采用請求和授權(quán)類型信號協(xié)議的這種控制請求機制不是本發(fā)明的關(guān)鍵,本領(lǐng)域技術(shù)人員可以明白各種判決方案以及基帶處理器與需要控制基帶總線的其他設(shè)備間的相互連接。
在使用應(yīng)用處理器的便攜式電話中,應(yīng)用處理器也需要訪問各種(易失性和/或非易失性)存儲器。如果基帶沒有基帶總線上的多主控功能并且沒有WAIT或READY信號,要共享基帶處理器所用的存儲器是不切實際的。
圖1b是一個應(yīng)用處理器103與基帶總線對接且基帶維護對總線的控制的示例系統(tǒng)。應(yīng)用處理器是總線上的從設(shè)備,基帶處理器是主設(shè)備。應(yīng)用處理器103典型具有一個通訊緩沖器,用于在基帶處理器和位于應(yīng)用處理器中的處理器間通信。在多主控系統(tǒng)中,通訊緩沖器和信號量裝置也可以被集成到基帶處理器中。在一個實施例中,通訊緩沖器是內(nèi)嵌在應(yīng)用處理器中的雙端口存儲器或以雙端口存儲器實現(xiàn)的單口存儲器。存儲器的數(shù)量根據(jù)應(yīng)用而不同。在另一個實施例中,基帶和應(yīng)用處理器103問的通訊可以這樣實現(xiàn)在硬件上用應(yīng)用處理器中的寄存器或RAM作為所述一個或多個信號量裝置,同時加上預(yù)定的協(xié)議,數(shù)據(jù)可以駐留在與應(yīng)用處理器對接的存儲器104中。利用應(yīng)用處理器中的通訊緩沖器,信號量駐留在通信緩沖器的預(yù)定位置或作為應(yīng)用處理器中的獨立的寄存器或存儲器,或者駐留在存儲器子系統(tǒng)104中。這使得基帶可以與應(yīng)用處理器103同時運行。圖1b中的系統(tǒng)需要為存儲器子系統(tǒng)104和應(yīng)用處理器103提供空間。此外,因為存儲器子系統(tǒng)102不能被共享,存儲器子系統(tǒng)104會有額外成本和電源消耗。也可以機械地將應(yīng)用處理器103和存儲器子系統(tǒng)104堆疊到一個封裝包105中。如果不是生產(chǎn)中的測試,堆疊封裝包105的外部引腳或針腳處不必出現(xiàn)應(yīng)用處理器103和存儲器子系統(tǒng)104間的總線和接口。只有基帶總線接口必須在堆疊封裝包105的引腳或針腳處出現(xiàn)。至少部分系統(tǒng)總線,如103和104間的總線可以做在該封裝包的硅中介層或基板上。
應(yīng)用處理器103、201、203和301內(nèi)部具有執(zhí)行程序的必要機制。而且,應(yīng)用處理器103、201、203和301也可以實現(xiàn)上述的各種通訊緩沖器。執(zhí)行程序需要的機制包括到基帶處理器的接口、包含用于指令和數(shù)據(jù)的聯(lián)合高速緩存或一體式高速緩存的一個或多個CPU和/或數(shù)字信號處理器(DSPs)。各個處理器還包括用于提高各個處理器數(shù)據(jù)寫入性能的一個或多個寫入緩沖器,一個與存儲器子系統(tǒng)對接的存儲器控制器,一個用于內(nèi)部總線方案以及內(nèi)部總線和各種設(shè)備訪問存儲器子系統(tǒng)判決的狀態(tài)機,以及用于存儲器控制器的狀態(tài)機等。此外,應(yīng)用處理器103、201、203和301能加速Java字節(jié)代碼的執(zhí)行或其他平臺無關(guān)的中間語言如.NET的執(zhí)行。在一個實施例中,應(yīng)用處理器具有一個諸如Java或.NET的基于棧的虛擬機的硬件加速器。
在一個實施例中,Java字節(jié)代碼加速器與其中一個CPU集成在一起,而且當運行時,兩者共享指令和/或數(shù)據(jù)高速緩存或一體式高速緩存。在另一個實施例中,Java字節(jié)代碼加速器以獨立的加速器形式實現(xiàn)。該獨立的加速器還包括指令和/或數(shù)據(jù)高速緩存或一體式高速緩存。在一個實施例中,不是所有的Java字節(jié)代碼都由加速器執(zhí)行。不由加速器執(zhí)行的Java字節(jié)代碼由應(yīng)用處理器中的CPU或由基帶處理器以軟件形式執(zhí)行。為請求基帶處理器以軟件形式執(zhí)行某些Java代碼字節(jié),必須提供以下數(shù)據(jù)哪些Java字節(jié)代碼以軟件形式執(zhí)行,以軟件形式執(zhí)行的Java字節(jié)代碼在存儲器或Java程序計數(shù)器(Java PC)中的位置,以及傳給基帶處理器的其他參數(shù),如對字節(jié)代碼‘new’或‘newarray’,至少需要提供Java PC和對象引用。為實現(xiàn)它,應(yīng)用處理器有一個類似于下文描述的雙向通訊緩沖器,或者采用下文描述的相同通訊方法。還需要一個信號和/或寄存器中的一個狀態(tài)位指示加速器正在請求基帶或應(yīng)用處理器的CPU執(zhí)行Java字節(jié)代碼。該信號被查詢或被用作中斷。而且,應(yīng)用處理器還有其他的外圍設(shè)備或加速器,如MPEG4、數(shù)碼相機、LCD控制器、動態(tài)存儲器訪問(MDA)引擎、視頻定標器、2D/3D圖像加速器、圖像和/或視頻的片上幀緩沖器、IIC/S接口、可擴展標記語言(XML)加速器、諸如同步數(shù)據(jù)鏈路控制(SDLC)/高級數(shù)據(jù)鏈路控制(HDLC)的通訊端口等。
應(yīng)用處理器也可以稱為應(yīng)用加速器芯片。應(yīng)用處理器具有配置存儲器控制器和其他外圍設(shè)備功能的各種內(nèi)部寄存器。而且,對于圖1b所示的實施例,具有一個上述的在基帶和應(yīng)用處理器間通訊的通訊緩沖器。這個通訊緩沖器在其大小和需要多少通訊信號來建立與基帶處理器的通訊方面可以被配置。通訊緩沖器的配置在復(fù)位后缺省為已知數(shù)值,并可以由基帶處理器編程為其他數(shù)值。
為了在基帶處理器和應(yīng)用處理器間建立全雙工通訊,兩個處理器均必須管理這些信號量。在基帶處理器和應(yīng)用處理器間建立通訊的一個例子采用了下述協(xié)議。啟動(或硬件或軟件啟動復(fù)位)后,通訊緩沖器被清除(或假定被清除),信號量被清除或指示通訊緩沖器中沒有有效數(shù)據(jù)。通訊緩沖器被分成兩段,第一段用于基帶處理器寫入,第二段用于基帶處理器讀取。應(yīng)用處理器讀取第一段并寫入第二段。此外,兩個處理器都有自己的信號量寄存器(可替代地,信號量可以在存儲器或通訊緩沖器的已知位置),基帶處理器和應(yīng)用處理器可以在信號量寄存器中讀和/或?qū)懜髯缘挠糜诳刂苹蛲ㄓ嵉男盘柫俊?br>
接收消息的處理器只能清除寫消息的處理器所寫的信號量。也可以不清除信號量,而在信號量寄存器中存儲確認標記消息。在離開復(fù)位狀態(tài)或啟動后,各處理器將一條查詢消息寫進各自的允許自己寫入的通訊緩沖器段,查詢另一個處理器的存在狀態(tài)并寫入一條消息到各自的信號量寄存器,以指示有效的消息已寫到各自的通訊緩沖器。一個或兩個處理器可啟動這樣的查詢。
兩個處理器在讀取消息后可以清除或?qū)懭胍粭l指示消息已被讀取的確認消息到由另一個處理器寫入的信號量寄存器中。可被寫入信號量寄存器的消息的其他例子包括就緒、錯誤或重試消息等。只有在信號量被接收消息的處理器清除之后,發(fā)送消息的處理器才能再次寫入通訊緩沖器或發(fā)送另一條消息來響應(yīng)查詢。應(yīng)用處理器至少需要一個CS(片選),以使得基帶可以選擇寫入或從應(yīng)用處理器103中讀取。圖1b的示范實施例要求應(yīng)用處理器有額外的存儲器。而且,應(yīng)用處理器103不共享基帶處理器的存儲器子系統(tǒng)102。
圖2a例示了插入到基帶處理器及其存儲器子系統(tǒng)102間的應(yīng)用處理器201。基帶處理器要訪問存儲器子系統(tǒng),必須通過應(yīng)用處理器。在這個體系中,基帶沒有WAIT或READY信號輸入,應(yīng)用處理器201必須根據(jù)基帶處理器的需要,提供基帶訪問存儲器子系統(tǒng)102的機制。應(yīng)用處理器有多種方法允許基帶處理器訪問存儲器子系統(tǒng)。一種方法是通過上述的通訊緩沖器。另一種方法是按照下面將更詳細的描述那樣繞過通訊緩沖器而直接通過應(yīng)用處理器。在一個實施例中,允許上述的其中一種或兩種方法。
圖4a和圖4b表示基帶處理器典型的讀取和寫入周期。雖然他們顯示不同步,本領(lǐng)域技術(shù)人員會明白,當存在時鐘時,其他周期可能包括突發(fā)并且同步。在本例中,tRC(讀取訪問周期時間)和tWR(寫入訪問周期時間)分別表示完成讀寫存儲器訪問周期所占用的時間。如果應(yīng)用處理器正在訪問存儲器或正在進行其處理或訪問時,基帶處理器開始訪問存儲器子系統(tǒng),在一個實施例中,應(yīng)用處理器能夠完成當前處理然后允許基帶處理器直通訪問存儲器子系統(tǒng)102。這要求基帶處理器的訪問周期長于當基帶處理器不必等待應(yīng)用處理器201完成其周期時所需要的訪問周期時間。在另一個實施例中,應(yīng)用處理器201會立即中斷當前訪問以便允許基帶處理器直通通過。在這個實施例中,應(yīng)用處理器201保持一個中斷當前訪問的指示,立即允許基帶處理器直通訪問存儲器子系統(tǒng)102。圖4c顯示了應(yīng)用處理器中的存儲控制器啟動的存儲器讀取周期(CSM、AM、DM、UB/LB、OEM、WEM),該周期在時間tABORT時由于基帶處理器寫入存儲器子系統(tǒng)(由CSB變?yōu)榈碗娖街甘?而被中斷。由應(yīng)用啟動的存儲器訪問被顯示為通過地址AM而中斷,其有效時間比完全訪問時間短(<tRC)。
圖4d表示應(yīng)用處理器寫入存儲器并被要求讀取存儲器的基帶處理器中斷從而使得應(yīng)用處理器中的存儲器控制器通過地址AM中斷其寫入周期,該周期小于完全周期(<tWR)。雖然沒有示出所有的組合,本領(lǐng)域技術(shù)人員可以明白,包括基帶中斷和訪問存儲器子系統(tǒng)中CSM(到存儲器的片選)有效的不同存儲器的所有組合也會比完全周期短。
基帶訪問存儲器的直通可以通過設(shè)置一組地址、數(shù)據(jù)和控制的多路復(fù)用器(如圖5所示)而實現(xiàn),這組多路復(fù)用器可根據(jù)一個或多個CSB(來自基帶的訪問存儲器子系統(tǒng)102的片選)的有效來切換選擇基帶總線的地址、數(shù)據(jù)和控制。當應(yīng)用處理器201訪問存儲器時,多路復(fù)用器設(shè)置為選擇由應(yīng)用處理器201中的存儲器控制器產(chǎn)生的地址、數(shù)據(jù)和控制線。一個或多個CSB的有效可由定時的雙穩(wěn)態(tài)多諧振蕩器和/或S/R(set/reset)雙穩(wěn)態(tài)多諧振蕩器進行同步以產(chǎn)生基帶正在直通通過的指示,從而產(chǎn)生一個應(yīng)用處理器的訪問被提前中止的指示。一旦同步器指示基帶不再訪問存儲器,應(yīng)用處理器的存儲器訪問就可以被重試。
在一個實施例中,檢測基帶處理器訪問的同步器使用應(yīng)用處理器內(nèi)時鐘的上升和下降沿。這使得對基帶訪問的檢測更快。同一時鐘也用于應(yīng)用處理器的存儲器控制器??商娲兀梢允褂帽绘i相環(huán)(PLL)升頻或被時鐘分頻電路降頻的時鐘。應(yīng)注意截斷易失存儲器設(shè)備的訪問會導(dǎo)致基于動態(tài)RAM技術(shù)如偽靜態(tài)RAM的存儲器的存儲核心數(shù)據(jù)丟失?;诹w管(6T)的SRAM當寫入SRAM且寫入周期被中止時也有這個問題。在6T SRAM中,如果當行和/或列解碼器未完成解碼地址時寫入周期被中斷,數(shù)據(jù)可能會丟失或被寫入存儲器的未知位置。
為避免在未知的位置丟失或損壞數(shù)據(jù),在一個實施例中,在存儲器中的解碼器確定位置后或完全訪問時間達到后,應(yīng)用處理器103、201、203、301會使到存儲器子系統(tǒng)的WE信號有效。在該解碼器確定地址時間后,數(shù)據(jù)可能被損壞的位置已經(jīng)知道,就是出現(xiàn)的存儲器寫入的地址。上述的應(yīng)用處理器中的存儲器控制器能產(chǎn)生包括突發(fā)和同步周期在內(nèi)的必要的存儲周期類型。在一個實施例中,應(yīng)用處理器103、201、203、或301會保存被損壞的位置的地址和數(shù)據(jù),一旦基帶處理器結(jié)束訪問就重寫數(shù)據(jù)到該地址。雖然由于6晶體管(6T)SRAM的結(jié)構(gòu)該技術(shù)可以使用它,但偽靜態(tài)SRAM(pSRAM)由于提前中止的周期而有在多個位置丟失數(shù)據(jù)的問題,所述周期具有如圖4c和圖4d所示類型,并分別小于tRC(<tRC)或小于tWR(<tWR)。這是由于pSRAM具有每一位由一個晶體管和一個電容器構(gòu)成的內(nèi)部結(jié)構(gòu)所以有類似DRAM的結(jié)構(gòu)。
就像DRAM一樣,pSRAM也需要有內(nèi)部產(chǎn)生的周期刷新。典型地,pSRAM的內(nèi)部運行比說明的或宣稱的訪問速度要快。在典型的pSRAM中,有一個采用定時器產(chǎn)生刷新請求的機制,其中一行數(shù)據(jù)將被讀取和重新存儲。還有一個行地址計數(shù)器可以增量或減量以指示刷新哪一行。對于每個刷新請求,每行數(shù)據(jù)都以這種方式刷新直到所有的行被刷新。這種刷新機制持續(xù)運行以便pSRAM中的所有行都定期被刷新。如果刷新機制停止,pSRAM在一定時間后會丟失數(shù)據(jù)??赡芤粋€刷新周期剛開始外部設(shè)備就想訪問pSRAM。pSRAM典型地完成刷新周期然后允許外部設(shè)備訪問。外部設(shè)備將經(jīng)歷更長的訪問時間(大約兩倍長的時間),因為它必須先允許刷新周期結(jié)束。因為刷新請求對于pSRAM內(nèi)部是異步產(chǎn)生的,什么時候發(fā)生刷新周期是不可預(yù)測的,因此指定的pSRAM的訪問時間包括刷新周期時間。當內(nèi)部刷新請求與外部訪問相重時,有一個邏輯來判決和管理訪問及刷新。
典型地,pSRAM和SDRAM經(jīng)歷地址解碼、內(nèi)部行訪問和預(yù)充電周期,因為訪問通常使被訪問的特定行的核心的數(shù)據(jù)放電,預(yù)充電周期補充數(shù)據(jù)。這種pSRAM的一個要求是在整個存儲器訪問周期至少地址必須是穩(wěn)定的。如果在整個周期地址不穩(wěn)定,可能會丟失一整行或部分行數(shù)據(jù)。這是因為一旦一行的訪問開始,如果在DRAM單元的預(yù)充電周期之前行地址改變,就會馬上進行對另一行的新的訪問,這樣前一行的數(shù)據(jù)就會丟失。在一個實施例中,pSRAM在開始對新的地址訪問前等待預(yù)充電周期完成。在一個實施例中,要求pSRAM對地址和片選都具有這個特性。
如果在基帶處理器開始直通訪問且一個刷新請求到來時應(yīng)用處理器正在訪問pSRAM,pSRAM必須應(yīng)付要求訪問pSRAM的三個設(shè)備,這會導(dǎo)致數(shù)據(jù)損壞。如果三個訪問中的每一個都同時發(fā)生并允許一個接一個地完成,對于其中一個設(shè)備來說訪問時間將超過兩倍長于內(nèi)部訪問時間,這會導(dǎo)致性能的顯著下降。
為克服這個問題,在一個實施例中,提出了如圖4c和圖4d中REF#所示的機制,它禁止pSRAM的內(nèi)部刷新請求并產(chǎn)生一個指示何時刷新的外部刷新請求信號。禁止pSRAM的內(nèi)部刷新可以通過使另一個信號有效而實現(xiàn)。在一個實施例中,當應(yīng)用處理器通過刷新計數(shù)器和判決邏輯而不訪問pSRAM時,外部刷新信號由應(yīng)用處理器產(chǎn)生。當刷新請求由應(yīng)用處理器產(chǎn)生時,pSRAM的行地址計數(shù)器可被pSRAM用來指示刷新哪行??商娲?,行地址計數(shù)器可以來自應(yīng)用處理器。
在一個實施例中,當應(yīng)用處理器正在訪問存儲器子系統(tǒng)且基帶處理器在應(yīng)用處理器完成訪問前開始訪問存儲器子系統(tǒng)時,應(yīng)用處理器使到基帶處理器的WAIT信號有效,或使到基帶處理器的READY信號無效,這取決于基帶處理器支持哪種類型的信號。這些信號會延遲基帶處理器,同時應(yīng)用處理器完成其訪問。在READY信號被有效的情況下,基帶處理器對其完成的讀寫操作可以期望有效的數(shù)據(jù)。在這種情況下,應(yīng)用處理器在完成其訪問后會保持WAIT信號有效或READY信號無效。然后應(yīng)用處理器使多路復(fù)用器向存儲器子系統(tǒng)提供基帶地址、數(shù)據(jù)(在基帶寫入訪問情況下,否則數(shù)據(jù)被讀取)和控制線,從而代表基帶處理器啟動一個其時間足夠完成對存儲器子系統(tǒng)的完全訪問的訪問。此后,應(yīng)用處理器會使到基帶處理器的WAIT信號無效或READY信號有效。這樣,當WAIT信號被無效或READY信號被有效時,基帶處理器就得到有效數(shù)據(jù)。
應(yīng)用處理器103、201、203和301包括當應(yīng)用處理器正在訪問存儲器子系統(tǒng)時檢測要求訪問的基帶處理器的邏輯。應(yīng)用處理器還包括代表基帶至少部分管理存儲器訪問的狀態(tài)機。
在一個實施例中,存儲器子系統(tǒng)除了有其他類型的存儲器外,還具有帶多個內(nèi)接組(internal bank)的SDRAM。如果基帶處理器表現(xiàn)為異步類型定時,SDRAM存儲器希望與一個時鐘同步定時,應(yīng)用處理器檢測基帶訪問和對應(yīng)用處理器時鐘的同步,訪問SDRAM以完成到SDRAM的讀取、寫入、突發(fā)讀取或突發(fā)寫入?;鶐Ш蛻?yīng)用處理器的時鐘可以是互相同步或異步的。
在一個實施例中,為防止SDRAM中的數(shù)據(jù)以與上述的pSRAM類似的方式丟失,當應(yīng)用處理器正訪問存儲器子系統(tǒng)時基帶處理器啟動了一個對存儲器子系統(tǒng)的訪問(從而要求直通),而應(yīng)用處理器還沒有結(jié)束時,應(yīng)用處理器103、201、203和301會訪問SDRAM的一個或多個協(xié)定的或分配給它的組(bank),但不是SDRAM中的所有組。此外,基帶處理器只訪問應(yīng)用處理器沒有訪問的組。只有在應(yīng)用處理器運行時才能觀察到這種運行模式,否則基帶可隨時訪問所有的組。在這種運行方式下,當基帶要求直通時,應(yīng)用處理器103、201、203和301中的SDRAM控制器在基帶要求直通時可以為應(yīng)用處理器空出至少一個SDRAM組,在直通期間和/或之后只簡單地打開和/或關(guān)閉基帶控制器要求的組。
在另一個實施例中,應(yīng)用處理器203有一個分離的總線可以用于如圖2b所示的存儲器分為兩組的存儲器子系統(tǒng)。組206有地址(AM2)、數(shù)據(jù)(DM)、片選(CSM2)和控制(CM2),組205有自己的地址(AM1)、片選(CSM1)和控制(CM1)而與組206共享數(shù)據(jù)總線(DM)。允許基帶處理器根據(jù)需要訪問組206,只有當應(yīng)用處理器203處于待機模式或不訪問存儲器時才允許基帶處理器訪問組205。相反地,應(yīng)用處理器可以根據(jù)需要訪問組205的存儲器以及組206中的非易失性存儲器,因為非易失性存儲器沒有由于提前中止周期而丟失數(shù)據(jù)的問題。如果6T SRAM用于易失性存儲則不需要該限制,在這種情況下應(yīng)用處理器或基帶處理器都可以隨時訪問兩個組。此外因為基帶處理器可隨時訪問組206的存儲器,地址和除到組205的OE外的控制在基帶處理器訪問組206期間保持穩(wěn)定不改變。同時因為共享數(shù)據(jù)總線,對組205和206來說至少OE控制線需要獨立控制,以便同時從存儲器組205和/或206和/或從應(yīng)用處理器203驅(qū)動數(shù)據(jù)總線時沒有沖突。
為避免數(shù)據(jù)總線上的任何沖突,應(yīng)用處理器203使到組205存儲器的OE無效。在一個實施例中,當基帶處理器訪問組206時,應(yīng)用處理器203會在它的存儲器控制器狀態(tài)機中產(chǎn)生一個內(nèi)部延遲或等待。到組205存儲器的地址(AM1)在這個時候和此后完成訪問時保持有效和穩(wěn)定??梢杂门c地址(AM1)相同的方式處理到組205的CSM1和/或WE、BLE、BHE。
在另一個實施例中,應(yīng)用處理器會鎖定到組205的地址(AM1)并且在使到組205存儲器的OE無效的同時將其保持鎖定,從而避免數(shù)據(jù)總線沖突。一旦基帶處理器結(jié)束訪問,應(yīng)用處理器203存儲器控制器狀態(tài)機從開始或中途通過存儲器控制器狀態(tài)機重新開始存儲器訪問。為實現(xiàn)此目的,上面提到的同步器用于檢測基帶處理器的訪問,由此任何從基帶處理器到組206的片選將被同步以產(chǎn)生一個直通的指示。如果應(yīng)用處理器正在從存儲器中讀取數(shù)據(jù)且基帶處理器試圖寫數(shù)據(jù)到存儲器,就會有短時間的總線沖突,直到由于直通的原因應(yīng)用處理器開始驅(qū)動到存儲器的數(shù)據(jù)總線而使得存儲器輸出被禁止。當應(yīng)用處理器正從存儲器中讀取數(shù)據(jù)同時基帶處理器試圖以直通方式從另一個存儲器讀取或?qū)懭霐?shù)據(jù)時,就會發(fā)生沖突。在一個實施例中,應(yīng)用處理器103、201、203和301在基帶剛開始訪問時的短時間內(nèi)不會驅(qū)動到存儲器的數(shù)據(jù)總線,從而避免總線沖突。此外,雖然基帶處理器可能使其OE有效,到所有存儲器的OE信號會在類似的短時間內(nèi)被無效。這段短時間是可編程的且在復(fù)位后有一個缺省值。應(yīng)該注意組205和206的存儲器可以包括易失性和/或非易失性存儲器的任何混合。
在另一個實施例中,如圖3所示,應(yīng)用處理器301有兩個完全的和獨立的總線到兩組存儲器302和303。兩組存儲器有獨立的地址、數(shù)據(jù)、片選和控制線。例如,基帶處理器可以隨時訪問組303,應(yīng)用處理器301可隨時訪問組302。應(yīng)用處理器301也可以在首先確定沒有從基帶處理器到組303的訪問的情況下訪問組303中的非易失性存儲器。到非易失性存儲器的訪問可以被提前中止然后重新開始。如果來自基帶處理器的存儲器訪問是和應(yīng)用處理器及其存儲器控制器中的時鐘同步的,就沒有必要采用同步器檢測直通。只需要檢測CSB信號的有效來確定何時允許直通。
對于應(yīng)用處理器103、201和203,防止總線沖突的機制可以被集成到應(yīng)用處理器301中。應(yīng)用處理器501中描述的多路復(fù)用器用于直通。多路復(fù)用器502、503、504、505和506可以有單獨的直通操作選擇信號,這樣他們可以被獨立或通過一個公共選擇進行控制。當基帶處理器對存儲器子系統(tǒng)執(zhí)行讀取訪問時,多路復(fù)用器505、506用于使從存儲器讀取到基帶處理器的數(shù)據(jù)通過,否則多路復(fù)用器505、506用于讀取內(nèi)部數(shù)據(jù)到應(yīng)用處理器501。在一個實施例中,至少一個如圖5所示的多路復(fù)用器也在應(yīng)用處理器103、201、203和301中。在一個實施例中,應(yīng)用處理器103、201、203和/或301以及至少部分或全部存儲器子系統(tǒng)在堆疊封裝包中,其中應(yīng)用處理器和存儲器底座堆疊在一個封裝包中。在堆疊封裝包的另一個實施例中,一些底座被并排放在一個或多個堆疊層。在另一個實施例中,其中的一個堆疊層是一個硅插入層,以便于到安裝在插入層的底座或到堆疊層的其他底座或封裝包的基底的信號、總線和/或電源的布線。這種封裝將提供便攜式電話或其他設(shè)備的節(jié)省空間的應(yīng)用。
因為基帶處理器的功能是提供與基站的語音和/或數(shù)據(jù)通訊,對基帶的性能要求不是很高。因為這個原因,市場上有很多基帶處理器沒有緩存。對于沒有高速緩存和WAIT或READY信號的基帶處理器,圖6表示了一個將用于基帶的高速緩存與高速緩存控制器結(jié)合進上面提到的應(yīng)用處理器中從而使得基帶處理器有較高性能的實施例。應(yīng)用處理器中的高速緩存作為沒有高速緩存的基帶處理器的一級高速緩存。在另一個實施例中,具有高速緩存的基帶處理器也與具有集成高速緩存的應(yīng)用處理器對接以便應(yīng)用處理器的高速緩存作為二級高速緩存工作。這些高速緩存可以是指令和/或數(shù)據(jù)高速緩存或一體式高速緩存。
圖7表示應(yīng)用處理器701,它類似于上面描述的任何一個應(yīng)用處理器。此外,應(yīng)用處理器701包括到LCD或其他顯示設(shè)備703的接口。在一個實施例中,存儲圖像的幀緩沖器包含在存儲器子系統(tǒng)702中。在一個實施例中,在收到基帶處理器的命令后,應(yīng)用處理器701通過把幀緩沖器從存儲器子系統(tǒng)復(fù)制到顯示設(shè)備來加載或更新顯示設(shè)備中的圖像。存儲器子系統(tǒng)的數(shù)據(jù)總線也連接到顯示設(shè)備數(shù)據(jù)總線,應(yīng)用處理器701到顯示設(shè)備的地址和/或控制信號被有效以將圖像加載入顯示設(shè)備。當?shù)斤@示設(shè)備的地址和/或控制信號有效時,應(yīng)用處理器701執(zhí)行從存儲器子系統(tǒng)的讀取訪問操作,從而當圖像數(shù)據(jù)從幀緩沖器被讀取時直接加載到顯示設(shè)備。這提供了一條將圖像數(shù)據(jù)加載到顯示設(shè)備的消耗更少電能的有效途徑,從而延長了便攜式電話的電池壽命。
在另一個實施例中,幀緩沖器被結(jié)合到應(yīng)用處理器701中,數(shù)據(jù)從701直接送到顯示設(shè)備。對于這些實施例來說,都必須有一個顯示設(shè)備X方向的單元數(shù)和顯示設(shè)備Y方向的單元數(shù)以及幀緩沖器在存儲器的什么位置的指示。
此外應(yīng)用處理器701能夠從基帶處理器接收更新圖像的命令,并能在顯示設(shè)備上加載圖像。應(yīng)用處理器產(chǎn)生從存儲器內(nèi)部讀取幀緩沖器所需要的至少部分地址。在一個實施例中,維護X和Y方向的計數(shù)器以產(chǎn)生存儲器地址。在另一個實施例中,有一個應(yīng)用存儲器701正在將圖像數(shù)據(jù)加載到顯示設(shè)備的指示和/或圖像加載已經(jīng)完成的指示。在另一個實施例中,如果顯示設(shè)備正被加載圖像時基帶處理器試圖訪問存儲器子系統(tǒng),WAIT信號會被有效或READY信號會被無效直到圖像被加載。圖像加載可以中途被停止以允許基帶處理器直通。
雖然參照應(yīng)用處理器103、201、203、301、501、601和701展示了各發(fā)明,本領(lǐng)域技術(shù)人員明白這里公開的所有發(fā)明適用于所有的應(yīng)用處理器。
雖然本發(fā)明是參照具體的示范實施例進行描述的,很顯然可以對這些實施例進行各種修改和變化而不偏離權(quán)力要求書中所述的本發(fā)明更寬的發(fā)明精神。因此,應(yīng)將說明書和附圖看作是具有示例意義而不是限制意義。
權(quán)利要求
1.一種訪問存儲器的方法,該方法包括將第一處理器對存儲器子系統(tǒng)的存儲器處理發(fā)送到介于第一處理器和存儲器子系統(tǒng)之間的通訊路徑上的中間第二處理器;以及控制何時允許存儲器處理通過第二處理器到達存儲器子系統(tǒng)。
2.如權(quán)力要求1所述的方法,其中控制包括延遲存儲器處理的通過。
3.如權(quán)力要求2所述的方法,其中延遲存儲器事務(wù)的通過包括由第二處理器使到第一處理器的WAIT信號有效或READY信號無效。
4.如權(quán)力要求2所述的方法,其中延遲的時間足以允許由第二處理器啟動的存儲器子系統(tǒng)的當前存儲器周期完成。
5.如權(quán)力要求1所述的方法,其中控制步驟包括中斷由第二處理器啟動的存儲器子系統(tǒng)的當前存儲器周期。
6.如權(quán)力要求5所述的方法,其中只有在當前存儲器周期可被安全中斷而不丟失數(shù)據(jù)的情況下中斷才被執(zhí)行。
7.如權(quán)力要求6所述的方法,其中僅當存儲器子系統(tǒng)包含有在存儲器訪問被提前中止時可以維護數(shù)據(jù)完整性的存儲設(shè)備的情況下中斷才被執(zhí)行。
8.如權(quán)力要求7所述的方法,其中控制包括將來自第一處理器的地址、數(shù)據(jù)和控制信號通過第二處理器中的多路復(fù)用裝置傳送到存儲器子系統(tǒng),所述多路復(fù)用裝置用于在來自第一處理器的片選信號有效時選擇地址、數(shù)據(jù)和控制信號。
9.如權(quán)力要求8所述的方法,其中如果來自第二處理器的片選信號有效,所述多路復(fù)用裝置選擇由第二處理器的存儲器控制器產(chǎn)生的地址、數(shù)據(jù)和控制信號。
10.如權(quán)力要求8所述的方法,還包括對來自第一處理器的一個或多個片選信號的有效進行同步,以指示存儲器處理何時被傳送到存儲器子系統(tǒng)。
11.如權(quán)力要求10所述的方法,還包括保存與被中斷的當前存儲器周期相關(guān)的信息。
12.如權(quán)力要求11所述的方法,其中在傳送的存儲器處理完成后繼續(xù)被中斷的當前存儲器周期。
13.如權(quán)力要求1所述的方法,其中第二處理器執(zhí)行與平臺無關(guān)的中間語言指令。
14.如權(quán)力要求1所述的方法,還包括禁止存儲器子系統(tǒng)的存儲設(shè)備內(nèi)部產(chǎn)生的異步刷新請求;以及產(chǎn)生外部刷新請求信號以向存儲設(shè)備指示何時執(zhí)行刷新。
15.如權(quán)力要求14所述的方法,其中外部刷新請求信號在第二處理器不訪問存儲器時由第二處理器產(chǎn)生。
16.如權(quán)力要求1所述的方法,其中第一處理器是移動通訊設(shè)備的基帶處理器。
17.如權(quán)力要求1所述的方法,其中第二處理器是移動通訊設(shè)備的應(yīng)用處理器。
18.一個系統(tǒng),包括第一處理器;存儲器子系統(tǒng);第一處理器和存儲器子系統(tǒng)間的允許第一處理器訪問存儲器子系統(tǒng)的通訊路徑;以及介于第一處理器和存儲器子系統(tǒng)之間并確定通訊路徑上一個中間點的第二處理器,第二處理器包括控制第一和第二處理器訪問存儲器子系統(tǒng)的存儲器控制器。
19.如權(quán)力要求18所述的系統(tǒng),其中所述的通訊路徑包括在第一和第二處理器之間的第一總線和在第二處理器和存儲器子系統(tǒng)之間的第二總線。
20.如權(quán)力要求18所述的系統(tǒng),其中第二總線包括將第二處理器分別連接到存儲器子系統(tǒng)中的第一和第二組存儲設(shè)備的單獨的地址和控制線。
21.如權(quán)力要求20所述的系統(tǒng),其中第一組存儲設(shè)備可由第一處理器根據(jù)需要訪問;第二組存儲設(shè)備只有當不被第二處理器訪問時才可以被第一處理器訪問。
22.如權(quán)力要求21所述的系統(tǒng),其中第一組存儲元件中的非易失性存儲設(shè)備只有當不被第一處理器訪問時才可以被第二處理器訪問。
23.如權(quán)力要求18所述的系統(tǒng),其中第二總線包括兩個單獨的總線,各個總線分別將第二處理器連接到存儲器子系統(tǒng)中的第一和第二組存儲設(shè)備。
24.如權(quán)力要求18所述的系統(tǒng),其中第二處理器包括檢測第一處理器何時產(chǎn)生到存儲器子系統(tǒng)的存儲器周期信號的檢測機制。
25.如權(quán)力要求24所述的系統(tǒng),其中第二處理器包括直通機制以允許檢測到的來自第一處理器的存儲器周期信號通過第二處理器。
26.如權(quán)力要求25所述的系統(tǒng),其中如果第二處理器沒有訪問存儲器子系統(tǒng),直通機制允許檢測到的存儲周期信號立即直通通過到達存儲器子系統(tǒng)。
27.如權(quán)力要求26所述的系統(tǒng),其中直通機制延遲檢測到的存儲周期信號直通通過到達存儲器子系統(tǒng),直到第二處理器對存儲器子系統(tǒng)的當前存儲器訪問可被中斷而不丟失數(shù)據(jù)。
全文摘要
在一個實施例中,本發(fā)明提供了一種訪問存儲器的方法。該方法包括將第一處理器對存儲器子系統(tǒng)的存儲器處理發(fā)送到介于第一處理器和存儲器子系統(tǒng)之間的通訊路徑上的中間第二處理器;以及控制何時允許存儲器處理通過第二處理器到達存儲器子系統(tǒng)。
文檔編號H04M1/725GK1592894SQ03801549
公開日2005年3月9日 申請日期2003年6月11日 優(yōu)先權(quán)日2002年6月27日
發(fā)明者M·K·帕特爾 申請人:納佐米通訊公司