專利名稱:對片上存儲器進(jìn)行安全訪問的集成電路以及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對片上存儲器進(jìn)行安全訪問的集成電路以及方法。
背景技術(shù):
現(xiàn)有集成電路包含a) 具有多根導(dǎo)線的片上存儲器數(shù)據(jù)總線,其用來把存儲于存儲器內(nèi)的數(shù)據(jù)傳送到至少一個設(shè)備,b) 與存儲器數(shù)據(jù)總線連接的片上存儲器,根據(jù)存儲于存儲器內(nèi) 的數(shù)據(jù),控制片上存儲器用來在存儲器數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置邏輯1或邏輯0,從而響應(yīng)于讀指令,可以把存儲于存儲器段內(nèi)的數(shù)據(jù)傳送到至少一個外圍設(shè)備,c) 片上訪問權(quán)管理器,接收到來自外圍設(shè)備的讀指令后,根據(jù)預(yù)定的訪問權(quán),其用來允許或拒絕外圍設(shè)備訪問存儲器段。片上存儲器數(shù)據(jù)總線被直接連接到外圍設(shè)備。在集成電路的操作過程中,訪問權(quán)管理器對發(fā)送了讀指令的每個外圍設(shè)備的訪問權(quán)進(jìn)行評估,所述讀指令關(guān)于存儲于存儲器段內(nèi)的數(shù)據(jù)。如果外圍設(shè)備具有訪問存儲器段的權(quán)利,則訪問權(quán)管理器就會允許這次訪問,并且只有這樣,之后才能控制片上存儲器把存儲的數(shù)據(jù)通過存儲器數(shù)據(jù)總線傳送到該設(shè)備。評價設(shè)備的訪問權(quán)和控制存儲器傳送所存儲的數(shù)據(jù)的過程既花費時間又減慢了片上存儲器和外圍設(shè)備間的數(shù)據(jù)傳送速度。在專利申請US 2003/0041254中,Challener等人給出了一個存 儲器的例子,其中,由訪問權(quán)管理器來評價訪問存儲器。發(fā)明內(nèi)容因此,本發(fā)明的目的是提供一種集成電路設(shè)計用來改善片上存
儲器和外圍設(shè)備間的數(shù)據(jù)傳送速度。考慮到前述的和其它的目的,根據(jù)本發(fā)明,提供了一種集成電 路,其包括d)與存儲器數(shù)據(jù)總線連接的片上鎖,只要訪問存儲器段不被允 許,訪問權(quán)管理器就控制片上鎖來阻止對設(shè)置在存儲器數(shù)據(jù)總線的每 根導(dǎo)線上的邏輯1或0的訪問。在上述的集成電路中,只要訪問存儲器段不被允許,片上鎖就 會阻止來自外圍設(shè)備對存儲器數(shù)據(jù)總線的任何訪問。因此,在明確地 允許外圍設(shè)備訪問存儲器段的權(quán)利前,可以開始控制片上存儲器來在 存儲數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置邏輯l或0。結(jié)果是,當(dāng)允許訪問存 儲器段時,至少已經(jīng)執(zhí)行了一部分用來在存儲器數(shù)據(jù)總線的導(dǎo)線上設(shè) 置邏輯1或0的處理,從而減少了用來訪問存儲在存儲器內(nèi)的數(shù)據(jù)的 時間。上述集成電路的實施例可以包括以下特征中的一個或幾個-如果訪問存儲器段被允許,訪問權(quán)管理器控制片上鎖來把存儲 器數(shù)據(jù)總線的每根導(dǎo)線和連接到外圍設(shè)備的數(shù)據(jù)輸入端口的片上設(shè) 備數(shù)據(jù)總線的對應(yīng)導(dǎo)線相連,-如果訪問存儲器段被拒絕,則訪問權(quán)管理器控制片上鎖來在設(shè) 備數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置虛擬的邏輯1或o。集成電路的上述實施例給出了以下優(yōu)點-在設(shè)備數(shù)據(jù)總線的每根導(dǎo)線上進(jìn)行虛擬的邏輯1或o設(shè)置刪除 了在設(shè)備數(shù)據(jù)總線上發(fā)送的先前所讀數(shù)據(jù),并且把每根導(dǎo)線設(shè)置為預(yù) 定狀態(tài)。本發(fā)明也涉及一種對上述集成電路內(nèi)的片上存儲器進(jìn)行安全訪 問的方法,該方法包括a) 根據(jù)存儲于存儲器段內(nèi)的數(shù)據(jù),片上存儲器在存儲器數(shù)據(jù)總 線的每根導(dǎo)線上設(shè)置邏輯1或邏輯0,從而響應(yīng)于讀指令,把存儲的 數(shù)據(jù)傳送到外圍設(shè)備,b) 接收到來自外圍設(shè)備的讀指令后,根據(jù)預(yù)定的訪問權(quán),片上 訪問權(quán)管理器允許或拒絕外圍設(shè)備訪問存儲器段, C)只要訪問存儲器段不被允許,與存儲器數(shù)據(jù)總線連接的片上 鎖就阻止對設(shè)置在存儲器數(shù)據(jù)總線的每根導(dǎo)線上的邏輯1或0的訪 問。上述實施例的方法包含以下特征中的一個或幾個 -在步驟b)結(jié)束前,步驟a)開始。-接收到外圍設(shè)備發(fā)送的讀指令后,步驟a)和b)都開始。-在步驟b)的結(jié)尾,如果訪問存儲器段被允許,則所述鎖就把 存儲器數(shù)據(jù)總線的每根導(dǎo)線和連接到外圍設(shè)備的片上設(shè)備數(shù)據(jù)總線 的對應(yīng)導(dǎo)線相連,并且可選地,如果訪問存儲器段被拒絕,則所述鎖就在設(shè)備數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置虛擬的邏輯1或0。本方法的上述實施例給出了以下優(yōu)點-在步驟b)結(jié)束前開始步驟a)加速了數(shù)據(jù)傳送速度,因為步 驟a)和b)至少部分地被并行地執(zhí)行。-步驟a)和b)同時開始使得存儲器和外圍設(shè)備間的數(shù)據(jù)傳送 進(jìn)一步加速。從以下的描述,附圖和權(quán)利要求中,本發(fā)明的這些及其它方面 將變得明顯。
圖1示出了集成電路結(jié)構(gòu)的示意圖;圖2示出在圖1的集成電路中用來訪問片上存儲器的不同信號 的時間圖;和圖3是對圖1的集成電路中的片上存儲器進(jìn)行安全訪問的方法 的流程圖。
具體實施方式
圖1示出了例如來自A脂公司(參考網(wǎng)站www. arm. com)的ARM 處理器的集成電路2。集成電路2具有形成了芯片的核心,其中集成電路的每個元件 都被蝕刻在芯片上。圖1只示出了用來理解本發(fā)明所必需的集成電路
的細(xì)節(jié)。集成電路2至少有一個片上存儲器8,存儲器8對應(yīng)于存儲器地址的一個范圍。存儲器地址的這個范圍,例如,被劃分成n個存儲器 地址子范圍,每個子范圍對應(yīng)于一個存儲器段,其中n是大于1的整 數(shù)。例如,存儲器8是例如SRAM (靜態(tài)隨機(jī)存取存儲器)的同步存 儲器。在諸如CPU (中央處理器)、DSP (數(shù)字信號處理器)或DMA (存 儲器直接存取)單元之類的多個外圍設(shè)備之間共享訪問至少一個存儲 器段。為了簡單起見,只示出了一個外圍設(shè)備10。存儲器8具有與片上地址總線14連接的地址輸入端口 12。端口 12接收在存儲器8中將要被讀取的數(shù)據(jù)的地址。存儲器8還具有指令輸入端口 16和數(shù)據(jù)輸出端口 18。端口 16被連接到片上指令總線20用來接收包括控制信號的讀 指令。端口 18被連接到存儲器數(shù)據(jù)總線22用來把存儲的數(shù)據(jù)傳送到 例如設(shè)備10的外圍設(shè)備。優(yōu)選地,總線14、 20和22是流水線總線。在圖1中,只詳細(xì)描述了總線22的結(jié)構(gòu)??偩€22具有多個并 行的導(dǎo)線24,每根導(dǎo)線24被連接到端口 18的輸出管腳26。為了簡 單起見,只示出了八根導(dǎo)線24。每個管腳26能把其各個導(dǎo)線24的 電壓設(shè)置為對應(yīng)于邏輯1或邏輯0的電壓。設(shè)置在導(dǎo)線24上的邏輯 1或邏輯0與在存儲器8中所讀數(shù)據(jù)的值一致,因此這個值能被傳送 到外圍設(shè)備。設(shè)備io具有與總線20連接的輸出指令端口 30,來給存儲器8 發(fā)送讀指令,并且設(shè)備10具有與總線14連接的地址輸出端口 32,來指定將要被讀取的數(shù)據(jù)的地址。設(shè)備IO還包括與設(shè)備數(shù)據(jù)總線36連接的數(shù)據(jù)輸入端口 34。當(dāng) 訪問存儲器8被允許時,使用總線36接收在存儲器8中所讀取的數(shù) 據(jù)??偩€36同總線22具有同樣多的導(dǎo)線38(即,例如8根導(dǎo)線)。 每根導(dǎo)線38對應(yīng)于各根導(dǎo)線24。集成電路2具有片上訪問權(quán)管理器40,其用來允許或拒絕設(shè)備 10對存儲器8的特定存儲器段的訪問。管理器40被連接到存儲器42, 存儲器42包含針對每個外圍設(shè)備的訪問權(quán)的數(shù)據(jù)庫44。例如,數(shù)據(jù) 庫44給每個外圍設(shè)備指定以下數(shù)據(jù)-外圍設(shè)備標(biāo)識符,-存儲器訪問類型,像突發(fā)訪問或非順序訪問, -外圍設(shè)備的特權(quán),-外圍設(shè)備可訪問的存儲器段的地址。根據(jù)存儲在數(shù)據(jù)庫44中的訪問權(quán),管理器40能控制鎖50來阻 止或開啟一特定外圍設(shè)備對存儲器段的訪問。 通過控制線52連接管理器40和鎖50。鎖50具有與總線22連接的數(shù)據(jù)輸入端口 54,用來通過導(dǎo)線24 接收存儲器8所傳送的已讀取的數(shù)據(jù),并且該鎖具有與總線36連接 的輸出端口 56。只要訪問存儲器段不被允許,管理器40就控制鎖50來阻止設(shè) 備10對設(shè)置在每根導(dǎo)線24上的邏輯1或0的訪問。例如,當(dāng)訪問存儲器8被允許時,鎖50就能把導(dǎo)線24連接到 各根導(dǎo)線38,從而使得設(shè)置在導(dǎo)線24上的數(shù)據(jù)就能通過鎖50傳送 到總線36。鎖50還能在每根導(dǎo)線38上設(shè)置虛擬邏輯1或0來把預(yù)定的虛 擬數(shù)據(jù)傳送到外圍設(shè)備(例如設(shè)備10)。優(yōu)選地,這些虛擬數(shù)據(jù)與 設(shè)置在總線22上的數(shù)據(jù)無關(guān)。參考圖2和3,將描述集成電路2的操作。圖2示出了隨時間t而改變的時鐘信號60。時鐘信號60被用來 使存儲器8、總線14、 20、 22和36以及管理器40的操作同步。以 時鐘信號60的上升沿來使這些操作同步。在圖2中,t。、 h和t2時刻分別對應(yīng)時鐘信號60的三個連續(xù)上升沿。時鐘周期t。ye對應(yīng)時鐘信號60的一個周期。曲線62代表芯片選擇信號的值。這里,在to時刻,芯片選擇信
號等于l來選擇存儲器8。曲線64代表總線14上的地址被改變和讀/寫指令被改變的時間。在圖2中,在to時刻,總線14上的地址是D2,而在"時刻,地 址是D3。在to和tj寸刻,在端口 16上出現(xiàn)一個讀指令。曲線66代表存儲器8在總線22上設(shè)置的數(shù)據(jù)。在to時刻,在 總線22上設(shè)置了數(shù)據(jù)Qp數(shù)據(jù)(^對應(yīng)外圍設(shè)備在前一個時鐘周期 過程中請求的數(shù)據(jù)。在h時刻,在總線22上設(shè)置了數(shù)據(jù)Q2。數(shù)據(jù) Q2對應(yīng)存儲器8在to時刻所讀取的在地址D2存儲的數(shù)據(jù)。如圖2所示,在存儲器8用在to時刻請求的數(shù)據(jù)Q2代替以前的 數(shù)據(jù)Q,之前,必需等待時間間隔ta。這個時間間隔tj爾為存儲器8的"存儲器訪問時間"。間隔ta對應(yīng)一段時間,這段時間是存儲數(shù)據(jù)在到達(dá)輸出管腳26之前,經(jīng)過存儲器8的模擬單元所必需的時間。時間間隔ta開始于to時刻。例如,對于工作頻率是125MHz的單端口 SRAM,其時間間隔ta 等于2.83ns。這個時間間隔ta通常比5ns短。曲線68代表評價時間間隔tb,評價時間間隔tb是管理器40根 據(jù)在to時刻總線14和20上出現(xiàn)的數(shù)據(jù),來確定是否允許或拒絕訪 問存儲器段所必需的時間。優(yōu)選地,時間間隔tb于to時刻開始,在 時間間隔ta結(jié)束前結(jié)束。這里,總線14、 20、 22和36是流水線總線,諸如例如ARM AMBA 2.0總線(AMBA:高級微控制器總線體系結(jié)構(gòu))。ARMAMBA總線2. 0 是由A西基于標(biāo)準(zhǔn)AMBA(2.0版本)開發(fā)的總線體系結(jié)構(gòu)。在流水線 總線中,在一個時鐘周期內(nèi),發(fā)送讀指令和地址,稱為"地址相 (address phase)",而在接下來的時鐘周期內(nèi),讀取對應(yīng)該地址 所存儲的數(shù)據(jù),稱為"數(shù)據(jù)相"。在這里,在t。時刻,存儲器8讀取地址D2而總線22只有在接 下來的時鐘周期^時刻才能獲得對應(yīng)的數(shù)據(jù)Q2。圖3示出了當(dāng)外圍設(shè)備10讀取時,對存儲器8進(jìn)行安全訪問的方法。最初,在步驟76中,設(shè)備10在總線20上發(fā)送一個讀指令并且
在總線14上發(fā)送將要被讀取的數(shù)據(jù)的地址。這個讀指令包含設(shè)備標(biāo) 識符和被請求的存儲器訪問類型。設(shè)備IO也把總線20的片選信號設(shè)置為對應(yīng)于存儲器8的邏輯1。在to時刻,步驟78中,接收到讀指令后,控制存儲器8來讀取 對應(yīng)于在端口 12上接收到的地址的數(shù)據(jù)(例如D2)。因此,在to 時刻,存儲器8根據(jù)將要被讀取的數(shù)據(jù)開始在導(dǎo)線24上設(shè)置邏輯1 或0的過程。與此同時,在t。時刻,步驟80中,管理器40開始對與設(shè)備10 的標(biāo)識符相關(guān)的訪問權(quán)進(jìn)行評價。與此同時,步驟82中,只要管理器40沒有結(jié)束對設(shè)備10的訪 問權(quán)的評價,鎖50就阻止對出現(xiàn)在總線22上的數(shù)據(jù)的訪問。例如, 鎖50保持導(dǎo)線24與導(dǎo)線38處于不連接狀態(tài)。在t。+ tb時刻,管理器40允許或拒絕對與地址D2相對應(yīng)的存儲 器段的訪問。如果管理器40允許訪問存儲器段,那么存儲器40通過線路52 來控制鎖50對訪問總線22解鎖。例如,在步驟86中,做出響應(yīng),鎖50把導(dǎo)線24與各根導(dǎo)線38 相連,從而設(shè)置在總線22上的數(shù)據(jù)就能傳送到總線36上。相反,如果管理器40拒絕訪問存儲器段,那么它就控制鎖50 來在總線36上設(shè)置虛擬數(shù)據(jù)。結(jié)果是,在步驟88中,鎖50在每根 導(dǎo)線38上設(shè)置一個虛擬的邏輯1或0。優(yōu)選地,所設(shè)置的虛擬數(shù)據(jù) 是能被設(shè)備10容易識別的邏輯0或邏輯1的結(jié)合。在to+ta時刻,在步驟90中,存儲器8已經(jīng)結(jié)束了用來傳送所讀 取的數(shù)據(jù)Q2到設(shè)備10而對每根導(dǎo)線24進(jìn)行邏輯1或0的設(shè)置。然 而只有在鎖50使得導(dǎo)線24和導(dǎo)線38相連時,數(shù)據(jù)Q2才能被傳送到 設(shè)備10。否則,數(shù)據(jù)Q2對設(shè)備10就保持著不可訪問的和不可讀的 狀態(tài)。在tj寸刻,步驟92中,設(shè)備IO讀取總線36上的數(shù)據(jù)。如果鎖 50阻止訪問總線22,則讀取數(shù)據(jù)就等于虛擬數(shù)據(jù),而如果鎖50使得 導(dǎo)線24和導(dǎo)線38相連,則讀取數(shù)據(jù)就等于數(shù)據(jù)Q2。
因此,由于集成電路2的特定結(jié)構(gòu),所以可以在間隔ta內(nèi)評價 對存儲器8的存儲器段進(jìn)行訪問的權(quán)利。因此,在開始讀取存儲器8 內(nèi)的數(shù)據(jù)Q2前,不再需要等待間隔tb的結(jié)束。很多另外的實施例也是可行的。例如,管理器40還可以僅從設(shè)備標(biāo)識符或僅從將要被讀取的地址來確定訪問存儲器段的權(quán)利。還可 以使用從讀指令得到的任何附加信息來允許或拒絕訪問存儲器段。這里所描述的集成電路的結(jié)構(gòu)和對存儲器段進(jìn)行安全訪問的方 法還可以應(yīng)用在異步存儲器。存儲器段可以同存儲器8的地址的整個范圍一樣寬。以上安全訪問存儲器的結(jié)構(gòu)和方法還可以應(yīng)用在非流水線總線。鎖50可以由把每根導(dǎo)線38設(shè)置為邏輯1或邏輯0的邏輯門(如 與門)組成。外圍設(shè)備也可以不是片上外圍設(shè)備,它可以通過適當(dāng)?shù)慕涌谂c 集成電路連接。
權(quán)利要求
1.一種集成電路,包含a)片上存儲器數(shù)據(jù)總線(22),其具有多根導(dǎo)線,用來把存儲在存儲器內(nèi)的數(shù)據(jù)傳送到至少一個外圍設(shè)備,b)片上存儲器(8),與存儲器數(shù)據(jù)總線連接,根據(jù)存儲在存儲器段內(nèi)的數(shù)據(jù),所述片上存儲器被控制以在存儲器數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置邏輯1或邏輯0,從而能夠響應(yīng)于讀指令,把存儲在存儲器段內(nèi)的數(shù)據(jù)傳送到至少一個外圍設(shè)備(10),c)片上訪問權(quán)管理器(40),在接收到來自外圍設(shè)備的讀指令后,根據(jù)預(yù)定訪問權(quán),其用來允許或拒絕所述外圍設(shè)備訪問所述存儲器段,d)片上鎖(50),與所述片上存儲器數(shù)據(jù)總線連接,只要訪問所述存儲器段不被允許,所述訪問權(quán)管理器就控制所述片上鎖來阻止對設(shè)置在所述存儲器數(shù)據(jù)總線的每根導(dǎo)線上的邏輯1或邏輯0的訪問。
2. 根據(jù)權(quán)利要求1的集成電路,其中,如果訪問存儲器段被允 許,則所述片上訪問權(quán)管理器控制所述片上鎖(50),來把所述存儲 器數(shù)據(jù)總線的每根導(dǎo)線與連接到所述外圍設(shè)備的數(shù)據(jù)輸入端口 (34) 的片上設(shè)備數(shù)據(jù)總線的對應(yīng)導(dǎo)線連接。
3. 根據(jù)權(quán)利要求2的集成電路,其中,如果訪問存儲器段被拒 絕,則所述訪問權(quán)管理器控制所述鎖來在所述設(shè)備數(shù)據(jù)總線的每根導(dǎo) 線上設(shè)置虛擬邏輯1或0。
4. 一種對集成電路內(nèi)的片上存儲器進(jìn)行安全訪問的方法,該集 成電路包括具有多根導(dǎo)線的片上存儲器數(shù)據(jù)總線,其中a)根據(jù)存儲在存儲器段內(nèi)的數(shù)據(jù),所述片上存儲器在所述存儲 器數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置邏輯1或邏輯0,從而響應(yīng)于讀指令, 把存儲的數(shù)據(jù)傳送到外圍設(shè)備,b)在接收到來自外圍設(shè)備的讀指令后,根據(jù)預(yù)定的訪問權(quán),片 上訪問權(quán)管理器允許或拒絕所述外圍設(shè)備訪問所述存儲器段,C)只要訪問存儲器段不被允許,與所述存儲器數(shù)據(jù)總線連接的 片上鎖就阻止對設(shè)置在所述存儲器數(shù)據(jù)總線的每根導(dǎo)線上的邏輯1 或0的訪問。
5. 根據(jù)權(quán)利要求4的方法,其中,在步驟b)結(jié)束前,步驟a) 開始。
6. 根據(jù)權(quán)利要求5的方法,其中,在接收到所述外圍設(shè)備發(fā)送 的讀指令后,步驟a)和步驟b)都開始。
7. 根據(jù)權(quán)利要求4到6中的任一權(quán)利要求的方法,其中,如果 訪問存儲器段被允許,那么,在步驟b)的結(jié)尾,所述鎖把所述存儲 器數(shù)據(jù)總線的每根導(dǎo)線和連接到所述外圍設(shè)備的片上設(shè)備數(shù)據(jù)總線 的對應(yīng)導(dǎo)線進(jìn)行連接,并且可選地,如果訪問存儲器段被拒絕,則所 述鎖將在所述設(shè)備數(shù)據(jù)總線的每根導(dǎo)線上設(shè)置虛擬邏輯1或0。
全文摘要
一種集成電路包含片上訪問權(quán)管理器(40),在接收到來自外圍設(shè)備的讀指令后,根據(jù)預(yù)定的訪問權(quán),其用來允許或拒絕外圍設(shè)備(10)訪問存儲器段;片上鎖(50),與存儲器數(shù)據(jù)總線連接,只要訪問存儲器段不被允許,訪問權(quán)管理器可控制該鎖來阻止對設(shè)置在每一存儲器數(shù)據(jù)總線上的邏輯1或0的訪問。
文檔編號G06F21/79GK101213558SQ200680023912
公開日2008年7月2日 申請日期2006年6月28日 優(yōu)先權(quán)日2005年7月1日
發(fā)明者塞德里克·羅比尼, 西爾萬·杜維拉爾 申請人:Nxp股份有限公司