專利名稱:數據處理系統中用于覆蓋存儲器的方法和設備的制作方法
技術領域:
本發明涉及一種數據處理系統。更具體地說,本發明涉及一種數據能夠從一個存儲器覆蓋(overlay)到另一個存儲器的數據處理系統。
背景技術:
現有技術的嵌入式控制器支持各種存儲器,包括芯片內和片外存儲器。例如,一些嵌入式控制器既有靜態存儲器又有閃速存儲器。有時想要在嵌入式控制器的常規操作中改變閃速存儲器中的數據。例如,用作發動機(或者其它的機電設備)控制器的嵌入式控制器,存儲在閃速存儲器中的各種參數可能需要改變以適當地轉動發動機。因為閃速存儲器在嵌入式控制器的常規操作中不容易編程,現有技術的嵌入式控制器利用覆蓋原理將數據從靜態存儲塊覆蓋到閃速存儲器。
現有技術的覆蓋原理有各種問題。其中一個問題涉及數據轉移時間。數據轉移時間定義為從總線主控器請求數據到數據可用和接收到所有的訪問終止信號所消耗的時間。當訪問閃速存儲器或被覆蓋的閃存區域時,維持相同的數據轉移時間至關重要。現有技術的覆蓋原理不可能在芯片內或片外閃速存儲器中維持相同的數據轉移速率。結果,對于存放于可覆蓋存儲器中的數據和存放于閃速存儲器中同樣的數據,嵌入式控制器不可能以同樣的方法進行操作。
另一個問題是用于現有技術的覆蓋原理只能覆蓋整個存儲塊。換句話說,如果嵌入式控制器有覆蓋原理使用的512個字節的靜態存儲器模塊,那么任何一個模塊的整個512個字節都必須被覆蓋。有時希望有選擇性地覆蓋存儲器模塊的某些部分,而不是覆蓋整個模塊。有時也希望選擇覆蓋部分的尺寸。
現有技術的覆蓋原理的另一個問題是,為了具有多個覆蓋區域,需要多個存儲模塊,每一個模塊須有自己獨立的總線接口單元(BIU)。每個BIU要求有獨立電路,這樣,帶有多個BIU需要占用芯片的空間。
本發明以舉例子的方法加以說明,但并不局限于附圖,其中類似的參考符號代表類似的元件,其中圖1是根據本發明的一個實施例的嵌入式控制器的方框圖;圖2和3是說明從靜態存儲器區覆蓋到閃速存儲器的例子的方框圖;圖4是說明本發明的一個實施例的操作流程圖。
本領域技術人員將理解,為了簡潔且清晰起見圖中的元件不必按比例畫。例如,為了有助于更好地理解本發明的具體實施例,圖中一些元件的尺寸相對其它元件可能被夸大。
具體實施例方式
圖1是嵌入式控制器100的框圖。該嵌入式控制器100包括作為控制器100的中央處理單元的核心102。核心102耦接到一條指令總線120和一條裝入/儲存總線122。這種結構被稱作“哈佛結構”。應該理解其他結構也能用于本發明。例如,單條系統總線能用于代替120和122這兩條總線。指令總線被用作提取指令,而裝入/儲存總線122則用于提取數據。一個系統接口單元(SIU)114和指令總線120和外部總線124相耦接。SIU 114為嵌入式控制器100的外部組件或者裝置提供一個接口。
嵌入式控制器100包括非易失性存儲器。該非易失性存儲器可以是閃速存儲器(FLASH),只讀存儲器(ROM),電可擦除只讀存儲器(EEPROM),可擦可編程只讀存儲器(EPROM),或者其他合適類型的存儲器。在優選實施例中選用了閃速存儲器。在圖1中,閃速存儲器104耦接于指令總線120。此外,可以包括耦接到外部總線124的外部閃速存儲器116。嵌入式控制器100也包括易失性存儲器。易失性存儲器可以包括任何類型的隨機存取存儲器(RAM),例如靜態隨機存取存儲器(SRAM)或者動態隨機存取存儲器(DRAM),在優選實施例中選用了SRAM來執行。然而,任何類型和數目合適的RAM模塊都可以選用。在圖1中,SRAM 106被耦接于裝入/儲存總線122。該SRAM 106包括非覆蓋區108和覆蓋區110(詳見后述)。此外,可以包括耦接于外部總線124的外部SRAM 118。耦接在指令總線120和裝入/儲存總線122間的是總線接口單元(BIU)112。BIU112的功能是提供一個在指令總線120和裝入/儲存總線122之間的接口。在一個可替換的實施例中,BIU是非易失性存儲器的一部分。
如上所述,在嵌入式控制器100正常運作過程中有時需要改變閃速存儲器104中的參數或者數據。然而,在嵌入式控制器100正常工作過程中閃速存儲器可能不容易編程。這樣,SRAM 106必須被覆蓋于閃速存儲器104上,因為SRAM 106中的參數能夠輕易地改變。
本發明的實施例提供了一種改進的覆蓋原理。如上所述,SRAM106包括一個非覆蓋區108和覆蓋區110。在一個實施例中,該SRAM106是32千字節的,其中非覆蓋區108占據了28千字節且覆蓋區110占據了4千字節。當然,SRAM 106可以是任何合適的尺寸并以任何需要的方式分割。覆蓋區110可以用作普通目的的RAM或者用作覆蓋。非覆蓋區108可以用作普通目的的RAM。在一個可替換實施例中,整個SRAM106可以被指定作為一個覆蓋區。換言之,該SRAM 106可以如圖1所示那樣分割或者實際上一些SRAM 106用作覆蓋而另一些SRAM 106不用作覆蓋。這樣,單個的RAM模塊(舉例說,諸如靜態存儲器SRAM或者動態存儲器DRAM)可以同時用作覆蓋和普通目的。
圖2和圖3是圖解說明將靜態存儲器SRAM區覆蓋到閃速存儲器的方框圖。圖2示出SRAM 106和閃速存儲器104。SRAM 106被分為非覆蓋區108和覆蓋區110。覆蓋區110被進一步分為八個獨立的區域或者分區(覆蓋分區0,覆蓋分區1,覆蓋分區2,覆蓋分區3,覆蓋分區4,覆蓋分區5,覆蓋分區6,覆蓋分區7,覆蓋分區8)。在該例子中,覆蓋分區為4千字節,八個分區中的每一個為512字節。可替代的實施例中可以包括任何數量的分區或者不同尺寸的分區。如圖2示出的本實施例允許八個分區中的一些用作覆蓋。此外,對于每一個被用作覆蓋的分區,可以使用全部分區,或者可以使用一部分。
在一個實施例中,分區是可以軟件編程的。例如,SRAM 106可以包括一個具有各種能定義相應于SRAM 106的模式和分區特性的字段的控制寄存器。該控制寄存器可以包括一種能將隨機存儲器RAM模塊配置為覆蓋模式或者非覆蓋模式的模式字段。在非覆蓋模式中,整個RAM模塊被用作為普通目的RAM,沒有覆蓋能力。在覆蓋模式中,如上所述,能建立覆蓋區。控制寄存器因而可以包括一個可以啟動每一個分區的啟動字段。這樣,即使RAM被配置為覆蓋模式,每一個分區可以被啟動用于覆蓋閃速存儲器的一部分或者被禁止而用作普通目的RAM。該控制寄存器還可以包括一個能夠將覆蓋分區收縮(collapse)到鄰接的存儲地址的收縮字段(收縮字段在下面參照圖3進一步描述)。為了配置每個覆蓋分區的尺寸,該控制寄存器可以包含一個分區尺寸字段。
如上所述,控制寄存器可以由軟件配置,由此允許靈活配置RAM模塊和它的分區。進一步說,控制寄存器可以在諸如SRAM 106的RAM模塊中找到,或者在其他軟件或者硬件可訪問的合適地址中找到。同樣,如果除SRAM 106之外用到其他RAM模塊,類似地可由與每一附加RAM模塊相應的控制寄存器來配置它們。
SRAM 106也可以包括基本地址寄存器。在一個實施例中,有八個寄存器,每一個相應于如圖2所示的八個分區。同樣,如果有更多或者更少的分區,則使用更多或者更少的基本地址寄存器。每一個基本地址寄存器包含一個將被覆蓋的閃速存儲器段的基本的或者開始地址。基本地址存儲器也可以包含一個字段用以定義將被覆蓋的閃速存儲器段的尺寸。例如,每一個寄存器中的四個比特可被用作表示尺寸。進一步說,在上面提到的收縮模式中,閃速存儲器段的尺寸可以強制為一個特定的尺寸,不管尺寸字段的編程值如何。應當理解,基本地址寄存器可以建立在任何合適的地址中,例如另一個存儲器模塊。
在如圖2所示的例子中,覆蓋分區0被全部(512字節)用作閃速存儲器104的覆蓋段130,該覆蓋段130為512字節。覆蓋分區1被部分地覆蓋為段132,該段有256字節。覆蓋分區5被部分地覆蓋為段134,該段有128字節。可以看到,覆蓋區110的分區可以有選擇性地覆蓋在閃速存儲器104中。也應注意到,不被用作覆蓋的每一個分區,或者一個分區的一部分,能被用作普通目的的存儲器。如圖2所示的例子中,覆蓋分區2,覆蓋分區3,覆蓋分區4,覆蓋分區6和覆蓋分區7這些分區可以整個地用作普通目的存儲器。類似地,覆蓋分區1的256字節和覆蓋分區5的384字節可以用作普通目的的存儲器。閃速存儲器104的剩余部分能正常地對閃速存儲器的訪問作出響應。
圖3是列舉一個可替換的使用可收縮模式覆蓋存儲器的原理的框圖。圖3表明SRAM 106有一個非覆蓋區108和覆蓋區110。如圖3所示的覆蓋區110可以按照可收縮方式運行。如上所述,這種模式可以被一種在SRAM 106的控制寄存器找到的收縮字段所起動。正如圖示,覆蓋區包括八個分區142,144,146,148,150,152,154和156。在本例子中,分區142,144,146,148,150,152,154和156中的每一個均為4字節,整個為32字節。當然,分區可以大于或者小于4字節。這些分區可以被收縮為一個鄰接的存儲器單元,這樣留下更多的鄰接存儲器單元以用作普通非覆蓋目的。覆蓋區110沒用作覆蓋的部分被表示為區140。在本實施例中,區140與非覆蓋區108相鄰。分區142,144,146,148,150,152,154和156中的每一個能覆蓋于閃速存儲器104的一段上。
在此所描述的存儲器覆蓋技術的實施例中,覆蓋分區的尺寸在閃速存儲器中被自然對準。因而,覆蓋分區的尺寸與閃速存儲器的對準相對應。例如,如果128字節的部分被覆蓋,應該是128字節在閃速存儲器中對準。因而,在上面提到的基礎地址寄存器中,基礎地址可以不必然對準。在本例中,閃速存儲器中的基本地址中將被覆蓋的最低有效位認為是0′s,使得開始地址自然對準。
圖4以流程圖形式說明本發明的一個實施例的運作。圖4的目的是以圖解方式說明本實施例如何運作。盡管如此,其他改變可以用以得到類似的結果。在嵌入式控制器100的正常運作中,一總線主控器要求讀取一個存儲器(方框400)。在這個實施例中,總線主控器是核心102。該要求可以用于任何可以得到的存儲器,包括閃速存儲器104,SRAM 106,外部閃速存儲器116,或者外部SRAM 118。注意,也可以是圖中未示出的可得到的其他類型的模塊。流程圖中的判定菱形框402詢問是否該請求要求讀取閃速存儲器。如果不是閃速存儲器讀取請求,則正常的存儲器運作繼續(方框404)。如果是閃速存儲器讀取請求,則判定菱形框406詢問該存儲器是否在閃速存儲器的覆蓋區。這個判定通過由SRAM 106窺探位于裝入/存儲總線122上的閃速存儲器的地址來完成。如果不是覆蓋區訪問請求,則閃速存儲器(通過BIU112)驅動數據和所有的訪問終止控制信號(方框408)通過BIU 112到達核心102。注意在其他結構中,例如在那些單系統總線的情況中,數據和終止控制信號可以無需使用如BIU 112那樣的總線接口單元,直接被驅動到請求裝置或者總線主控器。
如果所請求的存儲器處于被覆蓋區,則SRAM通過BIU 112給閃速存儲器104發送一個“塊數據”信號(方框410)。在其它結構中,“塊數據”信號可能不用BIU 112而直接送到非易失性存儲器。發送這種信號的目的是為了禁止閃速存儲器104向裝入/存儲總線122驅動數據。該SRAM然后在數據總線許可的情況下向裝入/存儲總線122驅動數據(方框412)。下一步,通過BIU 112,閃速存儲器104將所有的訪問終止控制信號,例如轉移確認,數據有效,等(方框414)驅動到總線主控器或請求設備。通過這種方式,數據由RAM模塊驅動,而訪問終止控制信號由閃速存儲器驅動。這減少了硬件需求,因為每一個RAM模塊不需要它自己的根據閃速存儲器結構能夠驅動訪問終止控制信號的總線接口單元。更進一步講,使閃速存儲器驅動訪問終止控制信號可維持適當的時序(timing)。
在本發明的一個實施例中,RAM模塊(例如SRAM 106)可能基于對總線主控器的識別或總線主控器的類型,有選擇性地允許來自總線主控器的寫操作。例如,裝入/存儲總線122可能包括一個叫作“核心訪問”的信號,以便當核心102開始一個事務時,該信號被確證。當啟動這種覆蓋模式時,如果有一個寫操作訪問覆蓋區110編程用來覆蓋一個閃速存儲器段的一部分時,根據對請求寫操作的控制器的識別,這一訪問或者被允許或者不被允許。在一個實施例中,由核心所啟動的寫訪問(被確證的“核心訪問”)不被允許,然而一個被非核心設備,例如開發工具所啟動的寫訪問(“核心訪問”求反)將被允許。這防止核心102無意中破壞用來覆蓋閃速存儲器段的數據。如果該核心確實意欲改變覆蓋區域110中的覆蓋數據,它能夠使覆蓋模式無效,改變數據,然后再使覆蓋模式有效。相似地,其它方法或信號也可以被用來允許RAM模塊在允許寫請求之前識別總線主控器。
如上所述,SRAM 106可能在控制寄存器中有一個模式位,用來使覆蓋模式有效或無效。當設備100接收到一個復位信號時,SRAM106通過分別對控制寄存器中的這個模式位置1或清0來使覆蓋特性有效或無效。根據復位配置信息,該位可能為1(覆蓋使能)或0(覆蓋禁止)。這種復位配置信息可由任何非易失性存儲器,例如EEPROM提供,或者在對設備復位求反時通過取樣設備的針來獲取。而且,一旦接收到一個復位信號時,基地址寄存器的內容(正如上面所討論)可能保持不變。也就是說,基地址和尺寸的信息可能在復位時保持不變。于是,替代的實施例允許通過各種對設備復位的選擇增進靈活性。
因此,能夠理解,這里所描述的存儲器覆蓋技術能夠利用單個RAM模塊既實現覆蓋又實現常規功能。本發明的實施例也允許通過軟件可編程部分的應用來增進靈活性。而且,通過允許RAM模塊覆蓋非易失性存儲器的一部分,通常存儲在該非易失性存儲器中的參數可以由開發工具利用更精確的參數在常規操作和在編制非易失性存儲器最后版本之前進行修整和修改。
當本發明的操作被描述為從SRAM 106到閃速存儲器104的覆蓋時,其它的操作也是可能的。例如,SRAM 106能夠將內存覆蓋到外部閃速存儲器116或外部SRAM 118上。注意到在這個例子中,內存覆蓋維持適當的數據轉移時間。而且,注意到SRAM 106的覆蓋區110的任何部分能夠被覆蓋到芯片內的閃速存儲器104或外部閃速存儲器116上。例如,在數據處理的同時,覆蓋分區0(圖2)能夠被覆蓋到芯片內的閃速存儲器104上,而覆蓋分區1能夠被覆蓋到外部閃速存儲器116上。正如上面所提到的,其它的模塊也可以被采用。
具有SRAM 106、閃速存儲器104、外部閃速存儲器116和外部SRAM 118的本發明的實施例已經被描述。應該理解,嵌入式控制器100可能包括多個SRAM 106、多個閃速存儲器104、多個外部閃速存儲器116和/或多個外部SRAM 118。利用多個模塊,本發明可按如上所述的類似的方法進行操作。
更進一步講,相同的閃速存儲器片段能夠被SRAM 106的多個區域覆蓋。為了從最高優先級區選擇數據,給每個區指定一個優先級。在圖2所示的實施例中,覆蓋分區0具有最高的優先級,其次是覆蓋分區1,覆蓋分區2等等。在多個RAM模塊被應用的情況下,各模塊的優先級同上面類似分配。也就是說,具有覆蓋數據最高優先級的RAM模塊禁止非易失性存儲器數據并將覆蓋數據傳到請求設備。
在前面的說明書中,已經參照說明的實施例對本發明進行了描述。然而,本領域普通技術人員應當理解,還可以作各種修改和改變,而未脫離如下面權利要求書所述的本發明的保護范圍。因此,說明書和附圖應認為是一種舉例而非限制性說明,并且所有這種修改都意在包括在本發明的保護范圍內。
本發明的益處,其它的優點和解決問題的技術方案已經結合有關具體實施例進行了描述。然而,這些益處,優點和解決問題的技術方案,以及一些可以帶來益處,優點,或者可以想到的或者變得更加顯著的解決方案的因素不應被解釋為是任何或者全部權利要求中關鍵的、必須的、或者基本的特征或者要素。在此,術語“包含”“由……組成”,或者任何其他的變化形式,意圖覆蓋一個非排他性的結論,以便包含一系列因素的一個過程,方法,物品,或者裝置并非僅包含這些元素,而是還可以包括沒有明確羅列出來或者是這些過程、方法、物品,或者裝置中固有的因素的其他因素。
權利要求
1.在一個具有非易失性存儲器(104)和含有當作一般隨機存儲器使用的非覆蓋區(108)以及用于覆蓋該非易失性存儲器的部分的覆蓋區(110)的第一隨機存取存儲器(RAM)模塊(106)的數據處理系統中,該非易失性存儲器通過系統總線被耦接到該第一RAM模塊,一種方法包括發出一個存儲器訪問請求來訪問該非易失性存儲器的覆蓋部分;通過該第一RAM模塊將塊數據信號送給該非易失性存儲器來禁止該非易失性存儲器向系統總線驅動數據;第一RAM模塊在數據總線許可情況下將數據驅動到系統總線上;和該非易失性存儲器驅動訪問終止控制信號來完成對存儲器的訪問。
2.如權利要求1所述的方法,其中第一RAM模塊具有一個相應的RAM數據轉移時間,且該非易失性存儲器具有一個相應的非易失性存儲器數據轉移時間,其中該RAM數據轉移時間與該非易失性數據轉移時間相匹配。
3.如權利要求1所述的方法,其中數據處理系統還包括一個耦接到該非易失性存儲器的總線接口單元(112),其中塊數據信號被送到總線接口單元,和該總線接口單元驅動訪問終止控制信號。
4.如權利要求1所述的方法,還包括通過RAM模塊從數據總線主控器接收一個寫請求;和基于對該總線主控器的識別有選擇性地允許該寫請求。
5.如權利要求4所述的方法,其中一個核心訪問信號基于對總線主控器的識別有選擇性地被確證,并且響應該核心訪問信號有選擇性地允許該寫請求。
6.一個隨機存取存儲器(RAM)模塊(106),包括一個非覆蓋區(108),用作一般RAM目的;一個覆蓋區(110),可用于覆蓋非易失性存儲器的部分;和一個塊數據信號,其能夠禁止該非易失性存儲器向系統總線上驅動數據。
7.一個能夠以覆蓋模式和非覆蓋模式操作的隨機存取存儲器(RAM)模塊(106),其中在覆蓋模式中,該RAM模塊包括一個用作一般RAM目的的非覆蓋區(108);一個包含多個分區的覆蓋區(110),其中該多個分區的第一部分能夠被啟動用于覆蓋該非易失性存儲器的部分,該多個分區的第二部分能夠用作一般RAM目的;和在非覆蓋模式中,該RAM模塊用作一般RAM目的。
8.如權利要求7所述的RAM模塊,還包括一個能夠禁止該非易失性存儲器驅動數據的塊數據信號。
9.如權利要求8所述的RAM模塊,還包括一個控制寄存器,其中該控制寄存器包括一個能夠配置該RAM模塊進入覆蓋模式和非覆蓋模式的模式字段。
10.如權利要求9所述的RAM模塊,其中該控制寄存器還包括一個能夠將該多個分區的第一部分收縮成鄰接的內存單元的收縮字段;一個能夠相應于該多個分區的每一分區配置分區尺寸的分區尺寸字段;和一個能夠使該多個分區的每一分區使能的分區使能字段。
全文摘要
一個數據處理系統,包括一個具有核心(102)的嵌入式控制器(100),系統總線,非易失性存儲器(104),和隨機存儲器(RAM)(106)。該RAM(104)有一個非覆蓋區(108)和一個覆蓋區(110)。該覆蓋區(110)可被分成多個分區。在不被用作覆蓋區時,該覆蓋區(110)的各分區可用作一般RAM目的。
文檔編號G06F12/00GK1426559SQ01807583
公開日2003年6月25日 申請日期2001年4月4日 優先權日2000年4月4日
發明者格魯斯維米·甘尼什, 蘇雷德雷·P·伯哈塔雷, 華萊士·B·哈伍德三世, 加里·L·米勒, 約瑟夫·杰勒曼斯基 申請人:摩托羅拉公司