專利名稱:訪問控制裝置、系統(tǒng)和方法,處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可以控制對存儲器的訪問的訪問控制裝置、訪問控制系統(tǒng)、處理器、訪問控制方法、存儲器訪問控制裝置、存儲器訪問控制系統(tǒng)和存儲器訪問控制方法。
背景技術(shù):
在新近的計算機(jī)系統(tǒng)中,使用多道程序系統(tǒng)以高效地利用各種資源,例如計算機(jī)系統(tǒng)中的存儲器和CPU,其中,所述多道程序系統(tǒng)執(zhí)行處理,同時切換多個進(jìn)程(程序、任務(wù)或工作)。
因此,在處理中使用的存儲器上的數(shù)據(jù)會被另一個進(jìn)程偷竊,或者通過重寫被破壞。
因此,在傳統(tǒng)的技術(shù)中,如在“z/Architecture Principles ofOperation(IBM;SA22-7832-00;December 2000)pp.3-9至3-12”中所公開的,在存儲器中每隔預(yù)定尺寸(例如4kB)存儲稱作存儲密鑰的信息。當(dāng)進(jìn)程訪問存儲器時,系統(tǒng)將由該進(jìn)程所擁有的密鑰與待訪問的存儲器的存儲密鑰進(jìn)行比較,以確定是否可以訪問所述存儲器。
然而,在上述使用存儲密鑰的存儲器保護(hù)系統(tǒng)中,除了其中將存儲數(shù)據(jù)的存儲器之外,還需要存儲存儲密鑰的存儲器。因此,會增加的相當(dāng)?shù)臄?shù)量。
一個保護(hù)單位是例如4kB的頁單位。當(dāng)用戶打算保護(hù)較小尺寸的數(shù)據(jù)時,產(chǎn)生未使用的浪費的存儲區(qū)域。可以解決這個問題從而使得存儲密鑰與更小的存儲區(qū)域單位相關(guān)聯(lián)。但是,在這種情況下,需要更大的存儲器來存儲存儲密鑰。
此外,當(dāng)在存儲器中發(fā)生故障時,存儲器可以是可訪問的,并且數(shù)據(jù)可以被非法讀取。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,一種訪問控制裝置,其控制寫入方、讀出方和存儲器之間的訪問,所述訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀出方從所述存儲器中讀取所述讀數(shù)據(jù)的讀地址來生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制裝置,其控制寫入方、讀出方、高速緩沖存儲器和存儲器之間的訪問,所述訪問控制裝置包括讀請求接收器,其從讀出方獲取讀地址;高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在所述高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由所述寫入方或所述讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的所述寫入方或所述讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視器判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制系統(tǒng),包括處理器;存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中,所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀?。蛔x地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制系統(tǒng),包括處理器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將由所述奇偶校驗碼生成器生成的所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀取;讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制系統(tǒng),包括處理器;存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中,所述存儲器訪問控制裝置包括讀請求接收器,其獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的所述寫入方或所述讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視單元判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制系統(tǒng)包括處理器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中,所述存儲器訪問控制裝置包括讀請求接收器,其獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的寫入方或讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視單元判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種處理器,包括存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中,所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將由所述奇偶校驗碼生成器生成的所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀??;讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種訪問控制方法,其控制寫入方、讀出方和存儲器之間的訪問,所述訪問控制方法包括生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;將所述生成的奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;將所述第一運算后數(shù)據(jù)寫到所述轉(zhuǎn)換后的地址;生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);根據(jù)所述讀出方校正子、所述讀出方訪問ID以及將讀取所述讀數(shù)據(jù)的讀地址來生成所述讀出方掩碼數(shù)據(jù);將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;從所述轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
根據(jù)本發(fā)明的另一方面,一種存儲器訪問控制方法,其控制寫入方、讀出方和存儲器之間的訪問,所述存儲器訪問控制方法包括獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);判斷所述讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的寫入方或讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);當(dāng)判斷所述讀地址未存儲在所述高速緩沖存儲器中時,生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);將所述地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;從所述轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
圖1是顯示根據(jù)本發(fā)明第一實施例的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖2是用于說明當(dāng)數(shù)據(jù)被寫入存儲器時執(zhí)行的處理的示圖;圖3是用于說明當(dāng)數(shù)據(jù)D′被讀出時執(zhí)行的處理的示圖;圖4是顯示當(dāng)數(shù)據(jù)長度是64位時的Hsiao的SEC-DED碼的校驗矩陣H的例子的示圖;圖5是顯示與圖4中顯示的校驗矩陣H相對應(yīng)的生成矩陣G的示圖;圖6是顯示訪問控制裝置的詳細(xì)功能結(jié)構(gòu)的框圖;圖7是顯示從處理器所看到的地址空間的示圖;圖8是顯示掩碼值生成電路的詳細(xì)功能結(jié)構(gòu)的框圖;圖9是顯示數(shù)據(jù)掩碼生成電路的具體結(jié)構(gòu)的框圖;圖10A是顯示訪問ID校正子生成電路的示圖;圖10B是顯示訪問ID校正子生成電路的示圖;
圖11是顯示包含在訪問控制系統(tǒng)中的訪問控制處理中的寫處理的流程圖;圖12是顯示寫處理中的數(shù)據(jù)的流程的流程圖;圖13是顯示在訪問ID設(shè)定處理中使用的進(jìn)程管理表的示圖;圖14是顯示在訪問ID設(shè)定處理中的詳細(xì)處理的流程圖;圖15是用于說明掩碼值生成處理中的掩碼值生成電路的詳細(xì)處理的流程圖;圖16是顯示包含在訪問控制處理中的、從存儲器讀數(shù)據(jù)的處理的流程圖;圖17是用于說明當(dāng)寫入存儲器的數(shù)據(jù)被讀取時執(zhí)行的處理的示圖;圖18是顯示根據(jù)第二實施例的裝置的功能結(jié)構(gòu)的框圖;圖19是顯示訪問ID管理電路的詳細(xì)功能結(jié)構(gòu)的框圖;圖20是示意性地顯示訪問ID表的數(shù)據(jù)結(jié)構(gòu)的示圖;圖21是顯示訪問ID管理電路的具體結(jié)構(gòu)的示圖;圖22是顯示根據(jù)第二實施例的訪問控制系統(tǒng)中的訪問ID獲取處理中的詳細(xì)處理的流程圖;圖23是示意性地顯示在根據(jù)第三實施例的訪問控制系統(tǒng)中,包含在訪問ID管理電路中的訪問ID表的數(shù)據(jù)結(jié)構(gòu)的示圖;圖24是顯示訪問ID管理電路的具體結(jié)構(gòu)的示圖;圖25是顯示根據(jù)第三實施例的訪問控制系統(tǒng)中的訪問ID獲取處理中的詳細(xì)處理的流程圖;圖26是示意性地顯示根據(jù)第四實施例的訪問ID表的數(shù)據(jù)結(jié)構(gòu)的示圖;圖27是顯示訪問ID管理電路的具體結(jié)構(gòu)的示圖;圖28是顯示根據(jù)第四實施例的訪問控制系統(tǒng)中的訪問ID獲取處理中的詳細(xì)處理的流程圖;圖29是顯示根據(jù)第五實施例的數(shù)據(jù)掩碼生成電路的功能結(jié)構(gòu)的框圖;圖30是示意性地顯示數(shù)據(jù)掩碼生成信息表的數(shù)據(jù)結(jié)構(gòu)的示圖;
圖31是顯示LFSR延遲計算電路的更具體的結(jié)構(gòu)的示圖;圖32是包含在LFSR延遲計算電路中的電路的詳圖;圖33是包含在LFSR延遲計算電路中的電路的詳圖;圖34是顯示根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路的功能結(jié)構(gòu)的框圖;圖35是顯示根據(jù)第七實施例的數(shù)據(jù)掩碼生成電路的功能結(jié)構(gòu)的框圖;圖36是顯示地址分離電路的具體結(jié)構(gòu)的示圖;圖37是顯示根據(jù)第七實施例的第一變形的地址分離電路的具體結(jié)構(gòu)的示圖;圖38是僅具有零移位電路的數(shù)據(jù)掩碼生成電路的框圖;圖39是僅具有地址分離電路的數(shù)據(jù)掩碼生成電路的框圖;圖40是顯示根據(jù)第七實施例的第三變形的數(shù)據(jù)掩碼生成電路的框圖;圖41是顯示根據(jù)第七實施例的第四變形的數(shù)據(jù)掩碼生成電路的框圖;圖42是顯示根據(jù)第七實施例的第五變形的數(shù)據(jù)掩碼生成電路的框圖;圖43是顯示根據(jù)第八實施例的裝置的功能結(jié)構(gòu)的框圖;圖44是顯示地址轉(zhuǎn)換設(shè)備的具體結(jié)構(gòu)的示圖;圖45是顯示根據(jù)第八實施例的第一變形的地址轉(zhuǎn)換設(shè)備的結(jié)構(gòu)的示圖;圖46是顯示根據(jù)第八實施例的第二變形的地址轉(zhuǎn)換設(shè)備的結(jié)構(gòu)的示圖;圖47是顯示根據(jù)第八實施例的第三變形的地址轉(zhuǎn)換設(shè)備的結(jié)構(gòu)的示圖;圖48是顯示根據(jù)第一變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖49是顯示根據(jù)第二變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖50是顯示根據(jù)第三變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖51是顯示根據(jù)第四變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;
圖52是顯示根據(jù)第五變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖53是顯示根據(jù)第六變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖54是顯示根據(jù)第七變形的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖55是顯示根據(jù)第九實施例的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖56是顯示訪問控制裝置的詳細(xì)功能結(jié)構(gòu)的框圖;圖57是處理器端緩存控制電路的詳細(xì)功能結(jié)構(gòu)的框圖;圖58是顯示緩沖存儲器的詳細(xì)功能結(jié)構(gòu)的框圖;圖59是顯示存儲器端緩存控制電路的詳細(xì)功能結(jié)構(gòu)的框圖;圖60是顯示根據(jù)第九實施例的訪問控制系統(tǒng)中的訪問控制處理中包含的寫處理的流程圖;圖61是顯示根據(jù)第九實施例的訪問控制系統(tǒng)中的訪問控制處理中包含的讀處理的流程圖;圖62是顯示根據(jù)第十實施例的裝置的功能結(jié)構(gòu)的框圖;圖63是顯示根據(jù)第十實施例的掩碼值生成電路的詳細(xì)功能結(jié)構(gòu)的框圖;圖64是示意性地顯示地址信息表的數(shù)據(jù)結(jié)構(gòu)的示圖;圖65是用于說明存儲器地址的示圖;圖66A是用于說明由地址轉(zhuǎn)換設(shè)備執(zhí)行的地址轉(zhuǎn)換處理的示圖;圖66B是用于說明由地址轉(zhuǎn)換設(shè)備執(zhí)行的地址轉(zhuǎn)換處理的示圖;圖67是顯示地址轉(zhuǎn)換設(shè)備的具體結(jié)構(gòu)的示圖;圖68是顯示實現(xiàn)圖66A和66B中顯示的地址轉(zhuǎn)換的地址轉(zhuǎn)換表的示圖;圖69是顯示由根據(jù)第十實施例的訪問控制系統(tǒng)執(zhí)行的寫處理的流程圖;圖70是顯示由根據(jù)第十實施例的訪問控制系統(tǒng)執(zhí)行的讀處理的流程圖;圖71是顯示根據(jù)第十實施例的第一變形的地址轉(zhuǎn)換設(shè)備的具體結(jié)構(gòu)的示圖;圖72是示意性地顯示根據(jù)第十實施例的第二變形的數(shù)據(jù)掩碼生成信息表的數(shù)據(jù)結(jié)構(gòu)的示圖;圖73是顯示根據(jù)第十一實施例的裝置的功能結(jié)構(gòu)的框圖;圖74是顯示重排緩沖區(qū)166的具體結(jié)構(gòu)的示圖;圖75是顯示由突發(fā)傳輸控制器將數(shù)據(jù)寫入存儲器的處理的流程圖;圖76是用于更具體地說明參考圖75所說明的寫處理的示圖;圖77是顯示由突發(fā)傳輸控制器從存儲器中讀數(shù)據(jù)的處理的流程圖;圖78是用于更具體地說明參考圖77所說明的讀處理的示圖;圖79是顯示根據(jù)第十一實施例的變形的存儲器端緩存控制電路的功能結(jié)構(gòu)的框圖;圖80是顯示根據(jù)第十二實施例的訪問控制系統(tǒng)的整體結(jié)構(gòu)的示圖;圖81是顯示訪問控制裝置的功能結(jié)構(gòu)的框圖;圖82是顯示總線加密設(shè)備的詳細(xì)功能結(jié)構(gòu)的框圖;圖83是顯示未被總線加密設(shè)備掩碼的信號的示圖;圖84是顯示未被總線加密設(shè)備掩碼的信號的示圖;圖85是顯示根據(jù)第十二實施例的第二變形的總線加密設(shè)備的詳細(xì)功能結(jié)構(gòu)的框圖;圖86是顯示根據(jù)第十二實施例的第三變形的裝置的功能結(jié)構(gòu)的框圖;圖87是顯示根據(jù)第十二實施例的第四變形的裝置的功能結(jié)構(gòu)的框圖;以及圖88是顯示根據(jù)第十二實施例的第五變形的裝置的功能結(jié)構(gòu)的框圖。
具體實施例方式
以下將參考附圖詳細(xì)地描述根據(jù)本發(fā)明的訪問控制裝置、訪問控制系統(tǒng)、處理器、訪問控制方法、存儲器訪問控制裝置、存儲器訪問控制系統(tǒng)和存儲器訪問控制方法的實施例。本發(fā)明不局限于這些實施例。
(第一實施例)圖1是顯示根據(jù)第一實施例的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。訪問控制系統(tǒng)1包括訪問控制裝置10、處理器20、存儲器控制器30和存儲器40。
通過存儲器控制器30和訪問控制裝置10將處理器20和存儲器40彼此連接。存儲器控制器30用于消除處理器總線22(直接從處理器延伸出的信號線)的協(xié)議與存儲器總線42的協(xié)議之間的差別。更具體地說,存儲器控制器30消除用于讀/寫從處理器20輸出到處理器總線22的數(shù)據(jù)的信號與將從存儲器40讀出的或?qū)懭氪鎯ζ?0的信號之間的差別。
例如,如果存儲器40是DRAM,那么當(dāng)處理器20指出地址以請求讀數(shù)據(jù)時,需要將地址劃分為高位地址和低位地址,以將該高位和低位地址提供給存儲器40。存儲器控制器30轉(zhuǎn)換處理器和DRAM的尋址過程之間的差異。
訪問控制裝置10連接在存儲器控制器30和存儲器40之間。當(dāng)從存儲器40讀數(shù)據(jù)時,判斷數(shù)據(jù)的讀出方是否具有訪問權(quán)限。由處理器20通過存儲器控制器30將有關(guān)訪問權(quán)限的信息設(shè)置在訪問控制裝置10中。更具體地,例如訪問ID(稍后將描述)這樣的信息被設(shè)置。
訪問控制裝置10具有ECC(糾錯碼或差錯控制碼)的功能。更具體地說,訪問控制設(shè)備10將ECC添加至將由處理器20寫入存儲器40的數(shù)據(jù)。訪問控制裝置10對從存儲器40讀出的添加了ECC的數(shù)據(jù)執(zhí)行ECC校驗。因為使用了ECC,所以訪問控制(即,存儲器40的保護(hù))的單位是與ECC的相等的32位或64位。更具體地說,可以以較小的單位保護(hù)存儲器40。
存儲器數(shù)據(jù)訪問的請求源(請求者)的訪問權(quán)限由訪問控制裝置10管理,即,數(shù)據(jù)的讀出方和寫入方是在處理器20中管理的進(jìn)程。
這里,以下將描述ECC。圖2和3是用于說明ECC的示圖。圖2是用于說明當(dāng)數(shù)據(jù)被寫入存儲器40時執(zhí)行的處理的示圖。通常,如圖2所示,根據(jù)數(shù)據(jù)D的值計算的m位奇偶校驗碼(parity)被添加到數(shù)據(jù)D,該數(shù)據(jù)D具有n位的尺寸并且將被一次從存儲器40讀出或?qū)懭氪鎯ζ?0。(n+m)位數(shù)據(jù)D′被寫入存儲器40。
例如,對于具有64(=n)位尺寸并且將被一次從存儲器40讀取以及寫入存儲器40的數(shù)據(jù),將根據(jù)該數(shù)據(jù)的值計算的8(=m)位奇偶校驗碼添加到該數(shù)據(jù)。將72位的添加了奇偶校驗碼的數(shù)據(jù)寫入存儲器40。
圖3是用于說明當(dāng)數(shù)據(jù)D′被讀取時執(zhí)行的處理的示圖。當(dāng)從存儲器40讀取數(shù)據(jù)D′時,依據(jù)數(shù)據(jù)D′和校驗矩陣“H”的轉(zhuǎn)置矩陣的乘積計算m位的值。該m位的值稱作校正子(syndrome)。校正子“0”意味著n位數(shù)據(jù)的值是正確的。
校正子不為“0”則意味著存在誤差。當(dāng)能夠糾錯時,糾正誤差。當(dāng)存在誤差并且不能糾正時,通過中斷等等通知用作存儲器數(shù)據(jù)訪問的請求者的處理器20發(fā)生誤差。
ECC包括各種系統(tǒng)。各種系統(tǒng)具有不同的奇偶校驗碼的位數(shù),不同的計算奇偶校驗碼的位數(shù)的方法,不同的用于計算校正子的校驗矩陣,以及不同的根據(jù)校正子等等計算糾錯的位的位置的方法。
在計算機(jī)系統(tǒng)的存儲器中廣泛使用SEC-DED碼(單糾錯-雙檢錯碼)。當(dāng)數(shù)據(jù)或它的奇偶校驗碼包括1位誤差(也稱作單錯)時,SEC-DED碼可以指明誤差的位置。當(dāng)數(shù)據(jù)或它的奇偶校驗碼包括2位誤差(也稱作雙錯)時,不能指明位置,但是可以檢測到存在誤差。通常,作為一種ECC,7位的奇偶校驗碼被添加到32位的數(shù)據(jù),8位的奇偶校驗碼被添加到64位的數(shù)據(jù),9位的奇偶校驗碼被添加到128位的數(shù)據(jù)。
根據(jù)計算代碼的奇偶校驗碼的方法以及形成校驗矩陣的方法的不同,還有各種類型的SEC-DED碼。各種類型的SEC-DED碼中的擴(kuò)展海明碼(extended humming code)以及Hsiao碼被廣泛使用。特別地,Hsiao類型的SEC-DED碼具有適用于安裝電路的屬性并且被廣泛使用。在“Algebraic Code for Data Transmission;Richard E.Blahut,2003,Cambridge University Press,p.63”中描述了擴(kuò)展海明碼。在“AClass of Optimal Minimum Odd-weight-column SEC-DED Codes;M.Y.Hsiao,IBM Journal of Research and Development,July 1970,pp.395 to401”中描述了Hsiao碼。兩個類型的SEC-DED碼具有不同的解釋校正子的值的方法,但是具有相同的糾錯/檢測能力。
在根據(jù)第一實施例的訪問控制系統(tǒng)1中,假設(shè)一種Hsiao碼,其將8位奇偶校驗碼添加至64位數(shù)據(jù)。然而,數(shù)據(jù)長度不局限于假設(shè)的長度??梢詫哂懈鞣N長度(例如32位/16位/128位)的數(shù)據(jù)執(zhí)行類似的訪問控制。此外,例如當(dāng)其它的SEC-DED碼(例如擴(kuò)展海明碼)或另一種糾錯碼被使用時,可以執(zhí)行如上所述的訪問控制。
圖4是顯示當(dāng)數(shù)據(jù)長度是64位時的Hsiao類型的SEC-DED碼的校驗矩陣“H”的例子的示圖。校驗矩陣“H”是8行72列的矩陣。從左側(cè)開始的64列對應(yīng)于64位存儲器的數(shù)據(jù)的位的位置,并且右邊剩余的8列對應(yīng)于奇偶校驗碼的位。對應(yīng)于奇偶校驗碼的8列是8×8的單位矩陣。
圖5是顯示與圖4中顯示的校驗矩陣“H”相對應(yīng)的生成矩陣G的示圖。生成矩陣“G”用來計算未添加奇偶校驗碼的原始數(shù)據(jù)的奇偶校驗碼。生成矩陣“G”是64行和72列的矩陣。左側(cè)的64列構(gòu)成64×64的單位矩陣。右側(cè)剩余的8列構(gòu)成關(guān)于生成矩陣“G”的左側(cè)的64列轉(zhuǎn)置矩陣。
圖6是顯示訪問控制裝置10的詳細(xì)功能結(jié)構(gòu)的框圖。訪問控制裝置10包括奇偶校驗碼生成電路100、第一XOR電路102、訪問ID寄存器110、掩碼值生成電路112、第二XOR電路114、校正子計算電路120以及糾錯電路122。
訪問控制裝置10除傳統(tǒng)的ECC電路之外還包括一電路,其形成用于檢查訪問權(quán)限的掩碼值,將數(shù)據(jù)連同奇偶校驗碼記錄在存儲器40中,并且通過使用掩碼值檢查對從存儲器40讀取的數(shù)據(jù)的訪問權(quán)限。除第一XOR電路102、訪問ID寄存器110、掩碼值生成電路112和第二XOR電路114之外的電路與傳統(tǒng)的ECC電路中的那些相同。
當(dāng)連接有訪問控制裝置10的存儲器控制器30包括ECC電路時,可以在不將ECC電路的功能給予訪問控制裝置10的情況下使用存儲器控制器30的ECC電路。
奇偶校驗碼生成電路100為通過存儲器控制器30從處理器20獲取的數(shù)據(jù)生成奇偶校驗碼。奇偶校驗碼被添加到從處理器20獲取的數(shù)據(jù)。
更具體地說,通過存儲器控制器30從處理器20獲取64位數(shù)據(jù)。根據(jù)所獲取的數(shù)據(jù)計算8位奇偶校驗碼以將數(shù)據(jù)輸出至第一XOR電路102。該計算是通過使用參考圖5所說明的生成矩陣“G”而執(zhí)行的。
假設(shè)64位輸入數(shù)據(jù)“d”被表示為64元素矢量,如等式1所示,添加了對應(yīng)于數(shù)據(jù)“d”的8位奇偶校驗碼的代碼字“x”被表示為72元素矢量,如等式2所示。
d=(d1,d2,d3,...,d64) ...(Equation 1)x=(d1,d2,d3,...,d64,p1,p2,...,p8)...(Equation 2)在這種情況下,代碼字(帶有奇偶校驗碼的數(shù)據(jù))“x”,生成矩陣“G”和數(shù)據(jù)“d”具有等式3所表示的關(guān)系。
x=dG ...(Equation 3)更具體地說,64位數(shù)據(jù)乘以生成矩陣“G”以使得能夠計算代碼字“x”。所計算的代碼字“x”的最后的八個元素被輸出為8位的奇偶校驗碼。
已知奇偶校驗碼生成電路100可以實現(xiàn)為組合電路,其通過矢量和這里所述的矩陣的乘積來計算奇偶校驗碼。
訪問ID寄存器110通過存儲器控制器30從處理器20獲取訪問ID。在這種情況下,訪問ID是當(dāng)作為對存儲器40的數(shù)據(jù)訪問的請求者的進(jìn)程訪問存儲器40時使用的信息。在該實施例中,因為8位的奇偶校驗碼被添加到64位的數(shù)據(jù),所以可以管理128種類型的訪問ID。例如,7位數(shù)字0到127用作訪問ID。
當(dāng)工作在處理器20上的進(jìn)程訪問存儲器40時,在訪問控制裝置10的訪問ID寄存器110中設(shè)置訪問ID。
圖7是顯示從處理器20所看到的地址空間的示圖。如圖7所示,訪問控制裝置10的訪問ID寄存器110被映射在可以從處理器20看到的地址空間中的輸入/輸出空間中。當(dāng)處理器20在訪問ID寄存器110映射在輸入/輸出空間中的地址處寫訪問ID時,所寫的訪問ID被寫入訪問ID寄存器110。將訪問ID設(shè)置在訪問ID寄存器110中的方法不局限于上述方法。
當(dāng)在處理器20上執(zhí)行的任意程序被設(shè)計成能夠設(shè)置任意的ID時,不能保護(hù)訪問權(quán)限。希望通過例如工作在處理器20上的OS或硬件認(rèn)證等方式來設(shè)置訪問ID。通過該方式,只有當(dāng)執(zhí)行中的程序具有訪問權(quán)限時,程序的訪問ID才可以被設(shè)置在訪問ID寄存器110中。在這種情況下,訪問ID寄存器110用作寫訪問ID接收器和讀訪問ID接收器。
說明返回到圖6。掩碼值生成電路112基于由訪問ID寄存器110保存的訪問ID以及處理器20必須訪問的存儲器40的地址值生成掩碼值。掩碼值是用于對將寫入存儲器40的數(shù)據(jù)或?qū)拇鎯ζ?0讀取的數(shù)據(jù)進(jìn)行掩碼的數(shù)據(jù),并且可以唯一地根據(jù)訪問ID和將訪問的存儲器40的地址來確定。根據(jù)該實施例的掩碼值生成電路112用作寫掩碼生成器和讀掩碼生成器。
第一XOR電路102計算將寫入存儲器40的數(shù)據(jù)和根據(jù)該數(shù)據(jù)生成的奇偶校驗碼之間的“XOR”(異或),并且當(dāng)數(shù)據(jù)被寫入存儲器40時計算掩碼值。結(jié)果值的組合被寫入存儲器40。更具體地說,由掩碼值生成電路112生成的掩碼值被寫入以重疊數(shù)據(jù)和奇偶校驗碼。該值被稱為第一運算后數(shù)據(jù)。
第二XOR電路114通過計算從存儲器40讀取的數(shù)據(jù)和當(dāng)從存儲器40讀取該數(shù)據(jù)時的掩碼值之間的“XOR”而消除掩碼值。
校正子計算電路120基于第二XOR電路114的計算結(jié)果計算校正子。糾錯電路122根據(jù)由校正子計算電路120計算的校正子的值適當(dāng)?shù)貓?zhí)行糾錯。
在這種情況下,將詳細(xì)地描述校正子計算電路120和糾錯電路122中的處理。根據(jù)從存儲器40讀取的帶有奇偶校驗碼的數(shù)據(jù)計算校正子以檢測并糾正誤差。更具體地說,校正子計算電路120獲取從存儲器40讀取的64位數(shù)據(jù)以及添加到該數(shù)據(jù)的8位奇偶校驗碼。通過使用校驗矩陣“H”,根據(jù)64位數(shù)據(jù)和8位奇偶校驗碼計算8位校正子。校正子被輸出到糾錯電路122。
假設(shè)8位校正子“s”被表示為等式4,并且由作為輸入的64位數(shù)據(jù)和8位奇偶校驗碼組成的矢量“x”被表示為等式5。
s=(s1,s2,...,s8) ...(Equation 4)x=(d1,d2,d3,...,d64,p1,p2,...,p8)...(Equation 5)在這種情況下,可以根據(jù)矢量“x”和校驗矩陣“H”計算校正子“s”,如等式6所示。
s=xHT...(Equation 6)其中,HT表示校驗矩陣“H”的轉(zhuǎn)置矩陣“H”。通過這種方式,校正子計算電路120計算并輸出8位校正子。
當(dāng)SEC-DED碼沒有誤差時,校正子的值變?yōu)椤?”。當(dāng)SEC-DED碼具有一個誤差時,校正子具有與對應(yīng)于錯誤比特的位置的校驗矩陣“H”的列的元素相等的值。當(dāng)校正子不是“0”時,包含在校驗矩陣“H”中的列包括具有與校正子的值相等的值的列矢量,對應(yīng)于該列的比特位置是錯誤的。在這種情況下,數(shù)據(jù)或奇偶校驗碼中的對應(yīng)于所述比特位置的1比特被反轉(zhuǎn),從而可以糾正誤差。
當(dāng)校正子具有非零值時,以及當(dāng)校驗矩陣“H”的具有與校正子的值相等的值的列矢量不存在時,出現(xiàn)不可校正的誤差。更具體地說,出現(xiàn)兩個或更多位的誤差。
在Hsiao類型的代碼中,在代碼的校驗矩陣的每個列中,每個具有值“1”的元素的數(shù)量是奇數(shù)。根據(jù)該屬性,代碼具有下列屬性。即,當(dāng)奇數(shù)位的誤差出現(xiàn)時的校正子中的值“1”的數(shù)量必需是奇數(shù),當(dāng)偶數(shù)位的誤差出現(xiàn)時的校正子中的值“1”的數(shù)量必需是偶數(shù)。
當(dāng)兩位誤差出現(xiàn)時,在Hsiao類型的代碼中的校正子中的值“1”的數(shù)量必需是不為0的偶數(shù)。因此,雙錯可以被必然地檢測到。當(dāng)三位或以上的奇數(shù)位的誤差出現(xiàn)時,在校正子中的值“1”的數(shù)量必需是奇數(shù)。然而,在這種情況下,該校正子不能與單個錯誤的情況下的校正子相區(qū)別。因此,當(dāng)校正子與1位的誤差的校正子相同時,檢測結(jié)果顯示僅有一個誤差位并且進(jìn)行不正確的糾正,否則,誤差被檢測為不可校正的誤差。
當(dāng)4位或以上的偶數(shù)位的誤差出現(xiàn)時,在校正子中的值“1”的數(shù)量必需是偶數(shù)。然而,值“1”的數(shù)量可能是零。當(dāng)數(shù)量是零時,確定未出現(xiàn)誤差,否則,誤差被檢測為不可糾正的誤差。當(dāng)使用普通的SEC-DED碼時,基于至多出現(xiàn)兩個誤差的假設(shè)使用SEC-DED碼。
即使在一般的SEC-DED碼的奇偶校驗碼部分出現(xiàn)誤差,也可以糾正奇偶校驗碼部分。在該實施例中,不使用在糾正奇偶校驗碼部分之后獲得的值,不對奇偶校驗碼部分執(zhí)行糾錯。作為另一個例子,可以糾正奇偶校驗碼部分。
圖8是顯示掩碼值生成電路112的詳細(xì)功能結(jié)構(gòu)的框圖。掩碼值生成電路112生成這種掩碼值,從而對于根據(jù)所獲取的訪問ID生成的掩碼的校正子具有預(yù)先確定的值。
掩碼值生成電路112具有數(shù)據(jù)掩碼生成電路130、訪問ID校正子生成電路132、奇偶校驗碼生成電路134以及XOR電路136。
圖9是顯示數(shù)據(jù)掩碼生成電路130的具體結(jié)構(gòu)的示圖。數(shù)據(jù)掩碼生成電路130使用數(shù)據(jù)掩碼生成電路130希望訪問的存儲器40的地址以及訪問ID作為輸入,并且輸出對應(yīng)于兩個值的64位數(shù)據(jù)的掩碼,即數(shù)據(jù)掩碼。更具體地說,數(shù)據(jù)掩碼生成電路130是如圖9所示的隨機(jī)數(shù)存儲器。隨機(jī)數(shù)存儲器由普通的存儲元件構(gòu)成。
隨機(jī)值被寫入該隨機(jī)數(shù)存儲器。訪問ID以及地址被連接到隨機(jī)數(shù)存儲器的地址終端。通過這種方式,對應(yīng)于訪問ID和地址的隨機(jī)值被從隨機(jī)數(shù)存儲器的數(shù)據(jù)終端輸出,作為數(shù)據(jù)掩碼值。
數(shù)據(jù)掩碼生成電路130最好可以輸出由地址和訪問ID唯一確定的值。其結(jié)構(gòu)不局限于該實施例。數(shù)據(jù)掩碼生成電路130用作寫數(shù)據(jù)掩碼生成器和讀數(shù)據(jù)掩碼生成器。
圖10A是顯示訪問ID校正子生成電路132的示圖。訪問ID校正子生成電路132確定將由所獲取的訪問ID生成的奇偶校驗碼的校正子。更具體地說,如上所述,如圖10A所示構(gòu)成校正子,以使得校正子中的值“1”的數(shù)量統(tǒng)一是奇數(shù),如上所述。
當(dāng)校正子中的值“1”的總數(shù)統(tǒng)一是偶數(shù)時,如圖10B所示構(gòu)成校正子。隨后將描述由訪問ID校正子生成電路132生成的校正子中的值“1”的數(shù)量。
訪問ID校正子生成電路132用作寫校正子生成器和讀校正子生成器,寫校正子生成器生成寫掩碼數(shù)據(jù)(writer mask data)的寫校正子,讀校正子生成器生成讀掩碼數(shù)據(jù)的讀校正子。
奇偶校驗碼生成電路134計算由數(shù)據(jù)掩碼生成電路130生成的數(shù)據(jù)掩碼(data mask)的奇偶校驗碼。XOR電路136輸出由奇偶校驗碼生成電路134生成的奇偶校驗碼和由訪問ID校正子生成電路132生成的訪問ID校正子之間的“XOR”,作為奇偶校驗碼的掩碼,即奇偶校驗碼掩碼。XOR電路136用作寫奇偶校驗碼掩碼生成器和讀奇偶校驗碼掩碼生成器。
通常,任意的數(shù)據(jù)以及根據(jù)該數(shù)據(jù)計算的奇偶校驗碼的校正子變成零。然而,當(dāng)使用通過計算奇偶校驗碼和作為新的奇偶校驗碼的任意值“x”之間的“XOR”而獲得的值來計算校正子時,校正子變?yōu)椤皒”。
這是因為校驗矩陣“H”中的對應(yīng)于奇偶校驗碼的部分是單位矩陣。使用上述特性,生成這種奇偶校驗碼掩碼以便獲得通過訪問ID校正子生成電路132相對于由數(shù)據(jù)掩碼生成電路130生成的數(shù)據(jù)掩碼而生成的訪問ID校正子。
圖11是顯示訪問控制系統(tǒng)1中的,包含在訪問控制處理中的寫處理的流程圖。首先,從訪問ID寄存器110獲取訪問ID(步驟S102)。奇偶校驗碼生成電路100生成奇偶校驗碼并且將該奇偶校驗碼添加至將寫入存儲器40的數(shù)據(jù)(步驟S104)。掩碼值生成電路112生成掩碼值(步驟S106)。更具體地說,掩碼值生成電路112生成數(shù)據(jù)掩碼和奇偶校驗碼掩碼。
然后,第一XOR電路102計算該數(shù)據(jù)、該奇偶校驗碼與由掩碼值生成電路112生成的掩碼之間的“XOR”(步驟S108)。更具體地說,計算從處理器20獲取的數(shù)據(jù)與由掩碼值生成電路112生成的數(shù)據(jù)掩碼之間的“XOR”。此外,計算由奇偶校驗碼生成電路100生成的奇偶校驗碼與由掩碼值生成電路112生成的奇偶校驗碼掩碼之間的“XOR”。由第一XOR電路102獲得的第一運算后數(shù)據(jù)被寫入存儲器40(步驟S110)。然后寫操作結(jié)束。
圖12是顯示寫處理中的數(shù)據(jù)的流程的流程圖。當(dāng)運行中的進(jìn)程將在存儲器40中寫數(shù)據(jù)D時,利用ECC奇偶校驗碼被添加到數(shù)據(jù)D以便形成添加了奇偶校驗碼的數(shù)據(jù)D′。
接下來,添加了奇偶校驗碼的數(shù)據(jù)D′與由掩碼值生成電路112生成的掩碼值“Ka”之間的“XOR”,即D′Ka被寫入存儲器40,其為第一運算后數(shù)據(jù)D″。
這里,將描述將與訪問ID有關(guān)的信息設(shè)置在訪問控制裝置10中的訪問ID設(shè)置處理中的詳細(xì)處理。圖13是顯示在訪問ID設(shè)置處理中使用的進(jìn)程管理表的示圖。進(jìn)程管理表由操作系統(tǒng)(OS)保存。當(dāng)在處理器20上執(zhí)行多個進(jìn)程時,一般由OS管理這些進(jìn)程。這時,使用圖13中顯示的進(jìn)程管理表。
進(jìn)程管理表記錄優(yōu)先級信息、訪問權(quán)信息、程序計數(shù)器、寄存器的保存區(qū)域以及到與進(jìn)程ID相關(guān)聯(lián)的頁表的指針。此外,與進(jìn)程ID相關(guān)聯(lián)地記錄訪問ID信息。由進(jìn)程管理表管理的信息依賴于OS并且不局限于該實施例。
圖14是顯示在訪問ID設(shè)置處理中的詳細(xì)處理的流程圖。更具體地說,處理是當(dāng)OS切換進(jìn)程時由處理器20執(zhí)行的處理。當(dāng)執(zhí)行中的進(jìn)程停止時(步驟S120),到目前為止已經(jīng)執(zhí)行的進(jìn)程的環(huán)境,即寄存器的執(zhí)行狀態(tài)以及程序計數(shù)器的值被保存在進(jìn)程管理表中(步驟S122)。參考進(jìn)程管理表,將待執(zhí)行的進(jìn)程的環(huán)境,即寄存器、程序計數(shù)器的值、頁表等等被設(shè)置在處理器20中(步驟S124)。
此外,接下來待執(zhí)行的進(jìn)程的訪問ID信息被設(shè)置在訪問控制裝置10中(步驟S126)。訪問ID信息包括當(dāng)進(jìn)程訪問時使用的訪問ID。
此后,清除(flush)高速緩存(步驟S128)。因為當(dāng)由先前的進(jìn)程使用的數(shù)據(jù)留存在高速緩存中時,可以在沒有訪問權(quán)限的情況下進(jìn)行訪問,所以要清除高速緩存。起動接下來將執(zhí)行的進(jìn)程的控制(步驟S130)。這里,訪問ID設(shè)置處理結(jié)束。
與在實施例中一樣,由OS清除高速緩存。然而,可以通過另外的方式清除高速緩存。此外,可以在起動接下來將執(zhí)行的進(jìn)程(步驟S130)之前并且在已經(jīng)執(zhí)行的進(jìn)程的環(huán)境被保存(步驟S122)之后的任何時機(jī)清除高速緩存(步驟S128)。作為另外的例子,當(dāng)訪問ID寄存器110的設(shè)置被轉(zhuǎn)換時,訪問控制裝置10中斷處理器20并且可以在中斷處理例程中清除高速緩存。
圖15是用于說明掩碼值生成處理(步驟S106)中的掩碼值生成電路的詳細(xì)處理的流程圖。數(shù)據(jù)掩碼生成電路130基于訪問ID和將訪問的地址生成數(shù)據(jù)掩碼(步驟S140)。訪問ID校正子生成電路132基于訪問ID生成訪問ID校正子(步驟S142)。
接下來,奇偶校驗碼生成電路134生成由數(shù)據(jù)掩碼生成電路130生成的數(shù)據(jù)掩碼的奇偶校驗碼(步驟S144)。XOR電路136計算由奇偶校驗碼生成電路134生成的奇偶校驗碼與由訪問ID校正子生成電路132生成的校正子之間的“XOR”。更具體地說,生成奇偶校驗碼掩碼(步驟S146)。這里,掩碼值生成操作(步驟S106)結(jié)束。數(shù)據(jù)掩碼的生成的時機(jī)可以是生成奇偶校驗碼的時機(jī)之前的任何時機(jī),并且不必是生成訪問ID校正子之前的時機(jī)。
圖16是顯示包含在訪問控制處理中的、從存儲器40讀數(shù)據(jù)的處理的流程圖。首先,從訪問ID寄存器110獲取訪問ID(步驟S102)。然后掩碼值生成電路112生成掩碼值(步驟S106)。掩碼值生成處理(步驟S106)與參考圖14和15說明的掩碼值生成處理(步驟S106)相同。
第二XOR電路114讀取寫入存儲器40的第一運算后數(shù)據(jù)D″(步驟S204)。計算所讀取的第一運算后數(shù)據(jù)D″和由掩碼值生成電路112生成的掩碼值之間的“XOR”(步驟S206)。
此外,校正子計算電路120通過ECC計算校正子(步驟S208)。當(dāng)校正子是“0”時,即當(dāng)未檢測到誤差時(步驟S210是),校正子計算電路120讀出數(shù)據(jù)D(步驟S212)。
當(dāng)校正子不為“0”時,并且當(dāng)校正子中的值“1”的數(shù)量是奇數(shù)時(步驟S210否,步驟S214是),即當(dāng)檢測到一個誤差時,糾錯電路122執(zhí)行糾錯(步驟S216)以讀出校正后的數(shù)據(jù)D(步驟S212)。當(dāng)校正子不為“0”時,并且當(dāng)校正子不是單錯的校正子時(步驟S210否,步驟S214否),即誤差無法修正時,糾錯電路122輸出數(shù)據(jù)“0”代替數(shù)據(jù)D(步驟S218)。通過這種方式,完成數(shù)據(jù)讀數(shù)過程。在實施例中,在步驟S218,假設(shè)數(shù)據(jù)“0”被輸出。然而,作為另一個例子,代替其,可以不輸出數(shù)據(jù)。作為另一個例子,從存儲器40讀取的數(shù)據(jù)可以被直接輸出。
作為另一個例子,當(dāng)出現(xiàn)不可校正的錯誤時,糾錯電路122輸出表示檢測到誤差的誤差檢測信號。基于該信號,糾錯電路122可以通過中斷等通知處理器20出現(xiàn)誤差。
圖17是用于說明當(dāng)寫入存儲器40的數(shù)據(jù)被讀取時執(zhí)行的處理的示圖。當(dāng)運行中的進(jìn)程將從存儲器40讀出數(shù)據(jù)時,依據(jù)D″Kb=D′(KaKb)計算第一運算后數(shù)據(jù)D″(D′Ka,從存儲器讀取)和掩碼“Kb”(根據(jù)在該進(jìn)程期間設(shè)置在訪問ID寄存器110中的訪問ID生成)之間的“XOR”。該值對應(yīng)于第二運算后數(shù)據(jù)。此后,基于通過校正子計算電路120獲得的計算結(jié)果,接受通過ECC進(jìn)行的誤差檢測和糾錯的值被讀出。
當(dāng)在寫操作和讀操作中獲得的掩碼彼此相等時,即當(dāng)Ka=Kb時,可以讀取校正數(shù)據(jù)D。當(dāng)在寫操作和讀操作中獲得的掩碼彼此不同時,即當(dāng)Ka≠Kb時,與值中的“1”的比特的數(shù)量相等的誤差,KaKb存在于從存儲器40讀取的第一運算后數(shù)據(jù)D″中。因此,在這種情況下,糾錯電路122輸出數(shù)據(jù)“0”。
作為另一個例子,當(dāng)在寫操作和讀操作中獲得的掩碼彼此不同時,糾錯電路122可以代替輸出數(shù)據(jù)“0”而不輸出任何數(shù)據(jù)。
如上所述,在根據(jù)該實施例的訪問控制系統(tǒng)1中,當(dāng)數(shù)據(jù)被寫入存儲器40中時,通過計算將寫入的數(shù)據(jù)和它的奇偶校驗碼與請求者固有的掩碼值之間的“XOR”而獲得的數(shù)據(jù)和奇偶校驗碼被寫入存儲器40。當(dāng)請求者從存儲器40讀取數(shù)據(jù)時,產(chǎn)生通過計算從存儲器40讀取的數(shù)據(jù)和奇偶校驗碼與請求者固有的掩碼值之間的“XOR”而獲得的數(shù)據(jù)和奇偶校驗碼。通過對數(shù)據(jù)和奇偶校驗碼執(zhí)行糾錯處理而獲得的數(shù)據(jù)被返回給請求者。
當(dāng)由相同的請求者執(zhí)行到存儲器40的寫操作以及從存儲器40的讀操作時,訪問ID彼此相等,并且掩碼值彼此相等。因此,在寫操作中計算其XOR的掩碼值等于在讀操作中計算其XOR的掩碼值。因此,消除掩碼的影響從而能夠正確地讀取數(shù)據(jù)。
另一方面,在該實施例中,當(dāng)由不同的請求者執(zhí)行到存儲器40的寫以及從存儲器40的讀時,設(shè)置掩碼值以使得由糾錯電路122確定誤差。因此,在寫操作中計算其XOR的掩碼值不同于在讀操作中計算其XOR的掩碼值。因此,可以防止由不同的請求者讀取數(shù)據(jù)。
為了防止來自不同的請求者的未授權(quán)訪問,當(dāng)在寫操作和讀操作中獲得的掩碼值彼此不同時,選擇掩碼值以使得生成表示誤差無法修正的校正子。更具體地說,只需通過計算根據(jù)寫操作中的掩碼值計算的校正子的值與根據(jù)讀操作中獲得的掩碼值計算的校正子的值之間的XOR而獲得的值不為“0”,并且值“1”的數(shù)量是偶數(shù)。
為此,只需根據(jù)掩碼值計算的校正子的值中的“1”的總數(shù)必須被統(tǒng)一地設(shè)置為奇數(shù)或偶數(shù)。數(shù)量被設(shè)置為奇數(shù)或偶數(shù),所以可以選擇圖10A和10B中顯示的訪問ID校正子生成電路132。
當(dāng)如上所述選擇掩碼值時,可以被管理的請求者的數(shù)量等于滿足條件的校正子的數(shù)量。更具體地說,在8位奇偶校驗碼被添加到64位數(shù)據(jù)的結(jié)構(gòu)中,當(dāng)校正子中的“1”數(shù)量被統(tǒng)一地設(shè)置為奇數(shù)時,128個請求者可以彼此區(qū)別。當(dāng)數(shù)量被統(tǒng)一地設(shè)置為偶數(shù)時(包括0),128個請求者可以彼此區(qū)別。
在每個進(jìn)程中掩碼被設(shè)置為具有唯一的值。因此,當(dāng)由預(yù)定的進(jìn)程所寫的數(shù)據(jù)將由另一個進(jìn)程讀取時,在根據(jù)該實施例的訪問控制系統(tǒng)1中不能讀取數(shù)據(jù)。更具體地,可以防止數(shù)據(jù)被另一個進(jìn)程訪問。
訪問控制系統(tǒng)1防止數(shù)據(jù)被上述非法進(jìn)程讀取并且保護(hù)數(shù)據(jù)寫操作中的數(shù)據(jù),以使得數(shù)據(jù)可以被實質(zhì)上允許寫該數(shù)據(jù)的進(jìn)程寫。更具體地說,當(dāng)數(shù)據(jù)將被寫入存儲器40中時,在該數(shù)據(jù)被寫入之前讀出臨時寫入存儲器40的數(shù)據(jù)。控制數(shù)據(jù)以使得數(shù)據(jù)不能被寫在由于掩碼之間的失配而不能對其執(zhí)行讀訪問的地址。通過這種方式,可以在細(xì)分的單元中提供寫訪問的防護(hù)。
此外,基于訪問ID和將訪問的存儲器區(qū)域的地址生成在訪問控制系統(tǒng)1中使用的掩碼值,所述訪問ID用于區(qū)別作為訪問請求者的進(jìn)程。因此,可以對每個請求者并且對每個待訪問的存儲器區(qū)域執(zhí)行訪問控制。
(第二實施例)圖18是顯示根據(jù)第二實施例的訪問控制裝置10的功能結(jié)構(gòu)的框圖。根據(jù)第二實施例的訪問控制裝置10包括訪問ID管理電路140,其代替根據(jù)第一實施例的訪問控制裝置10的訪問ID寄存器110。關(guān)于這一點,根據(jù)第二實施例的訪問控制系統(tǒng)1與根據(jù)第一實施例的訪問控制系統(tǒng)1不同。
圖19是顯示訪問ID管理電路140的詳細(xì)功能結(jié)構(gòu)的框圖。訪問ID管理電路140具有訪問ID表142和訪問ID選擇電路144。
圖20是示意性地顯示訪問ID表142的數(shù)據(jù)結(jié)構(gòu)的示圖。訪問ID表142記錄訪問ID和可以由通過該訪問ID區(qū)別的彼此相關(guān)聯(lián)的請求者訪問的存儲器區(qū)域的起始地址和結(jié)束地址。根據(jù)該實施例的訪問ID表142用作寫訪問ID保存單元和讀訪問ID保存單元。根據(jù)該實施例的訪問ID管理電路140用作寫地址接收器和讀地址接收器。
當(dāng)切換在處理器20上執(zhí)行的進(jìn)程時,處理器20將由所切換的進(jìn)程保存的訪問ID以及與該訪問ID對應(yīng)的存儲器區(qū)域的起始地址和結(jié)束地址的必要的組合寫入訪問ID表142。更具體地說,在訪問ID表142中,每當(dāng)切換進(jìn)程時,記錄對應(yīng)于所切換的進(jìn)程的數(shù)據(jù)。
記錄在訪問ID表142上的對應(yīng)于每個進(jìn)程的數(shù)據(jù)被記錄在圖13中顯示的進(jìn)程管理表的訪問ID信息中。當(dāng)切換進(jìn)程時,即在第一實施例中的參考圖14所說明的步驟S126中,記錄在訪問ID信息中的數(shù)據(jù)被設(shè)置在訪問ID表142中。
預(yù)先在可以從處理器20看到的地址空間的輸入/輸出空間中映射訪問ID表142。通過這種方式,處理器20可以直接將數(shù)據(jù)寫入訪問ID表142。
訪問ID選擇電路144獲取從處理器20到存儲器40的訪問請求。該訪問請求包括將訪問的存儲器區(qū)域的地址。參考訪問ID表142輸出對應(yīng)于存儲器區(qū)域的訪問ID。根據(jù)該實施例的訪問ID選擇電路144用作寫訪問ID指定單元和讀訪問ID指定單元。
圖21是顯示訪問ID管理電路140的具體結(jié)構(gòu)的示圖。如圖21所示,記錄起始地址、結(jié)束地址和訪問ID。對這些數(shù)據(jù)執(zhí)行算術(shù)運算以實現(xiàn)訪問ID表142和訪問ID選擇電路144。
圖22是顯示根據(jù)第二實施例的訪問控制系統(tǒng)1中的訪問ID獲取處理(步驟S102)中的詳細(xì)處理的流程圖。
如上所述,從處理器20獲取地址A(步驟S150)。訪問ID選擇電路144參考訪問ID表142選擇與所設(shè)置的起始地址和結(jié)束地址相關(guān)聯(lián)的訪問ID,以使得地址是起始地址或以上以及結(jié)束地址或以下(步驟S152)。所選擇的訪問ID被輸出到掩碼值生成電路112(步驟S154)。通過這種方式,訪問ID獲取處理(步驟S102)完成。
在根據(jù)第二實施例的訪問控制系統(tǒng)1中,訪問請求者的訪問ID根據(jù)存儲器區(qū)域進(jìn)行轉(zhuǎn)換。因此,可以執(zhí)行對每個存儲器區(qū)域的訪問控制。
當(dāng)由處理器20執(zhí)行的多個進(jìn)程共享存儲器區(qū)域時,可以訪問存儲器區(qū)域的進(jìn)程被頻繁地要求以存儲器區(qū)域為單位進(jìn)行設(shè)置以檢查訪問權(quán)限。根據(jù)第二實施例的訪問控制系統(tǒng)1的訪問控制裝置10可以檢查對應(yīng)于該存儲器區(qū)域的訪問權(quán)限。
在該實施例中,通過下列方式清除高速緩存。即,當(dāng)訪問ID表142被轉(zhuǎn)換時,訪問控制裝置10中斷處理器20,并且在中斷處理例程中執(zhí)行清除。
根據(jù)第二實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第一實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
(第三實施例)以下描述根據(jù)第三實施例的訪問控制系統(tǒng)1。根據(jù)第三實施例的訪問控制系統(tǒng)1與根據(jù)第二實施例的訪問控制系統(tǒng)1一樣包括訪問ID管理電路140。然而,根據(jù)第二和第三實施例的訪問ID管理裝置140在處理中彼此不同。根據(jù)第三實施例的訪問ID管理電路140用作寫ID接收器和讀ID接收器。根據(jù)第三實施例的訪問ID選擇電路144獲取區(qū)別請求者的請求者ID并且基于請求者ID選擇訪問ID。
圖23是示意性地顯示包含在根據(jù)第三實施例的訪問控制系統(tǒng)1中的訪問ID管理電路中的訪問ID表142的數(shù)據(jù)結(jié)構(gòu)的示圖。如圖23所示,訪問ID表142彼此相關(guān)聯(lián)地保存請求者ID和訪問ID。根據(jù)第三實施例的訪問ID表142用作寫訪問ID保存單元和讀訪問ID保存單元。
訪問ID選擇電路144代替地址獲取請求者ID,其區(qū)別訪問請求的請求者。通常,表示輸出請求的具體單元的信號被輸出到可以將多個處理器20彼此連接的處理器總線22。因此,訪問ID選擇電路144基于該信號指定請求者ID。參考訪問ID表142,與所獲取的請求者ID相關(guān)聯(lián)的訪問ID被選擇。根據(jù)該實施例的訪問ID選擇電路144用作寫訪問ID指定單元和讀訪問ID指定單元。
圖24是顯示訪問ID管理電路140的具體結(jié)構(gòu)的示圖。如圖24所示,記錄請求者ID和訪問ID。對這些數(shù)據(jù)執(zhí)行算術(shù)運算以實現(xiàn)訪問ID表142和訪問ID選擇電路144。
圖25是顯示根據(jù)第三實施例的訪問控制系統(tǒng)1中的訪問ID獲取處理(步驟S102)中的詳細(xì)處理的流程圖。
首先,從處理器總線22獲取請求者ID(步驟S160)。訪問ID選擇電路144參考訪問ID表142選擇與所述請求者ID相對應(yīng)的訪問ID(步驟S162)。所選擇的訪問ID被輸出到掩碼值生成電路112(步驟S164)。通過這種方式,訪問ID獲取處理(步驟S102)完成。
如上所述,代替直接從請求者獲取訪問ID,獲取請求者ID使得能夠進(jìn)一步提高安全性。例如,即使多個處理器20和多個輸入/輸出設(shè)備被連接到處理器總線22,也可以檢查這些連接設(shè)備的訪問權(quán)限。
根據(jù)第三實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)以上其它實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
(第四實施例)
以下描述根據(jù)第四實施例的訪問控制系統(tǒng)1。根據(jù)第四實施例的訪問控制系統(tǒng)1既包括根據(jù)第二實施例的訪問ID管理電路140的功能又包括根據(jù)第三實施例的訪問ID管理電路140的功能。更具體地說,基于訪問目的地的存儲器區(qū)域以及訪問請求的請求者ID這兩條信息來確定訪問ID。
圖26是示意性地顯示根據(jù)第四實施例的訪問ID表142的數(shù)據(jù)結(jié)構(gòu)的示圖。訪問ID表142彼此相關(guān)聯(lián)地保存請求者ID、起始地址、結(jié)束地址和訪問ID。訪問ID選擇電路144指定包含在從處理器20獲取的訪問請求中的地址區(qū)域,并且進(jìn)一步從處理器總線22獲取請求者ID。
圖27是顯示訪問ID管理電路140的具體結(jié)構(gòu)的示圖。如圖27所示,預(yù)先記錄起始地址、結(jié)束地址、請求者ID以及訪問ID。對這些數(shù)據(jù)執(zhí)行算術(shù)運算以實現(xiàn)訪問ID表142和訪問ID選擇電路144。
圖28是顯示根據(jù)第四實施例的訪問控制系統(tǒng)1中的訪問ID獲取處理(步驟S102)中的詳細(xì)處理的流程圖。訪問ID選擇電路144從處理器20獲取地址A(步驟S170)。此外,從處理器總線22獲取請求者ID(步驟S172)。訪問ID選擇電路144參考訪問ID表142選擇請求者ID以及與地址A相對應(yīng)的訪問ID(步驟S174)。然后,所選擇的訪問ID被輸出到掩碼值生成電路112(步驟S176)。通過這種方式,訪問ID獲取處理(步驟S102)完成。
根據(jù)第四實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)其它實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
(第五實施例)以下描述根據(jù)第五實施例的訪問控制系統(tǒng)1。根據(jù)第五實施例的訪問控制裝置10中的隨機(jī)掩碼生成處理與根據(jù)其它實施例的訪問控制裝置中的處理不同。
圖29是顯示根據(jù)第五實施例的數(shù)據(jù)掩碼生成電路130的功能結(jié)構(gòu)的框圖。數(shù)據(jù)掩碼生成電路130具有數(shù)據(jù)掩碼生成信息指定電路1301、數(shù)據(jù)掩碼生成信息表1302以及LFSR(線性反饋移位寄存器)延遲計算電路1303a、1303b、1303c。
圖30是示意性地顯示數(shù)據(jù)掩碼生成信息表1302的數(shù)據(jù)結(jié)構(gòu)的示圖。數(shù)據(jù)掩碼生成信息表1302將當(dāng)根據(jù)訪問ID生成數(shù)據(jù)掩碼值時使用的數(shù)據(jù)掩碼生成信息(即各種參數(shù))與訪問ID相關(guān)聯(lián)地進(jìn)行記錄。包含用作輸入到LFSR延遲計算電路1303a、1303b以及1303c中的參數(shù)的特征多項式的系數(shù)、延遲系數(shù)、初始掩碼等等,作為所述參數(shù)。因為根據(jù)第五實施例的LFSR延遲計算電路1303a、1303b以及1303c不使用初始掩碼,所以不必記錄數(shù)據(jù)。
說明返回到圖29。當(dāng)數(shù)據(jù)掩碼生成信息指定電路1301從訪問ID寄存器110或訪問ID管理電路140獲取訪問ID時,數(shù)據(jù)掩碼生成信息指定電路1301參照數(shù)據(jù)掩碼生成信息表1302以指定與所獲取的訪問ID相關(guān)聯(lián)的數(shù)據(jù)掩碼生成信息,即指定各種參數(shù)。
由數(shù)據(jù)掩碼生成信息指定電路1301指定的參數(shù)被分別輸入到LFSR延遲計算電路1303a、1303b以及1303c。此外,將訪問的存儲器40的地址被輸入到LFSR延遲計算電路1303a、1303b以及1303c。LFSR延遲計算電路1303a、1303b以及1303c基于所獲取的數(shù)據(jù)計算數(shù)據(jù)掩碼。
通常,由LFSR使用本原多項式作為特征多項式生成的序列被稱作M序列。普遍知道M序列具有作為偽隨機(jī)數(shù)的良好特性。因此,在實施例中,由對應(yīng)于某一特征多項式的LFSR設(shè)置在起始狀態(tài)中將訪問的存儲器40的地址。通過以對應(yīng)于訪問ID的預(yù)定步驟移位LFSR而獲得的內(nèi)部狀態(tài)被用作數(shù)據(jù)掩碼。
在實施例中,假設(shè)地址的位數(shù)是24。設(shè)置具有三個24階本原多項式作為特征多項式的三個24級(step)LFSR。每個24級LFSR的內(nèi)部狀態(tài)由24位組成。因此,可以從三個LFSR延遲計算電路1303a、1303b以及1303c提取總共72位的掩碼。然而,因為在實施例中需要64位,所以從LFSR延遲計算電路1303a提取22位,從剩余的LFSR延遲計算電路1303b和1303c中的每一個提取21位。
在LFSR延遲計算電路1303a、1303b和1303c的起始狀態(tài)中設(shè)置地址,通過以對應(yīng)于由訪問ID確定的延遲系數(shù)的級來移位LFSR而獲得的內(nèi)部狀態(tài)“Mx”被提取。這些值被相加以作為數(shù)據(jù)掩碼輸出。當(dāng)從三個LFSR延遲計算電路1303a、1303b和1303c提取的值被作為數(shù)據(jù)掩碼輸出時使用的信號線的設(shè)置不被特別地限制。
以下將詳細(xì)地描述LFSR延遲計算電路1303a的處理。LFSR延遲計算電路1303b以及1303c的處理與LFSR延遲計算電路1303a的相同。LFSR的特征多項式由等式7表示f(x)=A0x0+A1x1+A2x2+...+A24x24...(Equation 7)在這種情況下,為了計算在d步驟之后由LFSR輸出的值,通過由f(x)除xd獲得余數(shù)g(x)。值g(x)由等式8表示g(x)=B0x0+B1x1+B2x2+...+B23x23...(Equation 8)計算值g(x)的系數(shù)(B0、B1、...、B23)與LFSR的內(nèi)部狀態(tài)(移位寄存器中的每一步的值的矢量)的乘積的和以獲得內(nèi)部狀態(tài)之后的d步驟后的1位值輸出。值B0、B1、...、B23被稱作延遲系數(shù)。
在數(shù)據(jù)掩碼生成信息表1302中,保存特征多項式的系數(shù)A0、A1、...An-1,延遲系數(shù)B0、B1、...、Bn-1以及作為初始值的內(nèi)部狀態(tài)S0、S1、...、Sn-1。因為特征多項式的最高系數(shù)An不必是1,所以不必預(yù)先保存值A(chǔ)n。
在多個步驟后,LFSR延遲計算電路1303a、1303b和1303c輸出由延遲系數(shù)B0、B1、...、Bn-1根據(jù)初始值確定的值M0、M1、...、Mm-1。在該實施例中,值n是24。值m隨LFSR延遲計算電路1303a、1303b和1303c而改變。更具體地說,因為LFSR延遲計算電路1303b和1303c是從其中提取21位的電路,所以值m是21。因為LFSR延遲計算電路1303a是從其中提取22位的電路,所以值m是22。
圖31是顯示LFSR延遲計算電路1303a的更具體的結(jié)構(gòu)的示圖。LFSR延遲計算電路1303b以及1303c的結(jié)構(gòu)與LFSR延遲計算電路1303a的相同。圖32是包含在LFSR延遲計算電路1303a中的電路200的詳圖。圖33是包含在LFSR延遲計算電路1303a中的電路202的詳圖。
由圖32顯示的電路200構(gòu)成的LFSR延遲計算電路1303a的第一級電路計算在由延遲系數(shù)B確定的延遲之后獲得的位M。更具體地說,計算延遲系數(shù)B0、B1、...、Bn-1與初始值S0、S1、...、Sn-1的乘積的和,并且輸出作為值M0。
由圖33顯示的電路202構(gòu)成的LFSR延遲計算電路1303a的第二級及隨后的電路計算在1階段(step)目的地的延遲之后獲得的位。更具體地說,根據(jù)上一級的延遲系數(shù)和特征多項式計算該級的延遲系數(shù),并且計算延遲系數(shù)和初始值的乘積的和并且輸出。
通過下列方式,根據(jù)上一級的延遲系數(shù)計算該級的延遲系數(shù)。即,當(dāng)g(x)表示d階段的延遲系數(shù)時,通過用f(x)除g(x)·x而獲得的余數(shù)g′(x)表示d+1階段的延遲系數(shù)。通過使用該關(guān)系,上級的延遲系數(shù)被移動1位。當(dāng)延遲系數(shù)的最高次數(shù)的系數(shù)是1時,延遲系數(shù)比f(x)大。因此,當(dāng)用f(x)除延遲系數(shù)時,計算該級的延遲系數(shù)。當(dāng)用f(x)除延遲系數(shù)時,可以計算延遲系數(shù)與f(x)的系數(shù)之間的XOR。
希望通過數(shù)據(jù)掩碼生成信息表1302與每個訪問ID相關(guān)聯(lián)地存儲的延遲系數(shù)具有隨訪問ID而改變的值。同樣,希望對應(yīng)于訪問ID的多個延遲系數(shù)具有不同的值。
在訪問ID生成時,最好通過使用隨機(jī)數(shù)等等來確定與每個訪問ID相關(guān)聯(lián)的延遲系數(shù)。這時,通過隨機(jī)數(shù)等等計算階段數(shù)d,并且最好計算對應(yīng)于延遲階段數(shù)d的延遲系數(shù)。作為另一個例子,可以將隨機(jī)數(shù)的值直接用作延遲系數(shù)。
根據(jù)第五實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)其它實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
以下描述根據(jù)第五實施例的訪問控制系統(tǒng)1的變形。在該實施例中,基于訪問ID確定特征多項式。然而代替其,可以預(yù)先設(shè)置特征多項式。更具體地說,特征多項式可以是固定的。由LFSR延遲計算電路1303a、1303b和1303c使用的特征多項式可以彼此相同或不同。
在這種情況下,在數(shù)據(jù)掩碼生成信息表1302中,可以不記錄特征多項式的系數(shù)。此外,數(shù)據(jù)掩碼生成信息表1302可以被實現(xiàn)為比參照圖31等等說明的LFSR延遲計算電路1303a更簡單的電路。
(第六實施例)
以下描述根據(jù)第六實施例的訪問控制系統(tǒng)1。除數(shù)據(jù)掩碼生成電路130中的處理之外,根據(jù)第六實施例的訪問控制系統(tǒng)1幾乎與根據(jù)第五實施例的訪問控制系統(tǒng)1相同。
圖34是顯示根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路130的功能結(jié)構(gòu)的框圖。根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路130包括數(shù)據(jù)掩碼生成信息指定電路1301、數(shù)據(jù)掩碼生成信息表1302、LFSR延遲計算電路1303a、1303b、1303c、1303d、1303e和1303f,以及XOR電路1304a、1304b和1304c。
根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路130組合兩個LFSR延遲計算電路1303并且使用從相應(yīng)的延遲計算電路1303輸出的值的XOR作為數(shù)據(jù)掩碼。
例如,LFSR延遲計算電路1303a和LFSR延遲計算電路1303b被彼此組合。XOR電路1304a計算從LFSR延遲計算電路1303a輸出的值M與從LFSR延遲計算電路1303b輸出的值M之間的XOR。LFSR延遲計算電路1303c和LFSR延遲計算電路1303d以及XOR電路1304b的組合執(zhí)行與上述相同的計算。LFSR延遲計算電路1303e和LFSR延遲計算電路1303f以及XOR電路1304c的組合執(zhí)行與上述相同的計算。
通過這種方式,根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路130不使用單個LFSR延遲計算電路,而是組合兩個LFSR延遲計算電路以計算從LFSR延遲計算電路的輸出的XOR。因此,可以提高從數(shù)據(jù)掩碼生成電路130輸出的數(shù)據(jù)掩碼的隨機(jī)性。
根據(jù)第六實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第五實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
作為第六實施例的變形,雖然在第六實施例中計算來自兩個LFSR延遲計算電路的輸出值的XOR,但是可以由三個或更多的LFSR延遲計算電路構(gòu)成組合以使用來自這些LFSR延遲計算電路的輸出值的XOR作為數(shù)據(jù)掩碼。此外,兩個LFSR延遲計算電路的組合以及三個LFSR延遲計算電路的組合可以被同時設(shè)置。
(第七實施例)以下描述根據(jù)第七實施例的訪問控制系統(tǒng)1。除在數(shù)據(jù)掩碼生成電路130中執(zhí)行的處理之外,根據(jù)第七實施例的訪問控制系統(tǒng)1幾乎與根據(jù)第五實施例的訪問控制系統(tǒng)1相同。
圖35是顯示根據(jù)第七實施例的數(shù)據(jù)掩碼生成電路130的功能結(jié)構(gòu)的框圖。根據(jù)第七實施例的數(shù)據(jù)掩碼生成電路130還包括零移位電路1305a、1305b和1305c,以及地址分離電路1306a、1306b和1306c。
地址本身不直接輸入到根據(jù)第七實施例的LFSR延遲計算電路1303a、1303b和1303c。分別通過零移位電路1305a、1305b和1305c,以及地址分離電路1306a、1306b和1306c將接受零移位和地址分散的地址輸入到LFSR延遲計算電路1303a、1303b和1303c。
零移位電路1305a、1305b和1305c中的處理彼此相同。地址分離電路1306a、1306b和1306c中的處理彼此相同。因此,以下將描述零移位電路1305a和地址分離電路1306a。
零移位電路1305a將零地址轉(zhuǎn)換為另一個地址。當(dāng)?shù)刂窞榱銜r,LFSR延遲計算電路1303a總是輸出零。因此,當(dāng)?shù)刂窞榱銜r,以下情況是不可取的,即,即使地址已經(jīng)接受LFSR延遲計算電路1303a的處理,仍按原樣輸出地址。因此,零移位電路1305a將零轉(zhuǎn)換為不為零的另一個值。
更具體地說,例如,輸出添加了初始掩碼的輸入地址。初始掩碼被記錄在數(shù)據(jù)掩碼生成信息表1302上,由數(shù)據(jù)掩碼生成信息指定電路1301讀取,并且被發(fā)送到零移位電路1305a、1305b和1305c。
作為另一個例子,可以輸出輸入地址和初始掩碼之間的XOR。
地址分離電路1306a將彼此靠近的地址轉(zhuǎn)換為彼此隔開的地址。如果將輸入的地址是連續(xù)的,那么當(dāng)兩個連續(xù)的地址彼此比較時,具有不同值的比特位置的數(shù)量大概是1。因此,相鄰地址的掩碼值可能具有相關(guān)性,這是不期望的。因此,為了防止相關(guān)性,相鄰的地址被轉(zhuǎn)換為彼此相距更遠(yuǎn)的地址。
圖36是顯示地址分離電路1306a的具體結(jié)構(gòu)的示圖。地址分離電路1306a具有分離掩碼存儲器1307a。在分離掩碼存儲器1307a中,預(yù)先記錄擴(kuò)散方式。當(dāng)?shù)刂繁惠斎氲降刂贩蛛x電路1306a中時,通過使用地址的較低位來訪問分離掩碼存儲器1307a。計算得到的值與地址的較高位的XOR。通過這種方式,即使輸入連續(xù)的地址,地址也被輸出為轉(zhuǎn)換后的,彼此相距更遠(yuǎn)的地址。
根據(jù)第七實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第五實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
以下描述根據(jù)第七實施例的數(shù)據(jù)掩碼生成電路130的第一變形。圖37是顯示根據(jù)第一變形的地址分離電路1306a的具體結(jié)構(gòu)的示圖。根據(jù)第一變形的地址分離電路1306a具有解碼器1308a。解碼器1308a從地址的較低位中選擇高位地址中的一個并且通過XOR轉(zhuǎn)化所選擇的地址的值。在這種情況下,與在根據(jù)第七實施例的地址分離電路1306a中一樣,相鄰的地址可以被轉(zhuǎn)換為彼此相距更遠(yuǎn)的地址。
作為第二變形,在根據(jù)第七實施例的訪問控制系統(tǒng)1中的數(shù)據(jù)掩碼生成電路130具有零移位電路1305a、1305b和1305c,以及地址分離電路1306a、1306b和1306c。然而,數(shù)據(jù)掩碼生成電路130可以僅具有多組零移位電路1305a、1305b和1305c以及地址分離電路1306a、1306b和1306c中的一組。
圖38是僅具有零移位電路1305a、1305b和1305c的數(shù)據(jù)掩碼生成電路130的框圖。圖39是僅具有地址分離電路1306a、1306b和1306c的數(shù)據(jù)掩碼生成電路130的框圖。
圖40是顯示根據(jù)第三變形的數(shù)據(jù)掩碼生成電路130的框圖。通過將根據(jù)第七實施例的數(shù)據(jù)掩碼生成電路130應(yīng)用到根據(jù)第六實施例的數(shù)據(jù)掩碼生成電路130來獲得根據(jù)該變形的數(shù)據(jù)掩碼生成電路130。零移位電路1305和地址分離電路1306可以被設(shè)置在成對使用的LFSR延遲計算電路1303中的每一個中。
在這種情況下,可以僅設(shè)置零移位電路1305。作為另一個例子,數(shù)據(jù)掩碼生成電路130可以僅具有地址分離電路1306。
圖41是顯示根據(jù)第四變形的數(shù)據(jù)掩碼生成電路的框圖。與圖40中顯示的數(shù)據(jù)掩碼生成電路130的結(jié)構(gòu)中相同,圖41中顯示的數(shù)據(jù)掩碼生成電路130成對地使用兩個LFSR延遲計算電路1303。零移位電路1305被設(shè)置在成對的兩個LFSR延遲計算電路1303中的一個中,地址分離電路1306被設(shè)置在另一個中。通過這種方式,零移位電路1305和地址分離電路1306的存在/缺少可以根據(jù)LFSR延遲計算電路1303而改變。
圖42是顯示根據(jù)第五變形的數(shù)據(jù)掩碼生成電路130的框圖。與在圖40中顯示的數(shù)據(jù)掩碼生成電路130的結(jié)構(gòu)中相同,數(shù)據(jù)掩碼生成電路130成對地使用兩個LFSR延遲計算電路1303。零移位電路1305和地址分離電路1306被設(shè)置在成對的兩個LFSR延遲計算電路1303中的一個中,僅僅地址分離電路1306被設(shè)置在另一個中。零移位電路和地址分離電路的組合不局限于上述情況,可以使用各種組合。
(第八實施例)以下描述根據(jù)第八實施例的訪問控制系統(tǒng)1。圖43是顯示根據(jù)第八實施例的訪問控制裝置10的功能結(jié)構(gòu)的框圖。根據(jù)第八實施例的訪問控制裝置10還包括地址轉(zhuǎn)換設(shè)備150。關(guān)于這一點,訪問控制裝置10與根據(jù)其它實施例的訪問控制裝置10不同。
地址轉(zhuǎn)換設(shè)備150轉(zhuǎn)換從處理器20獲取的地址。掩碼值生成電路112獲取通過地址轉(zhuǎn)換設(shè)備150轉(zhuǎn)換后的地址。掩碼值生成電路112基于該地址生成掩碼值。
通過這種方式,在根據(jù)第八實施例的訪問控制裝置10中,掩碼值生成電路112基于在地址轉(zhuǎn)換之后獲得的地址生成掩碼值。因此,與基于從處理器20獲取的地址生成掩碼值的情況相比,可以生成與從處理器20獲取的地址相關(guān)性較小的掩碼值。
圖44是顯示地址轉(zhuǎn)換設(shè)備150的具體結(jié)構(gòu)的框圖。地址轉(zhuǎn)換設(shè)備150具有地址轉(zhuǎn)換存儲器151。在地址轉(zhuǎn)換存儲器151中,記錄顯示地址和轉(zhuǎn)換后的地址之間的對應(yīng)關(guān)系的對應(yīng)關(guān)系表。輸入地址的低位被轉(zhuǎn)換并輸出。
最好根據(jù)訪問ID轉(zhuǎn)換記錄在地址轉(zhuǎn)換存儲器151中的對應(yīng)關(guān)系表。訪問ID的對應(yīng)關(guān)系表被保存在掩碼值生成電路112中。更具體地說,對應(yīng)關(guān)系表被保存在數(shù)據(jù)掩碼生成信息表1302中。在訪問ID的切換中,對應(yīng)關(guān)系表被寫入地址轉(zhuǎn)換存儲器151。
根據(jù)第八實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)其它實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
圖45是顯示根據(jù)第八實施例的第一變形的地址轉(zhuǎn)換設(shè)備150的結(jié)構(gòu)的示圖。根據(jù)第一變形的地址轉(zhuǎn)換設(shè)備150計算地址的中間位和地址的低位之間的XOR。根據(jù)第一變形的地址轉(zhuǎn)換設(shè)備150輸出如上所述轉(zhuǎn)換的地址。通過這種方式,通過地址轉(zhuǎn)換存儲器獲得的低位的轉(zhuǎn)化模式可以在數(shù)量上增大。
圖46是顯示根據(jù)第八實施例的第二變形的地址轉(zhuǎn)換設(shè)備150的結(jié)構(gòu)的示圖。通過這種方式,與圖45顯示的情況相比,可以計算地址的高位和地址的低位之間的XOR。
圖47是顯示根據(jù)第八實施例的第三變形的地址轉(zhuǎn)換設(shè)備150的結(jié)構(gòu)的示圖。通過這種方式,可以計算地址的中間位和地址的低位之間的XOR,并且可以計算所述計算結(jié)果和地址的高位之間的XOR。
根據(jù)第一至第八實施例的訪問控制系統(tǒng)1如上所述。然而,以實施例為特征的訪問控制裝置10可以被用于下列其它系統(tǒng)。
圖48是顯示根據(jù)第一變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。與在根據(jù)上述實施例的訪問控制系統(tǒng)1中一樣,根據(jù)第一變形的訪問控制系統(tǒng)1包括訪問控制裝置10。
在根據(jù)第一變形的訪問控制系統(tǒng)1中,處理器20將與訪問權(quán)限有關(guān)的信息設(shè)置在訪問控制裝置10中。因此,訪問控制系統(tǒng)1還包括專用線24。
通過所述專用線輸入/輸出與訪問權(quán)限有關(guān)的信息,以使得能夠防止未授權(quán)訪問。
圖49是顯示根據(jù)第二變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。根據(jù)第二變形的訪問控制系統(tǒng)1包括多個處理器20a和20b。在這種情況下,處理器20a和20b可以作為對存儲器40的訪問的請求者。訪問控制裝置10可以以處理器為單位控制到存儲器40的訪問。更具體地說,訪問ID被相應(yīng)地分配給處理器。此外,訪問ID被分配給處理器的待訪問的存儲器區(qū)域。
圖50是顯示根據(jù)第三變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。在根據(jù)第三變形的訪問控制系統(tǒng)1中,存儲器控制器30被嵌入處理器20。處理器20通過訪問控制系統(tǒng)1連接到存儲器40。
圖51是顯示根據(jù)第四變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。在根據(jù)第四變形的訪問控制系統(tǒng)1中,存儲器控制器30和訪問控制裝置10被嵌入處理器20。處理器20直接連接到存儲器40。
圖52是顯示根據(jù)第五變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。根據(jù)第五變形的訪問控制系統(tǒng)1包括處理器20、存儲器40、橋32、外圍設(shè)備60a、60b和60c。
橋32連接到處理器總線22并且具有存儲器控制器30和訪問控制裝置10。例如,當(dāng)橋32包含連接到外圍總線34的外圍設(shè)備的控制器時,如上所述,訪問控制裝置10可以被嵌入橋32。此外,作為另一個例子,訪問控制裝置10可以被設(shè)置在橋32和存儲器40之間。
圖53是顯示根據(jù)第六變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。根據(jù)第六變形的訪問控制系統(tǒng)1被形成為系統(tǒng)LSI(大規(guī)模集成電路)。如圖53所示,訪問控制裝置10與通過高速內(nèi)部總線76連接到處理器20的存儲器控制器30一同設(shè)置在系統(tǒng)LSI中。
圖54是顯示根據(jù)第七變形的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。與根據(jù)第六變形的訪問控制系統(tǒng)1一樣,根據(jù)第七變形的訪問控制系統(tǒng)1形成為系統(tǒng)LSI。此外,在根據(jù)第七變形的訪問控制系統(tǒng)1中,用于設(shè)置與訪問權(quán)限有關(guān)的信息的專用線78被設(shè)置在處理器20和訪問控制裝置10之間。通過這種方式,處理器20可以直接通過高速內(nèi)部總線76訪問訪問控制裝置10。
作為另一個例子,存儲器控制器和訪問控制電路可以被作為集成電路設(shè)置。
(第九實施例)以下描述根據(jù)第九實施例的訪問控制系統(tǒng)1。根據(jù)第九實施例的訪問控制系統(tǒng)1執(zhí)行對高速緩沖存儲器的訪問控制。圖55是顯示根據(jù)第九實施例的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。訪問控制系統(tǒng)1包括多個處理器20a至20c、視頻控制器21、存儲器40以及具有高速緩沖存儲器的訪問控制裝置50。
訪問控制裝置50連接到處理器總線22和存儲器總線42,以控制從通過處理器總線22連接的多個處理器20a至20c以及視頻控制器21到高速緩沖存儲器的訪問。此外,當(dāng)需要時,訪問控制裝置50代替處理器20a等等將數(shù)據(jù)寫入存儲器40或從存儲器40讀取數(shù)據(jù)。更具體地說,訪問控制裝置50還具有根據(jù)其它實施例的存儲器控制器30的功能。
與在根據(jù)第九實施例的訪問控制系統(tǒng)1中一樣,當(dāng)設(shè)置多個處理器和例如視頻控制器21這樣的輸入/輸出設(shè)備時,由處理器和輸入/輸出設(shè)備共享的高速緩沖存儲器被用于提高存儲器訪問的速度。
圖56是顯示訪問控制裝置50的詳細(xì)功能結(jié)構(gòu)的框圖。訪問控制裝置50包括處理器端高速緩存控制電路52、高速緩沖存儲器54和存儲器端高速緩存控制電路56。處理器端高速緩存控制電路52基于來自處理器的指示將數(shù)據(jù)寫入高速緩沖存儲器54或從高速緩沖存儲器54讀出數(shù)據(jù)。高速緩沖存儲器54臨時地將數(shù)據(jù)、存儲器地址等等相關(guān)聯(lián)地保存。
存儲器端高速緩存控制電路56基于來自處理器端高速緩存控制電路52的指示將數(shù)據(jù)寫入存儲器40以及從存儲器40讀出數(shù)據(jù)。
圖57是顯示處理器端高速緩存控制電路52的詳細(xì)功能結(jié)構(gòu)的框圖。處理器端高速緩存控制電路52具有訪問ID管理電路140、訪問ID檢查電路522以及序列控制器524。
訪問ID管理電路140的功能結(jié)構(gòu)與參照第二實施例中的圖19說明的訪問ID管理電路140的功能結(jié)構(gòu)相同。訪問ID管理電路140基于地址指定訪問ID。訪問ID檢查電路522將由訪問ID管理電路140指定的訪問ID與存儲在高速緩沖存儲器54中的訪問ID進(jìn)行比較,以檢查訪問ID是否彼此相同。序列控制器524控制處理器端高速緩存控制電路52的整體操作。
圖58是顯示高速緩沖存儲器54的詳細(xì)功能結(jié)構(gòu)的框圖。高速緩沖存儲器54具有存儲過去訪問過的數(shù)據(jù)的數(shù)據(jù)區(qū)域544,存儲存儲器40中的數(shù)據(jù)的地址的標(biāo)記存儲區(qū)域542,以及存儲可以訪問數(shù)據(jù)的訪問ID的訪問ID存儲區(qū)域546。在這些區(qū)域中,地址、數(shù)據(jù)以及訪問ID被彼此相關(guān)聯(lián)地存儲。
當(dāng)請求存儲在高速緩沖存儲器54中的數(shù)據(jù)以及對相同地址的訪問時,存儲在數(shù)據(jù)區(qū)域544中的與地址相關(guān)聯(lián)的數(shù)據(jù)被返回,以減少由到存儲器40的訪問所引起的延遲。雖然高速緩沖存儲器54可以使用各種系統(tǒng),例如直接映射類型或組相聯(lián)類型,但是系統(tǒng)不專門指定為這些類型。可以使用任何系統(tǒng)。
圖59是顯示存儲器端高速緩存控制電路56的詳細(xì)功能結(jié)構(gòu)的框圖。存儲器端高速緩存控制電路56包括奇偶校驗碼生成電路100、第一XOR電路102、掩碼值生成電路112、第二XOR電路114、校正子計算電路120、糾錯電路122以及序列控制器562。
序列控制器562控制存儲器端高速緩存控制電路56的整體操作。奇偶校驗碼生成電路100、第一XOR電路102、掩碼值生成電路112、第二XOR電路114、校正子計算電路120、糾錯電路122的功能結(jié)構(gòu)與根據(jù)第一實施例的奇偶校驗碼生成電路100、第一XOR電路102、掩碼值生成電路112、第二XOR電路114、校正子計算電路120、糾錯電路122的功能結(jié)構(gòu)相同。
在根據(jù)第九實施例的存儲器端高速緩存控制電路56中,從存儲器40讀取的數(shù)據(jù)連同對應(yīng)的訪問ID被存儲在高速緩沖存儲器54中。當(dāng)數(shù)據(jù)被寫入存儲器40時,從高速緩沖存儲器54獲取數(shù)據(jù)。
圖60是顯示根據(jù)第九實施例的訪問控制系統(tǒng)1中的訪問控制處理中包含的寫處理的流程圖。首先,處理器端高速緩存控制電路52的訪問ID管理電路140檢查處理器20是否具有寫權(quán)限(步驟S300)。更具體地說,從處理器20獲取訪問ID以及寫目的地的地址。在訪問ID表142中,確定所述獲取的ID以及地址彼此相關(guān)聯(lián)。
當(dāng)訪問ID以及地址彼此相關(guān)聯(lián)時,確定處理器20具有寫權(quán)限。當(dāng)處理器20沒有寫權(quán)限時(步驟S300否),處理器20被通知出現(xiàn)誤差(步驟S304),并且結(jié)束處理。
另一方面,當(dāng)處理器20具有寫權(quán)限時(步驟S300是),從處理器20獲取的數(shù)據(jù)以及訪問ID被彼此相關(guān)聯(lián)地寫入高速緩沖存儲器54(步驟S302)。
接下來,序列控制器524將數(shù)據(jù)寫指示輸出給存儲器端高速緩存控制電路56(步驟S310)。更具體地說,用控制信號發(fā)出指示。當(dāng)存儲器端高速緩存控制電路56的序列控制器562接收到寫指示時,序列控制器562指示高速緩沖存儲器54讀取數(shù)據(jù)和訪問ID并且從高速緩沖存儲器54獲取所述數(shù)據(jù)以及訪問ID(步驟S320)。
然后,序列控制器524將存儲目的地的地址以及訪問ID給予掩碼值生成電路112,以產(chǎn)生掩碼值(步驟S322)。掩碼值生成電路112根據(jù)指示基于地址和訪問ID生成掩碼值。序列控制器562指示存儲器40寫數(shù)據(jù)(步驟S324)。根據(jù)指示,通過第一XOR電路102、第二XOR電路114等等的處理,奇偶校驗碼被添加。通過計算數(shù)據(jù)和掩碼值之間的XOR而獲得的第一運算后數(shù)據(jù)被寫在由處理器20指定的地址。
當(dāng)完成在存儲器40中寫數(shù)據(jù)時,序列控制器562通知處理器端高速緩存控制電路52數(shù)據(jù)的寫被完成(步驟S326)。這里,寫處理結(jié)束。
當(dāng)使用直寫(write through)系統(tǒng)時,希望在完成從高速緩沖存儲器54到存儲器40的寫之后將控制給予處理器20。當(dāng)使用回寫(write back)系統(tǒng)時,希望在完成從高速緩沖存儲器54到存儲器40的寫之前將控制給予處理器20。
作為另一個例子,訪問ID表142中的允許寫數(shù)據(jù)的訪問ID和允許讀數(shù)據(jù)的訪問ID可以與地址相關(guān)聯(lián)。通過這種方式,系統(tǒng)可以應(yīng)對讀和寫被分別進(jìn)行限制的情況。
圖61是顯示根據(jù)第九實施例的訪問控制系統(tǒng)1中的訪問控制處理中包含的讀處理的流程圖。當(dāng)處理器端高速緩存控制電路52的序列控制器524從處理器20獲取到數(shù)據(jù)讀請求時,它檢查對應(yīng)的數(shù)據(jù)是否存儲在高速緩沖存儲器54中(步驟S400)。當(dāng)數(shù)據(jù)存儲在高速緩沖存儲器54中時(步驟400是),訪問ID檢查電路522檢查從處理器20獲取的訪問ID是否正確,即,處理器20是否具有訪問權(quán)限(步驟S402)。
當(dāng)訪問ID正確時(步驟S402是),從高速緩沖存儲器54讀取對應(yīng)的數(shù)據(jù)并且被給予處理器20(步驟S404)。另一方面,當(dāng)訪問ID不正確時(步驟S402否),訪問ID檢查電路522通知處理器20出現(xiàn)誤差(步驟S406)。
通過將高速緩沖存儲器54中的與對應(yīng)的數(shù)據(jù)相關(guān)聯(lián)的訪問ID與從處理器20獲取的訪問ID進(jìn)行比較來判斷訪問ID是否正確。當(dāng)訪問ID彼此相等時,確定訪問ID是正確的。
另一方面,沒有數(shù)據(jù)存儲在處理器端高速緩存控制電路52中(步驟S400否),存儲器端高速緩存控制電路56被指示讀取數(shù)據(jù)(步驟S410)。當(dāng)存儲器端高速緩存控制電路56的序列控制器562接收到數(shù)據(jù)讀取指示時,地址和訪問ID被給予掩碼值生成電路112,以指示掩碼值生成電路112生成掩碼值(步驟S420)。根據(jù)所述指示,掩碼值生成電路112生成掩碼值。
存儲器40被指示讀取數(shù)據(jù)(步驟S422)。根據(jù)指示,從存儲器40讀取出數(shù)據(jù)。通過第一XOR電路102、第二XOR電路114等等中的處理,這里讀取的第一運算后數(shù)據(jù)被恢復(fù)為原始狀態(tài)。
如上所述,根據(jù)根據(jù)第九實施例的訪問控制系統(tǒng)1,臨時訪問的數(shù)據(jù)存儲在高速緩沖存儲器54中。因此,隨后,當(dāng)讀取數(shù)據(jù)時,可以從高速緩沖存儲器54讀取數(shù)據(jù),從而可以提高處理速度。此外,當(dāng)從高速緩沖存儲器54讀取數(shù)據(jù)時,僅檢查訪問ID是否彼此相等。因此,比起從存儲器40讀取數(shù)據(jù)的速度,可以使處理速度更快。
根據(jù)第九實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第一實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。與通過具有根據(jù)第九實施例的訪問控制系統(tǒng)1的特征的高速緩沖存儲器進(jìn)行的數(shù)據(jù)的讀/寫有關(guān)的處理還可以被用于其它的實施例。
(第十實施例)圖62是顯示根據(jù)第十實施例的訪問控制裝置10的功能結(jié)構(gòu)的框圖。除根據(jù)第二實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)第十實施例的訪問控制裝置10還包括地址轉(zhuǎn)換設(shè)備160。訪問控制裝置10轉(zhuǎn)換從處理器20獲取的地址以執(zhí)行到轉(zhuǎn)換后的地址的數(shù)據(jù)訪問。地址轉(zhuǎn)換設(shè)備160基于由掩碼值生成電路112保存的地址轉(zhuǎn)換信息執(zhí)行地址轉(zhuǎn)換。
圖63是顯示根據(jù)第十實施例的掩碼值生成電路112的詳細(xì)功能結(jié)構(gòu)的框圖。除數(shù)據(jù)掩碼生成電路130、訪問ID校正子生成電路132和奇偶校驗碼生成電路134之外,掩碼值生成電路112還包括地址信息表和地址信息指定單元139。地址信息指定單元139參照地址轉(zhuǎn)換信息表138,以基于訪問ID指定地址轉(zhuǎn)換信息。
圖64是示意性地顯示地址轉(zhuǎn)換信息表138的數(shù)據(jù)結(jié)構(gòu)的示圖。地址轉(zhuǎn)換信息表138將多個訪問ID與多條地址轉(zhuǎn)換信息互相關(guān)聯(lián)。通過這種方式,多條地址轉(zhuǎn)換信息被如愿地根據(jù)訪問ID而轉(zhuǎn)換。
每一次訪問ID被切換時,地址信息指定單元139將在地址轉(zhuǎn)換信息表138中與所切換的訪問ID相關(guān)聯(lián)的地址轉(zhuǎn)換信息給予地址轉(zhuǎn)換設(shè)備160。
在由地址轉(zhuǎn)換設(shè)備160執(zhí)行的地址轉(zhuǎn)換中,需要預(yù)定的地址并不總是轉(zhuǎn)換到相同的地址,并且多個地址不被轉(zhuǎn)換到相同的地址??梢允褂脻M足這一條件的任何轉(zhuǎn)換。轉(zhuǎn)換方法不局限于實施例的方法。
圖65是用于說明存儲器地址的示圖。通常,在存儲器地址中,確定需要訪問對應(yīng)于高速緩存線的尺寸的范圍(s)的比特的數(shù)量,對應(yīng)于由存儲元件保存的頁尺寸的范圍(r+s),以及對應(yīng)于由頁表管理的頁尺寸的范圍(q+r+s)。
例如,當(dāng)存儲器的一個字具有64比特并且高速緩存線具有256比特時,對應(yīng)于高速緩存線的尺寸的范圍(s)具有兩個比特。對應(yīng)于由存儲器元件保存的頁尺寸的范圍(r+s),即,其中可以執(zhí)行突發(fā)傳輸?shù)姆秶哂欣?28個字中的7比特。因此,在地址轉(zhuǎn)換中,執(zhí)行根據(jù)關(guān)系的轉(zhuǎn)換,以使得能夠防止存儲器訪問速度下降。
例如,最好將屬于相同高速緩存線的存儲器字轉(zhuǎn)換到連續(xù)的地址,以使得可以高速地通過突發(fā)傳輸來執(zhí)行讀/寫。這時,當(dāng)?shù)刂愤B續(xù)時,可以打亂地址。
最好將由存儲器元件保存的一頁中的字轉(zhuǎn)換到相同頁范圍中的連續(xù)地址,以使得可以通過突發(fā)傳輸高速地讀或?qū)懽?。同樣在這種情況下,當(dāng)?shù)刂愤B續(xù)時,可以打亂地址。
地址轉(zhuǎn)換設(shè)備160執(zhí)行滿足上述條件的地址轉(zhuǎn)換。圖66A和66B是用于說明由地址轉(zhuǎn)換設(shè)備160執(zhí)行的地址轉(zhuǎn)換處理的示圖。圖66A和66B顯示存儲器地址的低7位。地址轉(zhuǎn)換設(shè)備160僅轉(zhuǎn)換低7位。在這種情況下,假設(shè)一個高速緩存線由四個字構(gòu)成。
如圖66A和66B所示,由四個字構(gòu)成組合,在組合中隨機(jī)地轉(zhuǎn)換字。然而,組合被轉(zhuǎn)換為連續(xù)的存儲器地址。因此,雖然在一個高速緩存線中隨機(jī)地設(shè)置地址,但是字并不被轉(zhuǎn)換為跨越不同的高速緩存線而設(shè)置的地址。因此,可以防止傳輸效率惡化。
圖67是顯示地址轉(zhuǎn)換設(shè)備160的具體結(jié)構(gòu)的示圖。地址轉(zhuǎn)換信息存儲在由存儲器構(gòu)成的地址轉(zhuǎn)換表162中。圖68是顯示實現(xiàn)圖66A和66B中顯示的地址轉(zhuǎn)換的地址轉(zhuǎn)換表的示圖。
根據(jù)地址的低7位中的高5位來檢查地址轉(zhuǎn)換表162,所獲得的13位信息的高5位被定義為地址的低7位中的高5位。此外,執(zhí)行轉(zhuǎn)換以使得根據(jù)所述地址的低2位從剩余的8位中選擇的2位被定義為地址的低2位。
圖69是顯示由根據(jù)第十實施例的訪問控制系統(tǒng)1執(zhí)行的寫處理的流程圖。在根據(jù)第十實施例的訪問控制系統(tǒng)1中,在計算XOR之后(步驟S108),執(zhí)行上述地址轉(zhuǎn)換處理(步驟S109)。數(shù)據(jù)被寫在轉(zhuǎn)換后的存儲器地址(步驟S110)。
圖70是顯示由根據(jù)第十實施例的訪問控制系統(tǒng)1執(zhí)行的讀處理的流程圖。在生成掩碼值之后(步驟S106),執(zhí)行地址轉(zhuǎn)換處理(步驟S203)。然后從在地址轉(zhuǎn)換之后獲得的存儲器地址讀取第一運算后數(shù)據(jù)(步驟S204)。
根據(jù)第十實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第一實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
圖71是顯示根據(jù)第十實施例的第一變形的地址轉(zhuǎn)換設(shè)備160的具體結(jié)構(gòu)的示圖。在該變形中,通過XOR,高位地址被疊加在用于檢查地址轉(zhuǎn)換表162的低位地址上,以增大轉(zhuǎn)換變化的數(shù)量。通過這種方式,可以防止地址轉(zhuǎn)換的模式被容易地猜測到。
作為第十實施例的第二變形,雖然地址轉(zhuǎn)換信息存儲在第十實施例的數(shù)據(jù)掩碼生成電路130中,但是,地址轉(zhuǎn)換信息的存儲目的地不局限于數(shù)據(jù)掩碼生成電路130。例如,當(dāng)根據(jù)第十實施例的地址轉(zhuǎn)換處理被用于根據(jù)第五實施例的訪問控制系統(tǒng)1時,地址轉(zhuǎn)換信息可以被記錄在數(shù)據(jù)掩碼生成信息表1302中。
圖72是示意性地顯示根據(jù)第二變形的數(shù)據(jù)掩碼生成信息表1302的數(shù)據(jù)結(jié)構(gòu)的示圖。通過這種方式,在數(shù)據(jù)掩碼生成信息表1302中,與訪問ID相關(guān)聯(lián)地記錄地址轉(zhuǎn)換信息被。在這種情況下,參照數(shù)據(jù)掩碼生成信息表1302,可以基于訪問ID指定地址轉(zhuǎn)換信息。
(第十一實施例)圖73是顯示根據(jù)第十一實施例的訪問控制裝置10的功能結(jié)構(gòu)的框圖。在根據(jù)第十一實施例的訪問控制裝置10中,除根據(jù)第十實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,還設(shè)置了突發(fā)傳輸控制器164和重排緩沖區(qū)166。
當(dāng)以存儲器40上的地址為順序執(zhí)行突發(fā)傳輸時,突發(fā)傳輸控制器164管理處理。重排緩沖區(qū)166是這時使用的緩沖區(qū)。當(dāng)通過地址轉(zhuǎn)換設(shè)備160轉(zhuǎn)換高速緩存線中的字的順序時,按照轉(zhuǎn)換后的順序訪問所述字,不能使用存儲器元件的突發(fā)傳輸功能。因此,不能提高傳輸效率。因此,突發(fā)傳輸控制器164通過突發(fā)傳輸,按照存儲器40上的地址的順序訪問所述字,并且通過使用重排緩沖區(qū)166重排存儲器40上的地址的順序以及在由地址轉(zhuǎn)換設(shè)備160執(zhí)行的轉(zhuǎn)換之后獲得的順序。
圖74是顯示重排緩沖區(qū)166的具體結(jié)構(gòu)的示圖。在該例子中,一個高速緩存線具有256位,存儲器的一個字具有64位,并且一個高速緩存線由四個字構(gòu)成。
如圖74所示,重排緩沖區(qū)166包括用于一個高速緩存線的四個字的寄存器0至3。響應(yīng)于來自所述突發(fā)傳輸控制器164的指示,來自處理器20或存儲器40的數(shù)據(jù)被寫入四個寄存器中的所指示的寄存器。此外,從四個寄存器中的所指示的寄存器讀取數(shù)據(jù)并且將其發(fā)送到處理器20或存儲器40。
這時,通過圖67顯示的地址轉(zhuǎn)換設(shè)備160將地址“1010000”轉(zhuǎn)換為地址“0110011”。類似的,地址“1010001”被轉(zhuǎn)換為地址“0110010”,地址“1010010”被轉(zhuǎn)換為地址“0110000”,地址“1010011”被轉(zhuǎn)換為“0110001”。
另一方面,當(dāng)突發(fā)傳輸?shù)闹甘敬嬖跁r(步驟S500是),從所述處理器20發(fā)送的數(shù)據(jù),即,將被寫入存儲器40的數(shù)據(jù)被臨時地寫入重排緩沖區(qū)166(S502)。然后從掩碼值生成電路112中的地址信息表138獲得地址轉(zhuǎn)換信息(步驟S504)。根據(jù)基于地址轉(zhuǎn)換信息轉(zhuǎn)換的存儲器地址的順序,通過突發(fā)傳輸將數(shù)據(jù)寫入存儲器40(步驟S506)。然后處理結(jié)束。
圖76是用于更具體地說明參考圖75所說明的寫處理的示圖。圖76顯示一種情況,其中,處理器20對從低7位地址是“1010000”的字開始的四個字A、B、C和D進(jìn)行寫。
這時,通過圖67顯示的地址轉(zhuǎn)換設(shè)備160將地址“1010000”轉(zhuǎn)換為地址“0110011”。類似的,地址“1010001”被轉(zhuǎn)換為地址“0110010”,地址“1010010”被轉(zhuǎn)換為地址“0110000”,地址“1010011”被轉(zhuǎn)換為“0110001”。
當(dāng)數(shù)據(jù)將被按照轉(zhuǎn)換后的存儲器地址的順序?qū)憰r,不能使用突發(fā)傳輸。突發(fā)傳輸控制器164臨時地將數(shù)據(jù)存儲在重排緩沖區(qū)166中?;诘刂忿D(zhuǎn)換信息,重排數(shù)據(jù)以獲得連續(xù)的地址。在圖76所示的例子中,數(shù)據(jù)C被寫在地址“0110000”,數(shù)據(jù)D被寫在地址“0110001”,數(shù)據(jù)B被寫在地址“0110010”,并且數(shù)據(jù)A被寫在地址“0110011”。通過突發(fā)傳輸,按照C、D、B、A的順序從地址“0110000”開始寫數(shù)據(jù)。
圖77是顯示通過突發(fā)傳輸控制器164從存儲器40讀數(shù)據(jù)的處理的流程圖。當(dāng)未指示突發(fā)傳輸時(步驟S520否),執(zhí)行常規(guī)的讀取處理(步驟S530)。在這種情況下,常規(guī)的讀取處理是第十實施例中描述的讀取處理。所述處理順序地讀取由地址轉(zhuǎn)換設(shè)備160獲得的存儲器地址的數(shù)據(jù)。
另一方面,當(dāng)指示突發(fā)傳輸時(步驟S520是),從掩碼值生成電路112中的地址信息表138獲得地址轉(zhuǎn)換信息(步驟522)。根據(jù)基于地址轉(zhuǎn)換信息轉(zhuǎn)換的存儲器地址的順序,從起始地址開始的4個字被從存儲器40中讀取,并且所述字被臨時地寫入重排緩沖區(qū)166(步驟S524)。通過突發(fā)傳輸,根據(jù)基于地址轉(zhuǎn)換信息轉(zhuǎn)換后的存儲器地址的順序,重排緩沖區(qū)166中的數(shù)據(jù)被發(fā)送回處理器20(步驟S526)。這里,操作結(jié)束。
圖78是用于更具體地說明參考圖77所說明的讀處理的示圖。圖78顯示一種情況,其中,處理器從低7位地址是“1010000”的字開始讀取4個字。
這時,通過圖67顯示的地址轉(zhuǎn)換設(shè)備160將地址“1010000”轉(zhuǎn)換為地址“0110011”。類似地,地址“1010001”被轉(zhuǎn)換為地址“0110010”,地址“1010010”被轉(zhuǎn)換為地址“0110000”,地址“1010011”被轉(zhuǎn)換為“0110001”。
突發(fā)傳輸控制器164通過突發(fā)傳輸從表示轉(zhuǎn)換后的地址中的開始處的地址“0110000”開始讀取4個字,并且臨時地將數(shù)據(jù)存儲在重排緩沖區(qū)166中。這時讀取的數(shù)據(jù)被順序地定義為A、B、C和D。
接下來,突發(fā)傳輸控制器164基于地址轉(zhuǎn)換信息,按照原來的地址的順序重排數(shù)據(jù)。在圖78所示的例子中,數(shù)據(jù)D被讀到地址“0110000”,數(shù)據(jù)C被讀到地址“0110001”,數(shù)據(jù)A被讀到地址“0110010”,數(shù)據(jù)B被讀到地址“0110011”。通過突發(fā)傳輸,按照D、C、A、B的順序?qū)?shù)據(jù)從地址“0110000”開始返回。
如上所述,根據(jù)根據(jù)第十一實施例的訪問控制系統(tǒng)1,存儲器的實際地址被轉(zhuǎn)換以消除實際地址和掩碼值之間的相關(guān),從而使得可以減小猜測到掩碼值的概率。更具體地說,提高了安全性。
根據(jù)第十一實施例的訪問控制系統(tǒng)1的其它的結(jié)構(gòu)和處理與根據(jù)第十實施例的訪問控制系統(tǒng)1的結(jié)構(gòu)和處理相同。
以下將描述根據(jù)第十一實施例的地址轉(zhuǎn)換處理的變形。在該變形中,根據(jù)第十一實施例的地址轉(zhuǎn)換處理被用于根據(jù)第九實施例的訪問控制系統(tǒng)1。圖79是顯示根據(jù)變形的存儲器端高速緩存控制電路56的詳細(xì)功能結(jié)構(gòu)的框圖。除根據(jù)第十一實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)變形的存儲器端高速緩存控制電路56還包括地址轉(zhuǎn)換設(shè)備160。
序列控制器562還執(zhí)行與在突發(fā)傳輸控制器164中執(zhí)行的處理相同的處理。通過這種方式,同樣在根據(jù)第九實施例的訪問控制系統(tǒng)1中,可以執(zhí)行與第十一實施例中相同的處理,并且可以獲得與第十一實施例相同的效果。
根據(jù)第十一實施例的存儲器端高速緩存控制電路56沒有重排緩沖區(qū)。在該結(jié)構(gòu)中,突發(fā)傳輸中的數(shù)據(jù)不在重排緩沖區(qū)上重排,并且高速緩沖存儲器54被指示以字為單位來訪問。高速緩沖存儲器54用作重排緩沖區(qū)。
(第十二實施例)圖80是顯示根據(jù)第十二實施例的訪問控制系統(tǒng)1的整體結(jié)構(gòu)的示圖。在根據(jù)第十二實施例的訪問控制系統(tǒng)1中,訪問控制裝置10和存儲器40包括彼此相同的總線加密設(shè)備170和410??偩€加密設(shè)備170和410共享密鑰。利用基于所述密鑰生成的隨機(jī)數(shù)來加密存儲器總線42上的信號。
圖81是顯示訪問控制裝置10的功能結(jié)構(gòu)的框圖。除根據(jù)第一實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)第十二實施例的訪問控制裝置10還包括總線加密設(shè)備170??偩€加密設(shè)備170生成加密控制信號的控制信號掩碼、加密存儲器地址的地址掩碼、加密數(shù)據(jù)的數(shù)據(jù)掩碼以及加密奇偶校驗碼的奇偶校驗碼掩碼。相應(yīng)的信號被掩碼并且被發(fā)送到存儲器總線42。
圖82是顯示總線加密設(shè)備170的詳細(xì)功能結(jié)構(gòu)的框圖。總線加密設(shè)備170包括公鑰處理電路171、公鑰存儲器單元172、初始值計算電路173以及隨機(jī)數(shù)生成電路174。
公鑰處理電路171執(zhí)行在總線加密設(shè)備170和410之間共享密鑰的處理??梢砸愿鞣N方式實現(xiàn)共享密鑰。例如,如下執(zhí)行的方式。即,在訪問控制系統(tǒng)1的起始狀態(tài)將第一密鑰寫入總線加密設(shè)備170和410兩者中,隨后,在總線加密設(shè)備170和410之間定期地生成新的密鑰并且在他們之間轉(zhuǎn)換。
公鑰存儲器單元172存儲密鑰。初始值計算電路173基于密鑰生成隨機(jī)數(shù)生成電路174的初始值。最好使用單向函數(shù)等等來防止猜測到密鑰。例如,通過使用散列函數(shù)根據(jù)密鑰生成的值可以被用作初始值。隨機(jī)數(shù)生成電路174通過使用由初始值計算電路173計算的值作為初始值來生成隨機(jī)數(shù)序列。
存儲器40的總線加密設(shè)備410的功能結(jié)構(gòu)與總線加密設(shè)備170的功能結(jié)構(gòu)相同。兩個設(shè)備的公鑰處理電路共享密鑰。在相同的時機(jī),基于密鑰,兩個設(shè)備的隨機(jī)數(shù)生成電路生成相同的隨機(jī)數(shù)。通過使用如上所述生成的隨機(jī)數(shù)作為加密掩碼,在存儲器總線42上的信號的發(fā)送端和接收端計算加密掩碼的XOR,以通過隨機(jī)數(shù)在存儲器總線42上擴(kuò)散信號。
通過這種方式,由訪問控制裝置生成的、與地址相關(guān)聯(lián)以檢查訪問權(quán)限的掩碼值和由總線加密設(shè)備不管地址而生成的掩碼值都被通過XOR運算疊加在原始數(shù)據(jù)上。因此,可以使得數(shù)據(jù)和兩個類型的掩碼值更難以猜測,從而可以提高安全性。
圖83和84是用于說明根據(jù)第十二實施例的存儲器總線42中的信號流程的示圖。圖83是顯示未被總線加密設(shè)備170和410掩碼的信號的示圖。順序地執(zhí)行從地址A34的讀取、到地址A35的寫以及從地址A36的讀取。在這種情況下,對應(yīng)的存儲器地址、對應(yīng)的數(shù)據(jù)以及對應(yīng)的奇偶校驗碼在存儲器總線42上流動。
圖84是顯示未被總線加密設(shè)備170和410掩碼的信號的示圖。在圖84中,Ri.c、Ri.a、Ri.d以及Ri.p分別表示Ri的控制信號加密掩碼、地址加密掩碼、數(shù)據(jù)加密掩碼以及奇偶校驗碼加密掩碼??偩€加密設(shè)備170和410,如圖84所示,以時鐘為單位生成掩碼的隨機(jī)數(shù)。在存儲器總線42的每個信號,通過XOR運算疊加掩碼的隨機(jī)數(shù)的值。
作為第十二實施例的第一變形,總線加密設(shè)備170沒有初始值計算電路173、密鑰可以被作為隨機(jī)數(shù)生成電路的初始值直接給予。從安全的角度,為了防止猜測到密鑰,最好使用通過初始值計算電路173轉(zhuǎn)換的初始值。
作為第二變形,LFSR可以被用作隨機(jī)數(shù)生成電路174。圖85是顯示根據(jù)第二變形的總線加密設(shè)備170的詳細(xì)功能結(jié)構(gòu)的框圖。隨機(jī)數(shù)生成電路174包括隨機(jī)數(shù)寄存器175和LFSR延遲計算電路176。
當(dāng)前狀態(tài)記錄在隨機(jī)數(shù)寄存器175中。通過LFSR延遲計算電路176計算從當(dāng)前狀態(tài)開始延遲預(yù)定階段的狀態(tài)。結(jié)果狀態(tài)被定義為下一個狀態(tài),下一階段的值被輸出作為加密掩碼。
圖86是顯示根據(jù)第三變形的訪問控制裝置10的功能結(jié)構(gòu)的框圖。除根據(jù)第八實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)第三變形的訪問控制裝置10還包括總線加密設(shè)備170。
圖87是顯示根據(jù)第四變形的訪問控制裝置10的功能結(jié)構(gòu)的框圖。除根據(jù)第十實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)第四變形的訪問控制裝置10還包括總線加密設(shè)備170。
圖88是顯示根據(jù)第五變形的訪問控制裝置10的功能結(jié)構(gòu)的框圖。除根據(jù)第九實施例的訪問控制裝置10的功能結(jié)構(gòu)之外,根據(jù)第五變形的訪問控制裝置10還包括總線加密設(shè)備170。
如上所述,根據(jù)第十二實施例的總線加密設(shè)備170可以被用于根據(jù)其它實施例的訪問控制系統(tǒng)1。通過這種方式,同樣在根據(jù)其它實施例的訪問控制系統(tǒng)1中,由訪問控制裝置生成的、與地址相關(guān)聯(lián)以檢查訪問權(quán)限的掩碼值和由總線加密設(shè)備不管地址而生成的掩碼值都被通過XOR運算疊加在原始數(shù)據(jù)上。因此,可以使得數(shù)據(jù)和兩個類型的掩碼值更難以猜測,從而可以提高安全性。
關(guān)于根據(jù)第九實施例至第十二實施例的訪問控制系統(tǒng)1,與在其它實施例中一樣,以所述實施例為特征的訪問控制裝置10可以被用于參照圖48至54說明的其它系統(tǒng)。
其它的優(yōu)點和變形對于本領(lǐng)域技術(shù)人員來講是顯而易見的。因此,本發(fā)明的范圍不局限于這里所述的具體細(xì)節(jié)和典型實施例。因此,在不脫離由所附權(quán)利要求定義的一般發(fā)明原理和它們的等價物的精神或范圍的情況下,可以做出各種變形。
權(quán)利要求
1.一種訪問控制裝置,其控制寫入方、讀出方和存儲器之間的訪問,所述訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀出方從所述存儲器中讀取所述讀數(shù)據(jù)的讀地址來生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
2.根據(jù)權(quán)利要求1所述的裝置,還包括第一表格,其將所述寫入方訪問ID以及寫地址轉(zhuǎn)換信息彼此相關(guān)聯(lián)地進(jìn)行保存,其中,當(dāng)所述寫地址被轉(zhuǎn)換為另一個地址時使用所述寫地址轉(zhuǎn)換信息;以及第二表格,其將所述讀出方訪問ID以及讀地址轉(zhuǎn)換信息彼此相關(guān)聯(lián)地進(jìn)行保存,其中,當(dāng)所述讀地址被轉(zhuǎn)換為另一個地址時使用所述讀地址轉(zhuǎn)換信息,其中所述寫地址轉(zhuǎn)換器通過使用所述第一表格中的與所述寫入方訪問ID相關(guān)聯(lián)的寫地址轉(zhuǎn)換信息,將所述寫地址轉(zhuǎn)換為另一個地址,并且所述讀地址轉(zhuǎn)換器通過使用所述第二表格中的與所述讀出方訪問ID相關(guān)聯(lián)的讀地址轉(zhuǎn)換信息,將所述讀地址轉(zhuǎn)換為另一個地址。
3.根據(jù)權(quán)利要求1所述的裝置,其中所述寫單元以能夠連續(xù)寫數(shù)據(jù)的寫尺寸為單位寫數(shù)據(jù),所述寫地址轉(zhuǎn)換器將對應(yīng)于用于訪問所述存儲器的單位的多個字的寫地址轉(zhuǎn)換為其它的連續(xù)地址,其中,所述單位包含在所述寫尺寸中,以及所述讀單元以能夠連續(xù)讀數(shù)據(jù)的讀尺寸為單位讀取所述第一運算后數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的裝置,還包括數(shù)據(jù)傳輸單元,其以多個字為單位,根據(jù)與相應(yīng)的字相關(guān)聯(lián)的地址的順序?qū)⒂伤鲎x單元讀取的所述第一運算后數(shù)據(jù)傳輸?shù)剿鲎x出方。
5.一種訪問控制裝置,其控制寫入方、讀出方、高速緩沖存儲器和存儲器之間的訪問,所述訪問控制裝置包括讀請求接收器,其從讀出方獲取讀地址;高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在所述高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由所述寫入方或所述讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的所述寫入方或所述讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視器判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
6.根據(jù)權(quán)利要求5所述的裝置,還包括第一數(shù)據(jù)傳輸單元,當(dāng)所述輸出確定單元確定輸出所述數(shù)據(jù)時,所述第一數(shù)據(jù)傳輸單元使用所述第二運算后數(shù)據(jù)作為所述數(shù)據(jù),并且將所述數(shù)據(jù)中的、對應(yīng)于用于訪問所述存儲器的單位的多個字與所述地址相關(guān)聯(lián)地寫入所述高速緩沖存儲器,其中,所述地址是相應(yīng)的多個字的、在通過所述讀地址轉(zhuǎn)換器轉(zhuǎn)換之前而獲得的地址;以及第二數(shù)據(jù)傳輸單元,其以所述多個字為單位,根據(jù)與相應(yīng)的字相關(guān)聯(lián)的地址的順序,將由所述第一數(shù)據(jù)傳輸單元寫入所述高速緩沖存儲器中的數(shù)據(jù)從所述高速緩沖存儲器傳輸?shù)剿鲎x出方。
7.根據(jù)權(quán)利要求5所述的裝置,還包括第二數(shù)據(jù)傳輸單元,其以字為單位,根據(jù)與相應(yīng)的字相關(guān)聯(lián)的地址的順序,將寫入所述高速緩沖存儲器中的數(shù)據(jù)從所述高速緩沖存儲器傳輸?shù)剿鲎x出方。
8.根據(jù)權(quán)利要求5所述的裝置,還包括寫請求接收器,其獲取將被寫入所述存儲器中的數(shù)據(jù)以及寫地址,其中,所述數(shù)據(jù)將從請求將所述數(shù)據(jù)寫入所述存儲器的寫入方寫到所述寫地址;奇偶校驗碼生成器,其生成將寫入所述存儲器的數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將由所述奇偶校驗碼生成器生成的所述奇偶校驗碼添加到所述數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián);寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及寫地址生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;以及寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址,其中所述讀單元從由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的裝置,還包括數(shù)據(jù)存儲器,其將所述數(shù)據(jù)以及由所述寫請求接收器獲取的寫地址,以及所述寫入方訪問ID彼此相關(guān)聯(lián)地存儲在所述高速緩沖存儲器中。
10.一種訪問控制系統(tǒng),包括處理器;存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀取;讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
11.一種訪問控制系統(tǒng),包括處理器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將由所述奇偶校驗碼生成器生成的所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀??;讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
12.一種訪問控制系統(tǒng),包括處理器;存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括讀請求接收器,其獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的所述寫入方或所述讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視單元判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
13.一種訪問控制系統(tǒng),包括處理器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括讀請求接收器,其獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);高速緩存監(jiān)視器,其判斷由所述讀請求接收器獲取的讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的寫入方或讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);讀出方校正子生成器,當(dāng)所述高速緩存監(jiān)視單元判斷由所述讀請求接收器獲取的讀地址未存儲在所述高速緩沖存儲器中時,所述讀出方校正子生成器生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);讀地址轉(zhuǎn)換器,其將由所述讀請求接收器獲取的地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);第一XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與由所述讀單元讀取的第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
14.一種處理器,包括存儲器控制器;以及存儲器訪問控制裝置,其控制到存儲器的訪問,其中所述存儲器訪問控制裝置包括奇偶校驗碼生成器,其生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;奇偶校驗碼添加器,其將由所述奇偶校驗碼生成器生成的所述奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;寫單元,其將所述第一運算后數(shù)據(jù)寫到由所述寫地址轉(zhuǎn)換器轉(zhuǎn)換后的地址;讀出方校正子生成器,其生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);讀出方掩碼生成器,其根據(jù)所述讀出方校正子、所述讀出方訪問ID以及讀地址生成所述讀出方掩碼數(shù)據(jù),其中,所述讀出方數(shù)據(jù)將在所述讀地址被讀??;讀地址轉(zhuǎn)換器,其將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;讀單元,其從由所述讀地址轉(zhuǎn)換器轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);第二XOR計算器,其通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);數(shù)據(jù)校正子計算器,其根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及輸出確定單元,其根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
15.一種訪問控制方法,其控制寫入方、讀出方和存儲器之間的訪問,所述訪問控制方法包括生成將寫入所述存儲器的寫數(shù)據(jù)的奇偶校驗碼;將所述生成的奇偶校驗碼添加到所述寫數(shù)據(jù)以生成添加了奇偶校驗碼的數(shù)據(jù);生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對所述添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址;將所述第一運算后數(shù)據(jù)寫到所述轉(zhuǎn)換后的地址;生成讀出方掩碼數(shù)據(jù)的讀出方校正子以對所述第一運算后數(shù)據(jù)進(jìn)行掩碼,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián),所述讀出方請求從所述存儲器讀數(shù)據(jù);根據(jù)所述讀出方校正子、所述讀出方訪問ID以及將讀取所述讀數(shù)據(jù)的讀地址來生成所述讀出方掩碼數(shù)據(jù);將所述讀地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;從所述轉(zhuǎn)換后的地址讀取所述第一運算后數(shù)據(jù);通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的讀數(shù)據(jù)來輸出。
16.一種存儲器訪問控制方法,其控制寫入方、讀出方和存儲器之間的訪問,所述存儲器訪問控制方法包括獲取將從所述存儲器讀取的數(shù)據(jù),并且從讀出方獲取所述數(shù)據(jù)的讀地址,其中,所述讀出方請求從所述存儲器讀出數(shù)據(jù);判斷所述讀地址是否存儲在高速緩沖存儲器中,其中,所述高速緩沖存儲器存儲由請求將數(shù)據(jù)寫入所述存儲器的寫入方或讀出方請求的數(shù)據(jù),所述數(shù)據(jù)的地址以及當(dāng)能夠訪問所述數(shù)據(jù)的寫入方或讀出方訪問所述存儲器時使用的請求者訪問ID,其中,所述數(shù)據(jù)、所述地址以及所述請求者訪問ID彼此相關(guān)聯(lián);當(dāng)判斷所述讀地址未存儲在所述高速緩沖存儲器中時,生成所述讀出方掩碼數(shù)據(jù)的讀出方校正子以對存儲在所述存儲器中的數(shù)據(jù)進(jìn)行掩碼,其中,所述讀出方校正子與當(dāng)所述讀出方訪問所述存儲器時使用的讀出方訪問ID相關(guān)聯(lián);根據(jù)所述讀出方校正子、所述讀出方訪問ID以及所述讀地址生成所述讀出方掩碼數(shù)據(jù);將所述地址轉(zhuǎn)換為根據(jù)所述讀出方訪問ID確定的另一個地址;從所述轉(zhuǎn)換后的地址讀取接受對所述數(shù)據(jù)進(jìn)行的預(yù)定的計算的第一運算后數(shù)據(jù);通過計算所述讀出方掩碼數(shù)據(jù)與所述第一運算后數(shù)據(jù)之間的XOR來獲得第二運算后數(shù)據(jù);根據(jù)所述第二運算后數(shù)據(jù)計算實際的數(shù)據(jù)校正子;以及根據(jù)所述實際的數(shù)據(jù)校正子確定是否將所述第二運算后數(shù)據(jù)作為由所述讀出方請求讀取的數(shù)據(jù)來輸出。
全文摘要
一種訪問控制裝置,包括寫入方校正子生成器,其生成寫入方掩碼數(shù)據(jù)的寫入方校正子以對添加了奇偶校驗碼的數(shù)據(jù)進(jìn)行掩碼,所述寫入方校正子與當(dāng)所述寫入方訪問所述存儲器時使用的寫入方訪問ID相關(guān)聯(lián),所述寫入方請求將所述寫數(shù)據(jù)寫入所述存儲器;寫掩碼生成器,其根據(jù)所述寫入方校正子、所述寫入方訪問ID以及所述寫入方在所述存儲器中寫入所述寫數(shù)據(jù)的寫地址來生成所述寫入方掩碼數(shù)據(jù);第一XOR計算器,其通過計算所述添加了奇偶校驗碼的數(shù)據(jù)與所述寫入方掩碼數(shù)據(jù)之間的XOR來獲得第一運算后數(shù)據(jù);寫地址轉(zhuǎn)換器,其將所述寫地址轉(zhuǎn)換為根據(jù)所述寫入方訪問ID確定的另一個地址。
文檔編號G06F11/10GK101042682SQ200710084379
公開日2007年9月26日 申請日期2007年2月28日 優(yōu)先權(quán)日2006年3月22日
發(fā)明者金井達(dá)德, 吉井謙一郎 申請人:株式會社東芝