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

存儲器控制器和用于對存儲器寫入的方法

文檔序號:6376167閱讀:162來源:國知局
專利名稱:存儲器控制器和用于對存儲器寫入的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于具有至少一個存儲單元的存儲器的控制器,該存儲單元對于寫入比對于讀出涉及更高的成本。本發(fā)明進一步涉及一種用于對這種存儲器寫入的方法。
磁隨機存取存儲器(MRAN)提供優(yōu)于現(xiàn)有RAM技術(shù)的許多優(yōu)點利用MRAM,則聲稱達(dá)到靜態(tài)RAM(SRAM)的寫入和讀出速度、動態(tài)RAM(DRAM)的密度以及快閃存儲器的非易失性。
另一方面,MRAM的一個缺陷是寫入操作的功率消耗,其大約比讀出操作的功率消耗高一個量級。
US6052303公開了一種用于MRAM系統(tǒng)的控制器,其包括適于對被寫入至MRAM的給定地址的寫入數(shù)據(jù)位與具有該給定地址的單元中存儲的存儲器數(shù)據(jù)位進行比較的比較單元。只有當(dāng)寫入數(shù)據(jù)位不同于存儲器數(shù)據(jù)位時才執(zhí)行對該存儲單元的寫入操作。該系統(tǒng)和在其中實現(xiàn)的方法具有僅必須時才施加寫入電流的優(yōu)點,也就是在不得不改變單元的狀態(tài)以執(zhí)行待處理寫入請求的時候。這節(jié)省了用于寫入操作的能量,在寫入位等于當(dāng)前存儲于其中的存儲器位時,能量就不必另外用于重寫單元。
然而,該控制器和用于對在其中采用的MRAM寫入的方法的缺陷是,在存儲器數(shù)據(jù)與寫入數(shù)據(jù)的比較中涉及的讀出操作,以及數(shù)據(jù)的比較操作增大了在對存儲器的寫入中涉及的延遲。這在讀出、比較以及最終的寫入操作時阻礙了中央處理器(CPU)或任何其它存儲器用戶對該存儲器的訪問。這又降低了利用這種MRAM控制器和寫入方法的數(shù)據(jù)處理系統(tǒng)的整體速度。
這種問題是普遍的。它存在于其中寫入操作的成本高于讀出操作的成本的任何已知存儲器類型。它也涉及例如基于鐵電存儲器單元(FERAM)的非易失性存儲器??蓪⑿g(shù)語“成本”理解為與寫入過程相關(guān)的任何可測量的量,比如能量、時間、功率、電流密度或電壓。
因此本發(fā)明的目的是提供一種用于這種存儲器的控制器以及一方面減小用于寫入操作的成本和另一方面允許對存儲器的快速訪問的寫入方法。
依據(jù)本發(fā)明的第一方面,提供一種用于具有至少一個存儲單元的存儲器的控制器,所述存儲單元被分配第一地址信息,并適于存儲存儲器數(shù)據(jù),其對于寫入比對于讀出涉及更高的成本。所述存儲器控制器包括與所述存儲器連接的寄存器,并具有用于寫入數(shù)據(jù)和用于其被分配的地址信息的寄存器空間,與所述寄存器和所述存儲器連接的寫入控制器,并適于接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,確定所述第一地址信息是否存儲于所述寄存器中,如果是,對所述第一寫入數(shù)據(jù)與被分配至所述第一地址信息的所述寄存器中的第二寫入數(shù)據(jù)進行比較,如果不是,對所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器,如果第一或第二寫入數(shù)據(jù)分別不同于所述存儲器數(shù)據(jù),則分別初始化所述第一或第二寫入數(shù)據(jù)從所述寄存器到所述存儲器的寫入操作。
本發(fā)明的存儲器控制器具有與存儲器連接的寄存器。術(shù)語寄存器在本發(fā)明的上下文中用于任何類型的快速訪問、臨時存儲裝置。下面將說明利用不同類型的寄存器的優(yōu)選實施例。在操作中,寄存器可以用于臨時存儲寫入數(shù)據(jù),在上下文中其也被稱為第一寫入數(shù)據(jù),而地址數(shù)據(jù)在上下文中也被稱為其被分配的第一地址信息。存儲器控制器一旦已服務(wù)包含第一地址數(shù)據(jù)和第一寫入數(shù)據(jù)的寫入請求,就開放寄存器中對應(yīng)的存儲空間,以用于另一寫入請求。
相比于例如是MRAM的實際存儲器,寄存器中數(shù)據(jù)存儲的臨時特征允許已知的用于具有寫入的低成本的寄存器的半導(dǎo)體存儲技術(shù)的使用。
當(dāng)沒有其它存儲器用戶請求對該存儲器訪問時,利用寄存器允許存儲器控制器及時推遲對一點的所請求的寫入操作??梢栽诩拇嫫髦信R時存儲寫入請求,也就是存儲第一寫入數(shù)據(jù)和其被分配的第一地址信息。這使得即使當(dāng)一個或多個寫入請求待處理時,該存儲器也可用于其它存儲器用戶。比起不使用寄存器并因此存儲器在寫入請求正在被存儲器控制器服務(wù)時是不可訪問的解決方案,這種方式增大了對存儲器的整體訪問速度。
寄存器可以與控制器集成為一個集成電路(IC)。此外,可在存儲器附近實施寄存器,以便避免寫入操作中數(shù)據(jù)行進的長的距離。這樣,控制器和具有存儲器的寄存器集成的一個存儲裝置提供了本發(fā)明的一個實施例,其最大限度地增大了對存儲器的寫入和讀出訪問的速度。
在本發(fā)明的存儲器控制器中,寫入控制器與寄存器和存儲器連接。在操作中,寫入控制器通常用于讓存儲器控制器僅對那些存儲單元執(zhí)行寫入操作,所述存儲單元具有存儲的存儲器數(shù)據(jù)位,該存儲的存儲器數(shù)據(jù)位不同于被分配給被服務(wù)的寫入請求的存儲單元的相應(yīng)地址的第一寫入數(shù)據(jù)位。為此,寫入控制器適于對第一寫入數(shù)據(jù)和分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,并且如果第一寫入數(shù)據(jù)不同于第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù),則分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至寄存器。
此外,本發(fā)明的存儲器控制器的寫入控制器適于管理到寄存器的輸入操作和來自寄存器的輸出操作。它提供了對用于全部存儲器用戶的存儲器的寫入訪問,而不用使寄存器對用戶“可見”。
依據(jù)本發(fā)明,寫入控制器在寫入操作前適于確定是否將寫入請求導(dǎo)引至存儲器地址,對于該存儲器地址,在寄存器中已存在待處理寫入請求。該較早的寫入請求的寫入數(shù)據(jù)在本上下文中被稱為第二寫入數(shù)據(jù),并且對應(yīng)的地址信息被稱為第二地址信息。在第一種情況中,其中不存在等于寄存器中的第一地址信息的第二地址信息,在第一寫入數(shù)據(jù)和被分配至第一地址信息的存儲器數(shù)據(jù)之間進行比較。在存在對相同的存儲器地址的較早的寫入請求的第二種情況中,就不必訪問存儲器。最好在第一和第二寫入數(shù)據(jù)之間進行比較。僅僅不同于寄存器中(較早的)第二寫入數(shù)據(jù)的那些第一寫入數(shù)據(jù)需要被寫入存儲器,在時間上便利的點處等待從寄存器至存儲器的寫入操作。第一寫入數(shù)據(jù)一般隨同有關(guān)第一地址信息一起被存儲在寄存器中。
在本發(fā)明的存儲器控制器中,將第一地址信息和第一寫入數(shù)據(jù)傳送至寄存器,而不管在隨后的時間是否將它們實際寫入存儲器。然而,只有當(dāng)?shù)谝粚懭霐?shù)據(jù)不同于對應(yīng)于第一地址信息的地址處的存儲器數(shù)據(jù)時,寫入控制器才適于初始化第一寫入數(shù)據(jù)從寄存器至存儲器的寫入操作。
這樣,通過提供剛才如上所述的寄存器的合適的管理,本發(fā)明的存儲器控制器允許在大多數(shù)情形下對存儲器的短的訪問時間。
提供寄存器的合適的存儲容量是實際系統(tǒng)設(shè)計的問題。存儲容量越高,可以推遲的請求就越多。然而,由于寄存器的易失特性,大量延遲的寫入請求承受系統(tǒng)崩潰時數(shù)據(jù)丟失的風(fēng)險。
該存儲器控制器可以用于任何尺寸的存儲器,原則上首先為單單元結(jié)構(gòu)。該存儲器控制器具有用于較大存儲結(jié)構(gòu)的大多數(shù)優(yōu)點,特別是較大的MRAM結(jié)構(gòu)。
在優(yōu)選實施例中,所述寄存器是FIFO寄存器。在FIFO寄存器中,將當(dāng)前寫入請求附加至仍在等待寫入操作的較早的寫入請求的隊列的末端。以先進先出的順序為請求服務(wù),其中“進”意味著輸入進入寄存器,而“出”意味著從寄存器至存儲器的寫入操作。
本發(fā)明的進一步的優(yōu)選實施例包括與所述寄存器和所述存儲器連接的讀出控制器。所述讀出控制器適于接收包括所述第一地址信息的讀出請求,確定所述第一地址信息是否存儲于所述寄存器中,根據(jù)所述第一地址信息是否存儲于所述寄存器中,分別傳送所述讀出請求至所述寄存器或所述存儲器。該實施例的存儲器管理器提供了寄存器也從存儲器進行讀出操作的優(yōu)點。它確保了基于讀出請求,將一般分配給在讀出請求中給出的地址信息的最遲的數(shù)據(jù)返回至發(fā)起該讀出請求的用戶。同樣為了簡化將該地址信息稱為第一地址信息。然而明顯地,寫入請求可以被直接導(dǎo)引至存儲器中與讀出請求不同的地址。
在該實施例中,根據(jù)所述寫入請求的接收,寫入控制器優(yōu)選適于發(fā)送讀出請求至所述讀出控制器,所述讀出請求包括在所述寫入請求中包含的所述第一地址信息。這樣,寫入控制器有效地利用讀出控制器以確定新的寫入請求是否是用于已經(jīng)包含在寄存器中的存儲器地址。讀出控制器將找出并因此返回相應(yīng)的存儲器數(shù)據(jù)或包含在寄存器中的相應(yīng)的第二數(shù)據(jù)。
在本發(fā)明的存儲器控制器的進一步的優(yōu)選實施例中,寫入控制器另外適于將表示比較的結(jié)果的標(biāo)記分配給所述第一寫入數(shù)據(jù),以及將該標(biāo)記連同所述第一寫入數(shù)據(jù)與所述第一地址信息一起傳送至所述寄存器,以及僅僅對于其標(biāo)記表示所述第一寫入數(shù)據(jù)分別和所述存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)之間不同的第一寫入數(shù)據(jù)來初始化對存儲器的寫入操作。在該實施例中,包括三個部分的數(shù)據(jù)結(jié)構(gòu)被寫入寄存器第一部分是第一地址信息,第二部分是第一寫入數(shù)據(jù),以及第三部分是分配給第一寫入數(shù)據(jù)的標(biāo)記。該標(biāo)記表示第一寫入數(shù)據(jù)是否要被寫入存儲器。作為舉例,讓標(biāo)記對于第一種情況為“1”,在第一種情況中該比較示出第一寫入數(shù)據(jù)分別不同于存儲器數(shù)據(jù)或第二寫入數(shù)據(jù),以及在如果不是不同的第二種情況中為“0”。在隊列類型的寄存器中,當(dāng)?shù)谝粚懭霐?shù)據(jù)是寄存器中最老的數(shù)據(jù)時,寫入控制器將檢查標(biāo)記,并只有在標(biāo)記處于狀態(tài)“1”時執(zhí)行對存儲器的寫入操作。在任何情況中,在寄存器中次最老的寫入請求數(shù)據(jù)將替代第一寫入數(shù)據(jù)。
這樣,該實施例提供了寫入控制器、附條件的寫入操作的主要功能之一的簡單而有效的實現(xiàn)。
在本發(fā)明的進一步的優(yōu)選實施例中,寫入控制器適于確定所述寄存器是滿的還是空的。該實施例允許寫入控制器使它的性能適合當(dāng)前請求率。在確定寄存器是滿的之后,一個替代是返回至傳統(tǒng)的存儲操作。這意味著首先處理在寄存器中待處理的全部寫入請求。在這些寫入操作過程中不服務(wù)來自存儲器用戶的請求。僅在完成全部的寫入操作之后,接受新的請求。然而,更有效的存儲器管理方法是在確定寄存器是滿的之后初始化較少的從寄存器至存儲器的寫入操作。這允許在較早的時間點處的來自存儲器用戶的新的請求。最優(yōu)選地,在再次確定是否存在請求以及寄存器是否是滿的之前,在確定寄存器是滿的之后僅執(zhí)行一個寫入操作。這樣,輸入的請求常常被接受至寄存器。當(dāng)新的寫入請求的速率較低時,可以處理寄存器中其它待處理的寫入請求。再次,正是通過對給定的應(yīng)用環(huán)境提供合適的寄存器容量來允許盡可能地避免滿的寄存器,以便只要請求就允許存儲器用戶的存儲器訪問。
在該實施例中,寫入控制器優(yōu)選適于在確定寄存器不是空的并且不存在待處理寫入請求的情況之后初始化從寄存器至存儲器的寫入操作。只要寄存器不是空的并且沒有新的請求通過存儲器控制器的輸入端,該實施例將自動執(zhí)行待處理寫入請求。
在本發(fā)明的另一實施例中,寫入控制器適于每次以至少一位來執(zhí)行所述第一寫入數(shù)據(jù)與所述第二寫入數(shù)據(jù)或所述存儲器的比較。
例如,可以一個字節(jié)一個字節(jié)地執(zhí)行比較。在該例子中,需要較小的寄存器容量來用于存儲器尋址。對于被寫入至存儲單元的字節(jié),塊可以作為整體通過一個地址或通過表示存儲器塊的第一和最后單元的第一和第二地址來尋址。另一方面,由于寫入數(shù)據(jù)字節(jié)和存儲器數(shù)據(jù)字節(jié)彼此之間至少一位不同的概率比50%高得多,所以對于寫入操作節(jié)省了較少的能量。如果僅一位是不同的,則必須重寫存儲器中的全部字節(jié),即使有7位是不變的。
優(yōu)選地一位一位地執(zhí)行比較。由于每一位即每一存儲單元被檢查要重寫的必要性,所以該實施例提供了最好的寫入功率節(jié)省的結(jié)果。另一方面,更多的寄存器空間需用于尋址。由于盡管寄存器中的存儲空間是廉價的,但相比較于節(jié)省寫入功率的優(yōu)點,該缺點是不重要的。
在進一步的優(yōu)選實施例中,XOR門分別具有用于所述第一寫入數(shù)據(jù)的第一輸入和用于所述存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)的第二輸入,以及與寫入控制器連接的輸出端。如果輸入位彼此不同,則XOR門傳送“1”或邏輯“TRUE”,以及如果輸入位相同,則XOR門傳送“0”或邏輯“FALSE”。利用XOR門,可以設(shè)置較早說明的標(biāo)記。
在該實施例中,寫入控制器優(yōu)選地適于在接收來自XOR門的輸出的至少一個邏輯“TRUE”信號之后,傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器。
本發(fā)明的存儲器控制器可以與存儲器集成以形成存儲裝置。
依據(jù)本發(fā)明的第二方面,提供一種用于具有至少一個存儲單元的存儲器的控制器,其對于寫入比對于讀出涉及更高的成本,所述存儲單元被分配第一地址信息,并適于存儲存儲器數(shù)據(jù)。所述控制器包括與所述存儲器連接的寄存器,并包括用于寫入數(shù)據(jù)和用于其被分配的地址信息的寄存器空間,與所述寄存器和所述存儲器連接的寫入控制器,并適于
接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,對所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于所述存儲器數(shù)據(jù),就分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器。
本發(fā)明的目前方面的存儲器控制器具有先前所述的存儲器控制器的大多數(shù)的特征和優(yōu)點。它僅缺乏在將新的寫入請求添加至寄存器之前,為包括第一地址信息的待處理請求而檢查寄存器的功能。在使請求進入寄存器之前僅對存儲器數(shù)據(jù)和寫入數(shù)據(jù)進行比較。
本存儲器控制器具有的優(yōu)點是,它是較簡單的并因此比上面所述的存儲器控制器更快。該優(yōu)點的成本是,將存在對包括用于一個存儲單元或一組存儲單元的相同的寫入數(shù)據(jù)的寄存器中的相同存儲器地址的第一和第二寫入請求。這意味著當(dāng)執(zhí)行用于第一寫入請求的寫入操作時,將首先重寫這些存儲單元,并然后當(dāng)為第二寫入請求服務(wù)時,再次使用相同的數(shù)據(jù)。然而,這些事件的數(shù)量一般不是很大。
依據(jù)本發(fā)明的目前方面的存儲器控制器可以具有依據(jù)較早說明的實施例的附加特征。
依據(jù)本發(fā)明的第三方面,提供一種用于寫入存儲器的方法。該存儲器包括用于存儲存儲器數(shù)據(jù)的至少一個存儲單元。所述存儲單元被唯一地分配至少一個第一存儲器地址,并對于寫入比對于讀出涉及更高的成本。該方法利用寫入隊列。它包括下面的步驟接收包括第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,確定所述第一地址信息是否存儲于所述寫入隊列中,如果是,對所述第一寫入數(shù)據(jù)與被分配至所述第一地址信息的所述寫入隊列中的的第二寫入數(shù)據(jù)進行比較,如果不是,將所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù),就分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寫入隊列,以及將來自所述寫入隊列的所述第一寫入數(shù)據(jù)寫入對應(yīng)于所述第一地址的所述存儲單元。
本方法涉及依據(jù)本發(fā)明的第一方面的存儲器控制器。它利用寫入隊列。通過如上面所述的寄存器可以實現(xiàn)寫入隊列。原則上,不需要使用FIFO隊列。參照本發(fā)明的存儲器控制器結(jié)構(gòu)已經(jīng)在上面說明了本發(fā)明提出方法的優(yōu)點。也已經(jīng)在上面說明了優(yōu)選實施例。優(yōu)選實施例的附加特征是依據(jù)優(yōu)選實施例,按照先進先出原則將不同寫入請求的第一寫入數(shù)據(jù)從所述寫入隊列寫入所述存儲器。
依據(jù)另一優(yōu)選實施例,該方法進一步包括下列步驟接收包括所述第一地址信息的讀出請求,確定所述第一地址信息是否存儲于所述寄存器中,根據(jù)所述第一地址信息是否存儲于所述寄存器中,分別傳送所述讀出請求至所述寫入隊列或者所述存儲器,從所述寫入隊列或所述存儲器分別接收所述寫入隊列數(shù)據(jù)或分配至所述第一地址信息的所述存儲器數(shù)據(jù)。
依據(jù)另一優(yōu)選實施例,該方法包括基于所述寫入請求的接收執(zhí)行讀出請求的步驟,所述讀出請求包括在所述寫入請求中包含的所述第一地址信息。
依據(jù)另一優(yōu)選實施例,該方法包括確定所述寫入隊列是滿的和/或所述寫入隊列是空的步驟。該實施例優(yōu)選地包括在確定寄存器是滿的之后從寫入隊列寫入存儲器的步驟。此外優(yōu)選地,提供在確定寫入隊列不是空的并且不存在待處理寫入請求的情況之后從寫入隊列寫入存儲器的步驟。
另一實施例包括每次比較所述第一寫入數(shù)據(jù)和所述第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù)的至少一位的步驟。
所述比較步驟優(yōu)選地包括執(zhí)行所述第一寫入數(shù)據(jù)分別和所述存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)之間的XOR操作的步驟。
依據(jù)本發(fā)明的第四方面,提供另外一種利用寫入隊列對存儲器寫入的方法。所述存儲器包括至少一個用于存儲存儲器數(shù)據(jù)的存儲單元,其對于寫入比對于讀出涉及更高的成本,所述存儲單元被唯一地分配至少一個存儲器地址。該方法包括下列步驟接收包括第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,對所述第一寫入數(shù)據(jù)與分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù),分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寫入隊列,以及將來自所述寫入隊列的所述寫入數(shù)據(jù)寫入對應(yīng)于所述第一地址的所述存儲單元。
本方法涉及依據(jù)本發(fā)明的第二方面的存儲器控制器。本方法的各種實施例具有在依據(jù)本發(fā)明的第三實施例的方法的上下文中所述的實施例的附加特征。
在下面,基于參照附圖的優(yōu)選實施例將更詳細(xì)地說明本發(fā)明,其中

圖1示出具有依據(jù)第一優(yōu)選實施例的存儲器控制器的MRAM存儲器的框圖。
圖2示出具有依據(jù)第二優(yōu)選實施例的存儲器控制器的MRAM存儲器的詳細(xì)框圖。
圖3示出用于對MRAM存儲器寫入的方法的流程圖。
圖1示出本發(fā)明的存儲裝置10的第一實施例的簡化框圖。存儲裝置10包括MRAM12。MRAM12是具有大量存儲單元的非易失性磁存儲器。典型地,以矩陣的形式設(shè)置存儲單元。如本領(lǐng)域熟知的,通過行地址和列地址的組合可以唯一地尋址MRAM塊12中的每一存儲單元。
存儲裝置10進一步具有連接至MRAM12的控制器14??刂破?4管理與存儲裝置10的外部用戶通信的從MRAM12的讀出操作和對MRAM12的寫入操作。這是通過指向和遠(yuǎn)離控制器14并穿過存儲裝置10的虛線的箭頭示出的。控制器14也連接至先進先出(FIFO)寄存器16。
下面在圖2的上下文中說明存儲裝置10的操作。
圖2示出作為第二實施例的包括MRAM22和控制器24的存儲裝置20。示出的框圖表示該裝置的邏輯結(jié)構(gòu)。該裝置的物理實現(xiàn)看起來可以和在這里示出的結(jié)構(gòu)不同。控制器具有用于存儲器數(shù)據(jù)的存儲器輸入端26、用于被寫入至MRAM22的寫入數(shù)據(jù)的存儲器輸出端28、用于尋址和寫入來自比如CPU的存儲器用戶的數(shù)據(jù)的用戶輸入端30以及用于與存儲器用戶通信的存儲器數(shù)據(jù)的用戶輸出端32。
圖2的實施例的存儲器控制器24具有連接至用戶輸入端30的集成FIFO寄存器34。FIFO控制器36也連接至FIFO寄存器34。此外,命令解碼器38也連接至用戶輸入端30、寫入控制器40和讀出控制器42。在存儲器輸入端26和寫入控制器40之間互連的是XOR門44。
現(xiàn)在參照圖3的流程圖說明存儲器控制器24的操作。然而,需要指出在圖3中示出的流程不是必須用于圖2的控制器結(jié)構(gòu)的。任何合適的裝置都能夠執(zhí)行在圖3中示出的方法。例如,可以將該流程實施為軟件。
來自存儲器用戶的輸入請求被從用戶輸入30傳送至命令解碼器38。命令解碼器分析該請求。這可以依據(jù)圖3的步驟S12和S14完成。在步驟S12中,檢查該請求是否包括讀出命令。如果不是這種情況,命令解碼器在步驟S14中確定命令是否為寫入命令。
需要指出,步驟S12和S14的請求分析例行程序也用于準(zhǔn)連續(xù)地監(jiān)控用戶輸入端30。這樣,在步驟S14之后,可以證明既不存在讀出請求也不存在寫入請求。在這種情況下,寫入控制器40檢查FIFO寄存器34中的寫入隊列是否是空的。如果是這種情況,圖3的方法逆弧至步驟S12,以監(jiān)控用戶輸入端。
在輸入讀出請求的情況中,命令解碼器38傳送該請求至讀出控制器42。讀出控制器42提取該請求包括的地址信息,并將它傳送至FIFO控制器36。FIFO控制器36保存FIFO寄存器中的寫入請求包括的地址列表。如果該地址包含在該列表中,F(xiàn)IFO控制器44就觸發(fā)FIFO34以傳送相應(yīng)的寫入數(shù)據(jù)至用戶輸出端32。FIFO控制器36返回至已經(jīng)為讀出請求服務(wù)的讀出控制器42。如果該地址不包含在該列表中,F(xiàn)IFO控制器返回該結(jié)果至讀出控制器42,其將又觸發(fā)來自MRAM22中給出的地址的讀出操作。MRAM將返回請求數(shù)據(jù)至存儲器輸入端26。來自那里的數(shù)據(jù)被傳送至用戶輸出端32,并被傳送至請求用戶。
在輸入寫入請求的情況中,寫入控制器42將首先確定FIFO寄存器是否是滿的。如果是這種情況,將為FIFO寄存器34的隊列中的最老的寫入請求服務(wù)。
部分脫離來自圖3的流程,以下面的方式在本實施例中為寫入請求服務(wù)寫入控制器40發(fā)送讀出請求至讀出控制器42。讀出控制器42執(zhí)行步驟S18至S22,并從隊列34或從存儲器22返回數(shù)據(jù)。圖2的流程示出簡化的方案,其中在步驟S30中從尋址存儲器段中直接讀出數(shù)據(jù)。
從存儲器輸入端26或FIFO34傳送這些數(shù)據(jù)至XOR門44。XOR門44在步驟S32中利用寫入數(shù)據(jù)和存儲器或寄存器數(shù)據(jù)分別執(zhí)行邏輯“異或”操作。也就是說,XOR門44將返回寫入控制器40一個信號,在這里被稱為“屏蔽(mask)”,如果在XOR門44的輸入處的數(shù)據(jù)彼此不同,其將是“TRUE”信號(“1”)。如果它們相同,則它將返回“FALSE”信號。
寫入控制器40將把來自XOR門44的信號附加至寫入請求,并傳送寫入請求至FIFO寄存器34。如果屏蔽是“1”,則將僅寫入數(shù)據(jù)。
在步驟S24中,在寫入控制器44發(fā)現(xiàn)FIFO寄存器34中的隊列不是滿的情況中,它將跳轉(zhuǎn)至步驟S30,并執(zhí)行上面說明的部分脫離的讀出例行程序。
下面給出說明依據(jù)本發(fā)明的MRAM控制器的操作的算法。以類似于C或C++的偽代碼給出算法。需要指出,符號“?。健痹谠摯a中意味著“不相等”。通過“/*”和“*/”將解釋下面代碼行的注釋與代碼分離。通過與頁行無關(guān)的數(shù)字標(biāo)記下面的算法的每個第五行,以便允許清楚地參考下面的說明。
可將該算法分為三部分在行1和9之間限定讀出控制操作。在行10和24之間限定寫入控制算法。在行25和37之間限定不存在任何請求下的控制操作??蓪懭肟刂七M一步再分為行11至19限定在滿的寫入隊列的情況中的寫入控制操作。行19至24限定在寫入請求不是滿的替代情況中的寫入控制操作。
下面算法中最重要的命令是“queue.enqueue”和“mram.write”。第一命令觸發(fā)器寫入由寫入地址信息(“req.addr”)、寫入數(shù)據(jù)(“req.data”)組成的數(shù)據(jù)字段,也就是,例如圖1或2的FIFO寄存器。在行19中,這包括寫入請求的全部位。在行26中,這包括指示XOR操作的結(jié)果的“屏蔽”位。
如果屏蔽位是“1”,“mram.write”命令將包括在命令中的數(shù)據(jù)寫入至包括在命令中的MRAM地址。
<pre listing-type="program-listing"><![CDATA[if(req.command=READ)  {   /*測試更近的數(shù)據(jù)是否在隊列中*/   if(queue.lookup(req.addr,&amp;data))   return data;   /*如果沒有在隊列中就發(fā)送請求至mram*/   return mram.read(req.addr);  }  else if(req.command=WRITE))  {   if(queue.is_full())   {   /*在寫入和滿隊列的情況做兩件事情   1)對mram寫入隊列中最老的元素   2)在隊列中放入請求?! ? 并行地做這些。隊列保持滿的。*/   <addr,data,mask>=queue.dequeue();   mram.write(addr,data,mask);   queue.enqueue(<req.addr,req.data,ALL_BITS>);   }   else   {   orig_data=mram.read(req.addr);   mask=orig_data^req.data;/*^指的是XOR*/   if(mask?。?)  queue.enqueue(<req.addr,req.data,mask>)   }  }  else /*沒有請求*/  {   if(!queue.is_empty())   {   /*對mram寫入待處理請求*/   <addr,data,mask>=queue.dequeue();   mram.write(addr,data,mask);   }  }]]></pre>
權(quán)利要求
1.一種用于具有至少一個存儲單元的存儲器的控制器,其對于寫入比對于讀出涉及更高的成本,所述存儲單元被分配第一地址信息,并適于存儲存儲器數(shù)據(jù),所述存儲器控制器包括與所述存儲器連接的寄存器,并包括用于寫入數(shù)據(jù)和用于其被分配的地址信息的寄存器空間,與所述寄存器和所述存儲器連接的寫入控制器,并適于接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,確定所述第一地址信息是否存儲于所述寄存器中,如果是,對所述第一寫入數(shù)據(jù)與被分配至所述第一地址信息的所述寄存器中較早的寫入請求的第二寫入數(shù)據(jù)進行比較,如果不是,對所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器,如果第一或第二寫入數(shù)據(jù)分別不同于所述存儲器數(shù)據(jù),就分別初始化所述第一或第二寫入數(shù)據(jù)從所述寄存器至所述存儲器的寫入操作。
2.權(quán)利要求1的存儲器控制器,其中所述寄存器是FIFO寄存器。
3.權(quán)利要求1或2的存儲器控制器,進一步包括與所述寄存器和所述存儲器連接的讀出控制器,并適于接收包括所述第一地址信息的讀出請求,確定所述第一地址信息是否存儲于所述寄存器中,根據(jù)所述第一地址信息是否存儲于所述寄存器中,分別傳送所述讀出請求至所述寄存器或所述存儲器。
4.權(quán)利要求3的存儲器控制器,其中根據(jù)所述寫入請求的接收,所述寫入控制器適于發(fā)送讀出請求至所述讀出控制器,所述讀出請求包括在所述寫入請求中包含的所述第一地址信息。
5.權(quán)利要求1的存儲器控制器,其中寫入控制器適于分配表示比較結(jié)果的標(biāo)記至所述第一寫入數(shù)據(jù),以及將該標(biāo)記連同所述第一寫入數(shù)據(jù)與所述第一地址信息一起傳送至所述寄存器,以及僅僅對于其標(biāo)記表示所述第一寫入數(shù)據(jù)分別和所述存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)之間不同的第一寫入數(shù)據(jù)來初始化對存儲器的寫入操作。
6.權(quán)利要求5的存儲器控制器,其中寫入控制器適于確定所述寄存器是滿的還是空的。
7.權(quán)利要求6的存儲器控制器,其中寫入控制器適于在確定寄存器是滿的之后初始化至少一個從寄存器至存儲器的寫入操作。
8.權(quán)利要求1的存儲器控制器,其中寫入控制器適于在確定寄存器不是空的并且不存在待處理寫入請求的情況之后初始化從寄存器至存儲器的寫入操作。
9.權(quán)利要求1的存儲器控制器,其中寫入控制器適于每次以至少一位執(zhí)行所述第一寫入數(shù)據(jù)與所述第二寫入數(shù)據(jù)或所述存儲器的比較。
10.權(quán)利要求9的存儲器控制器,其中寫入控制器適于一個字節(jié)一個字節(jié)或一位一位地執(zhí)行比較。
11.權(quán)利要求9的存儲器控制器,其中寫入控制器適于一位一位地執(zhí)行比較。
12.權(quán)利要求9的存儲器控制器,包括XOR門,該XOR門分別具有用于所述第一寫入數(shù)據(jù)的第一輸入和用于所述存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)的第二輸入,以及與寫入控制器連接的輸出端。
13.權(quán)利要求9的存儲器控制器,其中寫入控制器適于在接收來自XOR門的輸出的至少一個邏輯“TRUE”信號之后傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器。
14.一種包括存儲器的存儲裝置,該存儲器具有至少一個非易失性存儲單元和依據(jù)權(quán)利要求1的存儲器控制器。
15.一種存儲裝置,其中所述存儲器包括來自MRAM和FERAM的組的存儲單元。
16.一種用于具有至少一個存儲單元的存儲器的控制器,所述存儲單元被分配第一地址信息,并適于存儲存儲器數(shù)據(jù),所述存儲器控制器包括與所述存儲器連接的寄存器,并包括用于寫入數(shù)據(jù)和用于其被分配的地址信息的寄存器空間,與所述寄存器和所述存儲器連接的寫入控制器,并適于接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,對所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于所述存儲器數(shù)據(jù),就分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器。
17.一種利用寫入隊列對非易失性存儲器寫入的方法,所述存儲器包括用于存儲存儲器數(shù)據(jù)的至少一個存儲單元,所述存儲單元被唯一地分配至少一個第一存儲器地址,并對于寫入比對于讀出需要更高的成本,其包括下列步驟接收包括所述地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,確定所述第一地址信息是否存儲于所述寫入隊列中,如果是,對所述第一寫入數(shù)據(jù)與被分配至所述第一地址信息的所述寫入隊列中的的第二寫入數(shù)據(jù)進行比較,如果不是,將所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù),就分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寫入隊列,以及將來自所述寫入隊列的所述第一寫入數(shù)據(jù)寫入對應(yīng)于所述第一地址的所述存儲單元。
18.權(quán)利要求17的方法,其中依據(jù)先進先出原則將不同寫入請求的第一寫入數(shù)據(jù)從所述寫入隊列寫入所述存儲器。
19.權(quán)利要求17的方法,進一步包括下列步驟接收包括所述第一地址信息的讀出請求,確定所述第一地址信息是否存儲于所述寄存器中,根據(jù)所述第一地址信息是否存儲于所述寄存器中,分別傳送所述讀出請求至所述寫入隊列或者所述存儲器,從所述寫入隊列或所述存儲器分別接收分配至所述第一地址信息的所述寫入隊列數(shù)據(jù)或所述存儲器數(shù)據(jù)。
20.權(quán)利要求17的方法,包括下面的步驟根據(jù)所述寫入請求的接收執(zhí)行讀出請求,所述讀出請求包括在所述寫入請求中包含的所述第一地址信息。
21.權(quán)利要求17的方法,包括確定所述寫入隊列是滿的和/或所述寫入隊列是空的步驟。
22.權(quán)利要求21的方法,包括在確定寄存器是滿的之后從寫入隊列寫入存儲器的步驟。
23.權(quán)利要求21的方法,包括在確定寫入請求不是空的并且不存在待處理寫入請求的情況之后從寫入隊列寫入存儲器的步驟。
24.權(quán)利要求17的方法,包括每次比較所述第一寫入數(shù)據(jù)和所述第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù)的至少一位的步驟。
25.權(quán)利要求24的方法,其中所述比較步驟包括分別執(zhí)行所述第一寫入數(shù)據(jù)和所讀存儲器數(shù)據(jù)或所述第二寫入數(shù)據(jù)之間的XOR操作的步驟。
26.一種利用寫入隊列對非易失性存儲器寫入的方法,所述存儲器包括用于存儲存儲器數(shù)據(jù)的至少一個存儲單元,所述存儲單元被唯一地分配至少一個第一存儲器地址,并對于寫入比對于讀出需要更高的成本,其包括下列步驟接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,對所述第一寫入數(shù)據(jù)與分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較,如果第一寫入數(shù)據(jù)不同于第二寫入數(shù)據(jù)或所述存儲器數(shù)據(jù),分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寫入隊列,以及將來自所述寫入隊列的所述寫入數(shù)據(jù)寫入對應(yīng)于所述第一地址的所述存儲單元。
全文摘要
本發(fā)明提供一種用于具有至少一個存儲單元的存儲器的控制器,其對于寫入比對于讀出涉及更高的成本。所述存儲單元被分配至第一地址信息,并適于存儲存儲器數(shù)據(jù),本發(fā)明的存儲器控制器包括寄存器。與所述寄存器連接的寫入控制器適于接收包括所述第一地址信息和其被分配的第一寫入數(shù)據(jù)的寫入請求,確定所述第一地址信息是否存儲于所述寄存器中。如果是,寫入控制器對所述第一寫入數(shù)據(jù)與被分配至所述第一地址信息的所述寄存器中的較早寫入請求的第二寫入數(shù)據(jù)進行比較。如果不是,它對所述第一寫入數(shù)據(jù)與被分配至第一地址信息的所述存儲器數(shù)據(jù)進行比較。所述寫入控制器進一步分別傳送所述第一地址信息和所述第一寫入數(shù)據(jù)至所述寄存器,并且如果第一或第二寫入數(shù)據(jù)分別不同于所述存儲器數(shù)據(jù),就分別初始化所述第一或第二寫入數(shù)據(jù)從所述寄存器至所述存儲器的寫入操作。利用本發(fā)明的存儲器控制器,可在節(jié)省寫入功率的同時,提供對存儲器的連續(xù)訪問。
文檔編號G06F13/16GK1732446SQ200380107943
公開日2006年2月8日 申請日期2003年11月26日 優(yōu)先權(quán)日2002年12月30日
發(fā)明者J·胡格布魯格 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大埔区| 太康县| 客服| 石景山区| 宝丰县| 平远县| 阜城县| 图木舒克市| 濮阳市| 万州区| 天峨县| 庆云县| 菏泽市| 英吉沙县| 巴彦淖尔市| 安达市| 西乡县| 柘城县| 石泉县| 宁阳县| 汉源县| 永登县| 杭锦旗| 厦门市| 咸丰县| 砚山县| 安宁市| 平泉县| 乌鲁木齐市| 共和县| 蒲城县| 彭泽县| 阿荣旗| 江永县| 威信县| 张家口市| 黄浦区| 柯坪县| 吴忠市| 武定县| 江源县|