專利名稱:存儲器地址生成裝置以及具有它的處理器、存儲器地址生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲器地址生成裝置以及具有它的處理器、存儲器地址生成方法。
背景技術(shù):
微型計算機或DSP等進行信號處理的處理器,內(nèi)置或外設(shè)在程序存儲器或數(shù)據(jù)存儲器等可訪問的存儲器中。處理器指定對這樣的存儲器進行訪問的地址的方式,有直接地址指定方式、間接地址指定方式、相對地址指定方式、基底地址指定方式等。因此處理器具有應(yīng)當實現(xiàn)這些地址指定方式,生成對存儲器進行訪問的地址的存儲器地址生成裝置(參照例如下述的專利文獻1)。
但是,伴隨著處理器所要求的處理的高度化或復(fù)雜化,對存儲器所要求的應(yīng)當保存的數(shù)據(jù)容量也年年增加。這種狀況下,例如,處理器之一DSP(Digital Signal Processor),在實施伴隨有乘法以及累加等的數(shù)字濾波運算(FIR(Finite Impulse Response)、IIR(Infinite Impulse Response)等),使用同一個乘法器以及加法器,并動態(tài)切換該數(shù)字濾波運算的濾波系數(shù),實施多個處理。這種情況下,濾波系數(shù)中,混合有多個處理中成為公共內(nèi)容的靜態(tài)數(shù)據(jù),或多個處理中成為不同內(nèi)容的動態(tài)數(shù)據(jù)。因此,處理器將多個處理每一個的靜態(tài)數(shù)據(jù)以及動態(tài)數(shù)據(jù)保存在存儲器中,但此時雖然靜態(tài)數(shù)據(jù)是各個處理中公共的內(nèi)容,但也在存儲器中保存有多份,因此變得冗長,從而成為使得存儲器的使用容量增加的一個原因。
另外,例如在存儲器是掩模ROM的情況下,該掩模ROM中所保存的程序,有可能在掩模ROM制造之后發(fā)現(xiàn)錯誤,或伴隨著系統(tǒng)的規(guī)格變更而變更程序內(nèi)容。這種情況下,由于是掩模ROM,因此用來調(diào)試或變更程序的掩模ROM的重寫很困難,所以調(diào)試或變更前的程序,在保持原樣的狀態(tài)下存儲在掩模ROM中。這同樣也是增加存儲器的使用容量的一個原因。
專利文獻1特開平6-337812號公報。
發(fā)明內(nèi)容
用來解決上述問題的本發(fā)明,主要是一種存儲器地址生成裝置,在這種設(shè)置在處理器中,對該處理器能夠訪問的存儲器生成訪問目標地址的存儲器地址生成裝置中,其特征在于具有地址變換電路,其在上述存儲器所提供的地址空間中,設(shè)定了保存置換源數(shù)據(jù)的第1設(shè)定區(qū)域,與保存作為該置換源數(shù)據(jù)的置換對象的置換目標數(shù)據(jù)的第2設(shè)定區(qū)域之后,在上述處理器所指定的訪問目標的上述存儲器的指定地址,包括在上述第1設(shè)定區(qū)域的第1開頭地址與末端地址之間的情況下,將上述指定地址,變更為給上述第2設(shè)定區(qū)域的第2開頭地址,相加了上述指定地址與上述第1開頭地址之間的差值之后所得到的置換目標地址;在上述指定地址包括在上述第1開頭以及上述末端地址之間的情況下,將對應(yīng)于上述指定地址的上述第1設(shè)定區(qū)域的上述置換源數(shù)據(jù),置換成對應(yīng)于上述置換目標地址的上述第2設(shè)定區(qū)域的上述置換目標數(shù)據(jù)。
通過本發(fā)明,能夠提供一種能有效使用存儲器容量的存儲器地址生成裝置以及具有它的處理器、存儲器地址生成方法。
圖1為說明本發(fā)明的一實施方式的相關(guān)處理器的全體構(gòu)成的圖。
圖2為說明本發(fā)明的一實施方式的相關(guān)運算器的構(gòu)成的圖。
圖3為說明本發(fā)明的一實施方式的相關(guān)存儲器地址生成裝置的構(gòu)成的圖。
圖4為說明本發(fā)明的一實施方式的相關(guān)地址變換的圖。
圖5為說明本發(fā)明的一實施方式的相關(guān)地址變換的具體例子的圖。
圖6為說明本發(fā)明的一實施方式的相關(guān)地址變換的具體例子的圖。
圖7為說明本發(fā)明的一實施方式的相關(guān)MSB擴展的目的的圖。
圖8為說明本發(fā)明的一實施方式的相關(guān)MSB擴展的目的的圖。
圖中10-程序計數(shù)器,20-程序存儲器,30-指令寄存器,40-指令解碼器,50-地址生成電路,51-地址寄存器,52-地址運算器,60-地址變換電路,601-OLC寄存器,602-OLB寄存器,603-OLE寄存器,604-OLEN標志位寄存器,605、606-減法器,607-加法器,608-AND元件,609-選擇電路,610-地址寄存器,611a、611b、611c-擴展位寄存器,612a、612b、612c-MSB擴展部,70-數(shù)據(jù)存儲器,701、701a、701b、701c-通常訪問區(qū)域,202、702-置換源區(qū)域,203、703、703a、703b-置換目標區(qū)域,100-運算器,101a、101b、101c-寄存器,102-乘法器,103-加法器,104-ACC,200-存儲器地址生成裝置。
具體實施例方式
<處理器的全體構(gòu)成>
圖1為說明本發(fā)明的相關(guān)“處理器”的全體構(gòu)成例的圖。另外,以下對處理器為DSP的情況進行說明,但也可以是其他微計算機或ASIC(Application Specific IC)等。另外,DSP是專門化為數(shù)字信號處理的微處理器,用在語音、通信、測量、視頻、音頻等廣泛領(lǐng)域中的數(shù)字信號處理中。DSP安裝有用來高速進行在數(shù)字信號處理中用的較多的積和運算的硬件積和運算器(MAC),特征在于,通過1個命令執(zhí)行多個處理的并行處理,或?qū)⒊绦虼鎯ζ髋c數(shù)據(jù)存儲器分離的哈佛結(jié)構(gòu)等。另外,DSP高速動作是其基礎(chǔ),因此一般內(nèi)置而不是外設(shè)有能夠高速訪問的程序存儲器或數(shù)據(jù)存儲器。
圖1所示的處理器,主要由程序計數(shù)器10、程序存儲器20、指令寄存器30、指令解碼器40、存儲器地址生成裝置200、數(shù)據(jù)存儲器70、運算器100構(gòu)成,此外還具有I/O端口與各種寄存器等(均未圖示)。
程序計數(shù)器10,是對用來指定應(yīng)當執(zhí)行的程序的保存目標的程序地址依次進行設(shè)定的計數(shù)器。程序存儲器20,一般由ROM(EEPROM等)構(gòu)成,是存儲程序的命令代碼的存儲器。指令寄存器30是暫存從程序存儲器20所取出的命令代碼的寄存器。指令解碼器40是對存儲在指令寄存器30中的命令代碼進行解碼的解碼器。
存儲地址生成裝置200,是本發(fā)明的相關(guān)“存儲器地址生成裝置”的一實施方式。存儲器地址生成裝置200具有地址生成電路50與地址變換電路60,基本上生成表示對數(shù)據(jù)存儲器70的訪問目標地址。另外,在數(shù)據(jù)存儲器70所提供的地址空間中,設(shè)有進行通常的訪問的通常訪問區(qū)域701、存儲置換源數(shù)據(jù)的置換源區(qū)域702(“第1設(shè)定區(qū)域”)、以及存儲作為置換源數(shù)據(jù)的置換對象的置換目標數(shù)據(jù)的置換目標區(qū)域703(第2設(shè)定區(qū)域)(參照圖4)。
地址生成電路50,根據(jù)指令解碼器40中的命令代碼的解碼結(jié)果,生成對數(shù)據(jù)存儲器70的訪問目標地址(以下稱作指定地址)。該地址指定方式,可以采用直接地址指定方式、間接地址指定方式、相對地址指定方式、基底地址指定方式等。另外,本實施方式中,采用相對地址指定方式,地址生成電路50,在地址寄存器51中存儲有表示數(shù)據(jù)存儲器70的訪問開始目標的循環(huán)開始地址,地址運算器52中,通過從地址寄存器51中所保存的循環(huán)開始地址通過循環(huán)運算增減給定的步長(step)值,來依次生成指定地址,但并不僅限于此。
地址變換電路60,是本發(fā)明的相關(guān)“地址變換電路”的一實施方式。地址變換電路60,在地址生成電路50中所生成的指定地址,處于賦予置換源區(qū)域702的開頭位置的OLB(Overlay Begin)地址(“第1開頭地址”)與賦予置換源區(qū)域702的末端位置的OLE(Overlay End)地址(“末端地址”)之間的情況下,將指定地址變更為置換目標地址,該置換目標地址通過給置換目標區(qū)域703的開頭位置賦予的OLC(Overlay Convert begin)地址(“第2開頭地址”),追加了指定地址與OLB地址之間的差而得到。這樣,處理器根據(jù)該置換目標地址,從數(shù)據(jù)存儲器70的置換目標區(qū)域703讀出所指定的置換目標數(shù)據(jù),通過這樣,對應(yīng)于指定地址的置換源區(qū)域702的置換源數(shù)據(jù),結(jié)果是與對應(yīng)于置換目標地址的置換目標區(qū)域703的置換目標數(shù)據(jù)置換。另外,在指定地址不處于賦予置換源區(qū)域702的第1開頭地址與末端地址之間的情況下,不進行從指定地址到置換目標地址的變換,直接通過由處理器所指定的指定地址,進行對數(shù)據(jù)存儲器70的通常訪問區(qū)域701的訪問。這樣,能夠有效使用數(shù)據(jù)存儲器70所提供的存儲容量。另外,例如在數(shù)據(jù)存儲器70以區(qū)塊單位或頁單位等給定容量的數(shù)據(jù)塊進行訪問的情況下,能夠在置換源數(shù)據(jù)中一起且高效置換相應(yīng)的數(shù)據(jù)塊。
數(shù)據(jù)存儲器70,是存儲用來進行基于在指令解碼器40中所解碼的命令代碼的運算的數(shù)據(jù)的存儲器。數(shù)據(jù)存儲器70由ROM、RAM或其組合構(gòu)成。如前所述,作為數(shù)據(jù)存儲器70所提供的地址空間,設(shè)有通常訪問區(qū)域701、置換源區(qū)域702、以及置換目標區(qū)域703。
運算器100,使用從數(shù)據(jù)存儲器70所讀出的數(shù)據(jù),進行基于在指令解碼器40中所解碼的命令代碼的運算(相乘、累加等)。這里,運算器100的內(nèi)部構(gòu)成,例如是實現(xiàn)如圖2所示的數(shù)字濾波的基本運算的卷積運算的硬件。另外,卷積運算表示為“y(n)=Σh(k)x(n-k);且k=0~N-1”。
圖2中,每當輸入信號x(n-k)依次輸入給寄存器101a、101b、…、101c時,將寄存器101a、101b、…、101c的分接頭(タツプ)輸出從最延遲的x(n-N+1)到x(n)依次切換,供給到乘法器102的一方輸入端子。與此同步,將預(yù)先保存在數(shù)據(jù)存儲器70中的濾波系數(shù),從h(N-1)到h(0)依次供給到乘法器102的另一方輸入端子。之后,乘法器102的乘法結(jié)果,依次供給到加法器103的一方輸入端子。另外,加法器103的另一方輸入端子中,被依次供給存儲在ACC(Accumulator)104中的上次加法器103的累加結(jié)果。其結(jié)果是,加法器103的新累加結(jié)果依次保存到ACC104中。通過執(zhí)行N次這樣的動作,完成卷積運算。
<存儲器地址生成裝置的構(gòu)成>
圖3為說明存儲器地址生成裝置200的構(gòu)成的圖。
首先,數(shù)據(jù)存儲器70的地址空間,設(shè)定有通過表示開頭位置的OLB地址與表示末端位置的OLE地址所確定的置換源區(qū)域702,以及與置換源區(qū)域702同樣容量且通過表示其開頭位置的OLC地址所確定的置換目標區(qū)域703。另外,通過讓置換源區(qū)域702與置換目標區(qū)域703相同容量,置換目標區(qū)域703能夠只通過表示其開頭位置的OLC地址來確定。因此,表示置換目標區(qū)域703的末端位置的地址,在本發(fā)明的相關(guān)地址變換構(gòu)造中不需要,從而簡化了地址變換電路60的構(gòu)成。
另外,將數(shù)據(jù)存儲器70的地址空間,設(shè)為被賦予了表示置換源區(qū)域702的開頭位置的OLB地址更前的地址的通常訪問區(qū)域701a、被賦予了從表示置換源區(qū)域702的末端位置的OLE地址到表示置換目標區(qū)域703的開頭位置的OLC地址之間的地址的通常訪問區(qū)域701b、以及被賦予了比表示置換目標區(qū)域703的末端位置的地址更后的地址的通常訪問區(qū)域701c。另外,如后所述,置換源區(qū)域702與置換目標區(qū)域703可以重合,這種情況下,不設(shè)置通常訪問區(qū)域701b。
地址生成電路50如前所述,生成指定數(shù)據(jù)存儲器70的訪問目標的指定地址。
地址變換電路60,如前所述,被設(shè)為將地址生成電路50中所生成的指定地址變換成置換目標地址并輸出,或?qū)⒌刂飞呻娐?0中所生成的指定地址直接輸出。
OLC寄存器601(“第3地址寄存器”),是保存OLC地址的地址寄存器,OLB寄存器602(“第1地址寄存器”)是保存OLB地址的地址寄存器,OLE寄存器603(“第2地址寄存器”)是保存OLE地址的地址寄存器。這里,OLC寄存器601、OLB寄存器602、OLE寄存器603的內(nèi)容,也即OLC地址、OLB地址以及OLE地址,能夠由與DSP可通信連接的外部微處理器等,在適當?shù)臅r刻(例如DSP的初始化時,或程序執(zhí)行中等)自由重寫。也即,數(shù)據(jù)存儲器70的地址空間中,置換源區(qū)域702以及置換目標區(qū)域703的設(shè)定位置以及容量可以自由設(shè)定。其結(jié)果是,提高了本發(fā)明的相關(guān)地址變換的自由度。
OLEN(Overlay Enable)標志位寄存器(flag register)604(“使能標志位寄存器”),是保存用來設(shè)定是否進行本發(fā)明的相關(guān)地址變換,也即從置換源數(shù)據(jù)向置換目標數(shù)據(jù)的置換的使能標志位(1enable,0disable)的控制寄存器。OLEN標志位寄存器604的內(nèi)容,也即使能標志位,也一樣能夠由與DSP可通信連接的外部微型計算機等,在適當?shù)臅r刻自由重寫。其結(jié)果是,能夠在程序執(zhí)行中的系數(shù)切換時或調(diào)試修正時等根據(jù)需要的時刻,實施本發(fā)明的相關(guān)地址變換。
減法器605(“第1減法器”),用來計算地址生成電路50中所生成的指定地址,與OLB寄存器602中所保存的OLB地址之間的差值(“第1差值”)“指定地址-OLB地址”。也即,表示基于該差值“指定地址-OLB地址”的正或負的符號位,是判斷指定地址在OLB地址前還是后的因素。另外,該差值“指定地址-OLB地址”還成為用來生成置換目標地址的因素。
減法器606(“第2減法器”),用來計算OLE寄存器603中所保存的OLE地址,與地址生成電路50中所生成的指定地址之間的差值(“第2差值”)“OLE地址-指定地址”。也即,表示基于該差值“OLE地址-指定地址”的正或負的符號位,是判斷指定地址在OLE地址前還是后的因素。
加法器607,進行OLC寄存器601中所保存的OLC地址,與減法器605的差值“指定地址-OLB地址”的相加,生成其相加結(jié)果“OLC地址+指定地址-OLB地址”作為置換目標地址。
選擇電路609,用來根據(jù)AND元件608的輸出,選擇地址生成電路50中所生成的指定地址,或加法器607中所生成的置換目標地址中的任一方。這樣,在將選擇電路609中所選擇的指定地址或置換目標地址暫存在地址寄存器610中之后,供給到數(shù)據(jù)存儲器70。其結(jié)果是,數(shù)據(jù)存儲器70,根據(jù)在選擇電路609中所選擇的指定地址或置換目標地址,來進行訪問。
AND元件608是本發(fā)明的相關(guān)“選擇控制電路”的一實施方式。AND元件608,根據(jù)減法器605的差值“指定地址-OLB地址”的符號位,與減法器606的差值“OLE地址-指定地址”的符號位,判斷地址生成電路50中所生成的指定地址,是否處于OLB地址與OLE地址之間。詳細地說,判斷是以下三種組合中的哪一個。
1.指定地址比OLB地址前的情況減法器605的差值“指定地址-OLB地址”的符號位為負。
減法器606的差值“OLE地址-指定地址”的符號位為正。
2.指定地址位于OLB地址與OLE地址之間的情況減法器605的差值“指定地址-OLB地址”的符號位為正。
減法器606的差值“OLE地址-指定地址”的符號位為正。
3.指定地址比OLE地址后的情況減法器605的差值“指定地址-OLB地址”的符號位為正。
減法器606的差值“OLE地址-指定地址”的符號位為負。
因此,AND元件608,在減法器605、606的各個差值的符號位均為正(均為0)的情況下,判斷指定地址位于OLB地址與OLE地址之間,控制選擇電路609應(yīng)當選擇作為加法器607的加法結(jié)果的置換目標地址。另外,AND元件608,在減法器605、606的各個差值的符號位不都為正的情況下,判斷指定地址不在OLB地址與OLE地址之間,控制選擇電路609應(yīng)當選擇地址生成電路50中所生成的指定地址。
另外,AND元件608,根據(jù)OLEN標志位寄存器604中所保存的使能標志位,在該使能標志位表示進行本發(fā)明的相關(guān)地址變換,也即從置換源數(shù)據(jù)向置換目標數(shù)據(jù)的置換(1enable)的情況下,讓選擇電路609中的指定地址或置換目標地址的選擇有效。另外,在使能標志位表示不進行本發(fā)明的相關(guān)地址變換,也即從置換源數(shù)據(jù)向置換目標數(shù)據(jù)的置換(0disable)的情況下,選擇電路609中只讓指定地址的選擇有效。
存儲器地址生成裝置200,首先,通過上述構(gòu)成實施圖4中所示的訪問。另外,圖4的紙面左側(cè)表示地址生成電路50中所生成的指定地址的位置(表面的訪問點)。另外,圖4的紙面右側(cè)表示選擇電路609中所選擇的指定地址或置換目標地址的位置(實際的訪問點)。
也即,如圖4所示,在為比OLB地址前的指定地址A的情況下,直接通過該指定地址A對通常訪問區(qū)域701a進行訪問。另外,在為處于OLB地址與OLE地址之間的指定地址B的情況下,通過將指定地址B與OLB地址之間的差值與OLC地址相加所得到的置換目標地址,對置換目標區(qū)域703進行訪問。另外,在為處于OLE地址與OLC地址之間的指定地址C的情況下,直接通過該指定地址C對通常訪問區(qū)域701c進行訪問。另外,在為處于OLC地址與(OLC地址+OLE地址-OLB地址)之間的指定地址D的情況下,直接通過該指定地址D對置換目標區(qū)域703進行訪問。另外,在為(OLC地址+OLE地址-OLB地址)之后的指定地址E的情況下,直接通過該指定地址E對通常訪問區(qū)域701c進行訪問。通過這樣的存儲器地址生成裝置200的構(gòu)成,能夠有效使用數(shù)據(jù)存儲器70所提供的存儲容量。
上述存儲器地址生成裝置200的構(gòu)成,例如能夠用于圖5所示的動態(tài)數(shù)據(jù)置換的情況。這里,例如在DSP所實施的多個數(shù)字濾波處理中,使用在切換各個處理時由于是公共的內(nèi)容,從而不需要進行變更的靜態(tài)濾波系數(shù)(以下稱作靜態(tài)濾波系數(shù)),與切換各個處理時由于是不同的內(nèi)容,因此需要進行變更的動態(tài)濾波系數(shù)(以下稱作動態(tài)濾波系數(shù))。
這種情況下,數(shù)據(jù)存儲器70所提供的地址空間,只由ROM的地址空間構(gòu)成,其結(jié)果是,置換源區(qū)域702與置換目標區(qū)域703,以及通常訪問區(qū)域701,均設(shè)在ROM的地址空間內(nèi)。這樣,在通常訪問區(qū)域701a中保存靜態(tài)濾波系數(shù),在置換源區(qū)域702中保存多個動態(tài)濾波系數(shù)中的代表性的動態(tài)濾波系數(shù)A,通過OLC地址B或OLC地址C所設(shè)定的置換源區(qū)域703a、703b中,分別保存多個動態(tài)濾波系數(shù)中除了有代表性的系數(shù)之外的動態(tài)濾波系數(shù)B、C。
這種情況下,DSP,在伴隨著切換數(shù)字濾波處理而切換處理中所使用的動態(tài)濾波系數(shù)時,在指定地址處于表示置換源區(qū)域702的開頭位置的OLB地址與表示末端位置的OLE地址之間的情況下,將保存在對應(yīng)于指定地址的置換源區(qū)域702中的動態(tài)濾波系數(shù)A,置換成保存在對應(yīng)于置換目標地址的置換目標區(qū)域703a、703b中的動態(tài)濾波系數(shù)B、C。通過這樣,不需要對多個數(shù)字濾波處理的每一個保存靜態(tài)濾波系數(shù),從而能夠有效使用數(shù)字存儲器70所提供的存儲容量。
另外,上述存儲器地址生成裝置200的構(gòu)成,特別是地址變換電路60的構(gòu)成,并不僅限于對數(shù)據(jù)存儲器70的訪問,還能夠適用于對程序存儲器20的訪問。另外,這種情況下,能夠通過在圖1所示的程序計數(shù)器10與程序存儲器20之間設(shè)置與地址變換電路60同樣的結(jié)構(gòu)來實施。
例如,如圖6所示,程序存儲器20所提供的地址空間,為將ROM所提供的地址空間與RAM所提供的地址空間合成而構(gòu)成的情況。另外,為將置換源區(qū)域202設(shè)定在ROM的地址空間內(nèi),同時,將置換目標區(qū)域203設(shè)定在RAM的地址空間內(nèi)的情況。進而,還是置換源區(qū)域202中所保存的置換源數(shù)據(jù),為產(chǎn)生錯誤的區(qū)域的錯誤數(shù)據(jù),置換目標區(qū)域203中所保存的置換目標數(shù)據(jù),為修正了錯誤的錯誤修正數(shù)據(jù)的情況。
這種情況下,DSP在指定地址是位于表示保存錯誤數(shù)據(jù)的置換源區(qū)域202的開頭位置的OLB地址與表示末端位置的OLE地址之間的情況下,將該指定地址變更為置換目標區(qū)域203的置換目標地址。DSP通過根據(jù)該置換目標地址對置換目標區(qū)域203進行訪問,結(jié)果將置換源區(qū)域202的錯誤數(shù)據(jù),置換成對應(yīng)于置換目標地址的置換目標區(qū)域203的錯誤修正數(shù)據(jù)。這樣,即使在需要重寫ROM的程序內(nèi)容,但ROM的重寫困難的情況下,也不需要進行掩模變更或DSP的系統(tǒng)程序的修正,就能夠高效使用程序存儲器20所提供的存儲容量。
<MSB擴展>
《不進行MSB擴展也不會出問題的情況》圖7為數(shù)據(jù)存儲器70的所有地址空間定義在從“0000h”到“FFFFh”的范圍內(nèi)的情況,另外,示出了在將OLB地址設(shè)為“1000h”,將OLE地址設(shè)為“2FFFh”,將OLC地址設(shè)為“8000h”的情況下,在各個地址中不擴展“1’b0”的MSB時,與進行“1’b0”的MSB擴展時的對數(shù)據(jù)存儲器70的訪問點的地址變換的狀態(tài)。
另外,圖7的紙面左側(cè),示出了地址生成電路50中所生成的指定地址的位置(表面上的訪問點)。另外,圖7的紙面中央,示出了各個地址中不進行“1’b0”的MSB擴展,在減法器605、606中進行了運算的情況下的置換目標地址的位置(實際的訪問點)。另外,圖7的紙面右側(cè),示出了各個地址中進行了“1’b0”的MSB擴展,在減法器605、606中進行了運算的情況下的置換目標地址的位置(實際的訪問點)。
另外,由于OLB地址為“1000h”,OLE地址為“2FFFh”,因此置換源區(qū)域702為“2000h”的范圍。另外,置換目標區(qū)域703是從OLC地址的“8000h”,到給其加上置換源區(qū)域702的范圍“2000h”所得到的“9FFFh”的范圍。因此,圖7所示的例子,為置換源區(qū)域702以及置換目標區(qū)域703,相當于數(shù)據(jù)存儲器70的全范圍“FFFFh”的一半以下的情況。
===指定地址A(0800h)的情況===在地址生成電路50中所生成的指定地址為“0800h”(指定地址A)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“0800h”-“1000h”=“F800h”
(有MSB擴展)“00800h”-“01000h”=“1F800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“2FFFh”-“0800h”=“27FFh”(有MSB擴展)“02FFFh”-“00800h”=“027FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止(close),讓選擇電路609選擇指定地址A(0800h)。
===指定地址B(1800h)的情況===在地址生成電路50中所生成的指定地址為“1800h”(指定地址B)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“1800h”-“1000h”=“0800h”(有MSB擴展)“01800h”-“01000h”=“00800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“2FFFh”-“1800h”=“17FFh”(有MSB擴展)“02FFFh”-“01800h”=“017FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為導(dǎo)通(open),讓選擇電路609選擇作為加法器607的加法結(jié)果的置換目標地址B。另外,置換目標地址B變?yōu)槿缦滤镜摹?800h”。
加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“8000h”+“0800h”=“8800h”===指定地址C(5000h)的情況===在地址生成電路50中所生成的指定地址為“5000h”(指定地址C)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“5000h”-“1000h”=“4000h”(有MSB擴展)“05000h”-“01000h”=“04000h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“2FFFh”-“5000h”=“DFFFh”(有MSB擴展)“02FFFh”-“05000h”=“1DFFFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址C(5000h)。
===指定地址D(9800h)的情況===在地址生成電路50中所生成的指定地址為“9800h”(指定地址D)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“9800h”-“1000h”=“8800h”(有MSB擴展)“09800h”-“01000h”=“08800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“2FFFh”-“9800h”=“97FFh”(有MSB擴展)“02FFFh”-“09800h”=“197FFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址D(9800h)。
===指定地址E(C000h)的情況===在地址生成電路50中所生成的指定地址為“C000h”(指定地址E)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“C000h”-“1000h”=“B800h”(有MSB擴展)“0C000h”-“01000h”=“0B800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“2FFFh”-“C000h”=“6FFFh”(有MSB擴展)“02FFFh”-“0C000h”=“16FFFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下為“0(負)”,在有MSB擴展的情況下為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均截止,讓選擇電路609選擇指定地址E(C000h)。
這樣,在置換源區(qū)域702以及置換目標區(qū)域703,相當于數(shù)據(jù)存儲器70的全范圍“FFFFh”的一半以下的情況下,在指定地址A~E的任一個情況下,OLB地址、OLE地址以及指定地址的各個地址中即使不擴展MSB,也不會發(fā)生問題,從而實施了本發(fā)明中所期望的地址變換。
《不進行MSB擴展會出問題的情況》圖8為數(shù)據(jù)存儲器70的所有地址空間定義在從“0000h”到“FFFFh”的范圍內(nèi)的情況,另外,示出了在將OLB地址設(shè)為“1000h”,將OLE地址設(shè)為“9FFFh”,將OLC地址設(shè)為“6000h”的情況下,在各個地址中不擴展“1’b0”的MSB時,與進行“1’b0”的MSB擴展時的對數(shù)據(jù)存儲器70的訪問點的地址變換的狀態(tài)。
另外,圖8的紙面左側(cè),示出了地址生成電路50中所生成的指定地址的位置(表面上的訪問點)。另外,圖8的紙面中央,示出了各個地址中不進行“1’b0”的MSB擴展,在減法器605、606中進行了運算的情況下的置換目標地址的位置(實際的訪問點)。另外,圖8的紙面右側(cè),示出了各個地址中進行了“1’b0”的MSB擴展置換之后,在減法器605、606中進行了運算的情況下的置換目標地址的位置(實際的訪問點)。
另外,由于OLB地址為“1000h”,OLE地址為“9FFFh”,因此置換源區(qū)域702為“9000h”的范圍。另外,置換目標區(qū)域703是從OLC地址的“6000h”,到給其加上置換源區(qū)域702的范圍“9000h”所得到的“EFFFh”的范圍。因此,圖7所示的例子,為置換源區(qū)域702以及置換目標區(qū)域703,超過了數(shù)據(jù)存儲器70的全范圍“FFFFh”的一半的情況。
===指定地址F(0800h)的情況===在地址生成電路50中所生成的指定地址為“0800h”(指定地址F)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“0800h”-“1000h”=“F800h”(有MSB擴展)“00800h”-“01000h”=“1F800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“0800h”=“97FFh”(有MSB擴展)“09FFFh”-“00800h”=“097FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。另外,減法器606的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址F(0800h)。
===指定地址G(1800h)的情況===在地址生成電路50中所生成的指定地址為“1800h”(指定地址G)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“1800h”-“1000h”=“0800h”(有MSB擴展)“01800h”-“01000h”=“00800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“1800h”=“87FFh”(有MSB擴展)“09FFFh”-“01800h”=“087FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況下截止,讓選擇電路609選擇與本發(fā)明中所希望的地址不同的指定地址G(1800h)。另外,AND元件608在有MSB擴展的情況下均為導(dǎo)通,讓選擇電路609選擇作為加法器607的加法結(jié)果同時也是本發(fā)明所希望的置換目標地址G。另外,置換目標地址G變?yōu)槿缦滤镜摹?800h”。
·加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“6000h”+“0800h”=“6800h”===指定地址H(3800h)的情況===在地址生成電路50中所生成的指定地址為“3800h”(指定地址H)的情況下,減法器605、606的各個差值,在無MSB擴展時與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“3800h”-“1000h”=“2800h”(有MSB擴展)“03800h”-“01000h”=“02800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“3800h”=“67FFh”(有MSB擴展)“09FFFh”-“03800h”=“067FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為導(dǎo)通,讓選擇電路609選擇作為加法器607的加法結(jié)果的置換目標地址H。另外,置換目標地址H變?yōu)槿缦滤镜摹?800h”。
·加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“6000h”+“2800h”=“8800h”===指定地址I(6800h)的情況===在地址生成電路50中所生成的指定地址為“6800h”(指定地址I)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“6800h”-“1000h”=“5800h”(有MSB擴展)“06800h”-“01000h”=“05800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“6800h”=“37FFh”(有MSB擴展)“09FFFh”-“06800h”=“037FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為導(dǎo)通,讓選擇電路609選擇作為加法器607的加法結(jié)果的置換目標地址I。另外,置換目標地址I變?yōu)槿缦滤镜摹癇800h”。
·加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“6000h”+“5800h”=“B800h”===指定地址J(7800h)的情況===在地址生成電路50中所生成的指定地址為“7800h”(指定地址J)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“7800h”-“1000h”=“6800h”(有MSB擴展)“07800h”-“01000h”=“06800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“7800h”=“27FFh”(有MSB擴展)“09FFFh”-“07800h”=“027FFh”因此,減法器605的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為導(dǎo)通,讓選擇電路609選擇作為加法器607的加法結(jié)果的置換目標地址J。另外,置換目標地址J變?yōu)槿缦滤镜摹癈800h”。
·加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“6000h”+“6800h”=“C800h”===指定地址K(9800h)的情況===在地址生成電路50中所生成的指定地址為“9800h”(指定地址K)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“9800h”-“1000h”=“8800h”(有MSB擴展)“09800h”-“01000h”=“08800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“9800h”=“07FFh”(有MSB擴展)“09FFFh”-“09800h”=“007FFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“0(正)”。其結(jié)果是,AND元件608在無MSB擴展的情況下截止,讓選擇電路609選擇與本發(fā)明所期望的地址不同的指定地址K(9800h)。另外,AND元件608在有MSB擴展的情況下為導(dǎo)通,讓選擇電路609選擇作為加法器607的加法結(jié)果且為本發(fā)明所期望的置換目標地址K。另外,置換目標地址K變?yōu)槿缦滤镜摹癊800h”。
·加法器607的加法結(jié)果‘OLC地址+指定地址-OLB地址’“6000h”+“8800h”=“E800h”===指定地址L(0800h)的情況===在地址生成電路50中所生成的指定地址為“A800h”(指定地址L)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“A800h”-“1000h”=“9800h”(有MSB擴展)“0A800h”-“01000h”=“09800h”減法器606的差值‘OLE地址-指定地址’
(無MSB擴展)“9FFFh”-“A800h”=“F7FFh”(有MSB擴展)“09FFFh”-“0A800h”=“1F7FFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址L(A800h)。
===指定地址M(E800h)的情況===在地址生成電路50中所生成的指定地址為“E800h”(指定地址M)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“E800h”-“1000h”=“D800h”(有MSB擴展)“0E800h”-“01000h”=“0D800h”減法器606的差值‘OLE地址-指定地址’(無MSB擴展)“9FFFh”-“E800h”=“B7FFh”(有MSB擴展)“09FFFh”-“0E800h”=“1B7FFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址M(E800h)。
===指定地址N(F800h)的情況===在地址生成電路50中所生成的指定地址為“F800h”(指定地址N)的情況下,減法器605、606的各個差值,在無MSB擴展與有MSB擴展時分別如下所示。
減法器605的差值‘指定地址-OLB地址’(無MSB擴展)“F800h”-“1000h”=“E800h”(有MSB擴展)“0F800h”-“01000h”=“0E800h”減法器606的差值‘OLE地址-指定地址’
(無MSB擴展)“9FFFh”-“F800h”=“A7FFh”(有MSB擴展)“09FFFh”-“0F800h”=“0A7FFh”因此,減法器605的差值MSB在無MSB擴展的情況下為“1(正)”,在有MSB擴展的情況下為“0(正)”。另外,減法器606的差值MSB在無MSB擴展的情況下與有MSB擴展的情況下均為“1(負)”。其結(jié)果是,AND元件608在無MSB擴展的情況與有MSB擴展的情況下均為截止,讓選擇電路609選擇指定地址N(F800h)。
這樣,在置換源區(qū)域702以及置換目標區(qū)域703,超過了數(shù)據(jù)存儲器70的全范圍“FFFFh”的一半的情況下,如果OLB地址、OLE地址以及指定地址的各個地址中不擴展MSB,則有可能無法實施本發(fā)明所期望的地址變換。例如,如前所述,在指定地址G(1800h)或指定地址K(9800h)的情況下,存在雖然應(yīng)當變換成置換目標地址G(6800h)或置換目標地址K(E800h),但并沒有進行這樣的變換,直接通過指定地址G(1800h)或指定地址K(9800)對數(shù)據(jù)存儲器70進行訪問這一問題。因此,OLB地址、OLE地址以及指定地址的各個地址中,需要擴展1’b0的MSB。
《地址變換電路的MSB擴展部》如前所述,在設(shè)在OLB地址與OLE地址之間的置換源區(qū)域702,比數(shù)據(jù)存儲器70所提供的全區(qū)域的一半大的情況下,不實施本發(fā)明中所期望的地址變換。因此,在圖3所示的地址變換電路60中設(shè)有擴展位寄存器611a~611c,與MSB擴展部612a~612c。
擴展位寄存器611a~611c,是存儲1’b0(1位的‘0’)的寄存器。
MSB擴展部612a(“第1MSB擴展部”),是在地址生成電路50中所生成的N位的指定地址的MSB(最高位)中,追加擴展位寄存器611a中所保存的1’b0。也即,將指定地址從N位擴展到“N+1”位。
MSB擴展部612b(“第2MSB擴展部”),是在OLB寄存器602中所保存的N位的OLB地址的MSB(最高位)中,追加擴展位寄存器611b中所保存的1’b0。也即,將OLB地址從N位擴展到“N+1”位。
MSB擴展部612c(“第3MSB擴展部”),是在OLE寄存器603中所保存的N位的OLE地址的MSB(最高位)中,追加擴展位寄存器611c中所保存的1’b0。也即,將OLE地址從N位擴展到“N+1”位。
這樣,將指定地址、OLB地址、OLE地址分別從N位擴展到“N+1”位之后,減法器605計算出均擴展成“N+1”位的指定地址與OLB地址之間的差值‘指定地址-OLB地址’,減法器606計算出均擴展成“N+1”位的OLE地址與指定地址之間的差值‘OLE地址-指定地址’。因此,減法器605的差值‘指定地址-OLB地址’,與減法器606的差值‘OLE地址-指定地址’均為“N+1”位。
另外,加法器607,將OLC寄存器601中所保存的N位的OLC地址,與減法器605的“N+1位”差值‘指定地址-OLB地址’中除了MSB之外的N位相加。因此,選擇電路609選擇位擴展前的N位的指定地址,或作為加法器607的加法結(jié)果的N位的置換目標地址。另外,AND元件608被輸入減法器605、606的“N+1”位差值中的MSB,根據(jù)各個MSB判斷指定地址是否包括在OLB地址與OLE地址之間。
通過設(shè)置這樣的構(gòu)成,能夠可靠地實施本發(fā)明中所希望的地址變換。
以上,對本發(fā)明的例示的目前理想的實施例進行了詳細說明,但本發(fā)明的概念還能夠?qū)嵤└鞣N變更并使用,另外,附屬的權(quán)利要求的范圍,除了被現(xiàn)有技術(shù)所限定處之外,還包括各種變形例。
權(quán)利要求
1.一種存儲器地址生成裝置,設(shè)置在處理器中,對該處理器能夠訪問的存儲器生成訪問目標地址,具有地址變換電路,其在所述存儲器所提供的地址空間中,設(shè)定了保存置換源數(shù)據(jù)的第1設(shè)定區(qū)域,與保存作為該置換源數(shù)據(jù)的置換對象的置換目標數(shù)據(jù)的第2設(shè)定區(qū)域之后,在所述處理器所指定的訪問目標的所述存儲器的指定地址,包括在所述第1設(shè)定區(qū)域的第1開頭地址與末端地址之間的情況下,將所述指定地址,變更為給所述第2設(shè)定區(qū)域的第2開頭地址,相加了所述指定地址與所述第1開頭地址之間的差值之后所得到的置換目標地址,在所述指定地址包括在所述第1開頭以及所述末端地址之間的情況下,將對應(yīng)于所述指定地址的所述第1設(shè)定區(qū)域的所述置換源數(shù)據(jù),置換成對應(yīng)于所述置換目標地址的所述第2設(shè)定區(qū)域的所述置換目標數(shù)據(jù)。
2.如權(quán)利要求1所述的存儲器地址生成裝置,其特征在于所述第1設(shè)定區(qū)域與所述第2設(shè)定區(qū)域容量相同。
3.如權(quán)利要求1或2所述的存儲器地址生成裝置,其特征在于所述地址變換電路具有設(shè)定所述第1開頭地址的第1地址寄存器;設(shè)定所述末端地址的第2地址寄存器;以及設(shè)定所述第2開頭地址的第3地址寄存器。
4.如權(quán)利要求1~3中任一項所述的存儲器地址生成裝置,其特征在于所述地址變換電路具有第1減法器,其運算所述指定地址與所述第1開頭地址之間的第1差值;第2減法器,其運算所述末端地址與所述指定地址之間的第2差值;加法器,其進行所述第2開頭地址與所述第1差值之間的相加,生成所述置換目標地址;選擇電路,其選擇所述指定地址或所述置換目標地址;選擇控制電路,其控制所述選擇電路,根據(jù)所述第1差值與所述第2差值各自中的正或負的符號位,在判斷為所述指定地址包括在所述第1開頭地址與所述末端地址之間的情況下,選擇所述置換目標地址,在判斷為不包括在所述第1開頭地址與所述末端地址之間的情況下,選擇所述指定地址。
5.如權(quán)利要求4所述的存儲器地址生成裝置,其特征在于所述地址變換電路具有第1MSB擴展部,其追加1位的‘0’作為所述指定地址的MSB;第2MSB擴展部,其追加1位的‘0’作為所述第1開頭地址的MSB;以及第3MSB擴展部,其追加1位的‘0’作為所述末端地址的MSB,所述第1減法器,運算追加了所述1位的‘0’的所述指定地址,與追加了所述1位的‘0’的所述第1開頭地址之間的所述第1差值;所述第2減法器,運算追加了所述1位的‘0’的所述末端地址,與追加了所述1位的‘0’的所述指定地址之間的所述第2差值。
6.如權(quán)利要求4或5所述的存儲器地址生成裝置,其特征在于所述地址變換電路,具有使能標志位寄存器,保存有用來設(shè)定是否進行從所述置換源數(shù)據(jù)向所述置換目標數(shù)據(jù)的置換的使能標志位,所述選擇控制電路,根據(jù)所述使能標志位寄存器中所保存的使能標志位,在該使能標志位表示進行所述置換的情況下,讓所述選擇電路中的所述指定地址或所述置換目標地址的選擇有效,在該使能標志位表示不進行所述置換的情況下,在所述選擇電路中只讓所述指定地址的選擇有效。
7.如權(quán)利要求1~6中任一項所述的存儲器地址生成裝置,其特征在于所述存儲器所提供的地址空間,只由ROM的地址空間構(gòu)成,所述第1設(shè)定區(qū)域以及所述第2設(shè)定區(qū)域,設(shè)定在所述ROM的地址空間內(nèi),在使用在多個處理中為分別相同的內(nèi)容的靜態(tài)數(shù)據(jù),以及為分別不同內(nèi)容的動態(tài)數(shù)據(jù)的情況下,所述第1設(shè)定區(qū)域中所保存的所述置換源數(shù)據(jù),是所述多個動態(tài)數(shù)據(jù)中的代表數(shù)據(jù),所述第2設(shè)定區(qū)域中所保存的所述置換目標數(shù)據(jù),是所述代表數(shù)據(jù)以外的動態(tài)數(shù)據(jù)。
8.如權(quán)利要求1~6中任一項所述的存儲器地址生成裝置,其特征在于所述存儲器所提供的地址空間,將ROM的地址空間以及RAM的地址空間合成起來構(gòu)成,所述第1設(shè)定區(qū)域設(shè)定在所述ROM的地址空間內(nèi),同時,所述第2設(shè)定區(qū)域設(shè)定在所述RAM的地址空間內(nèi),所述第1設(shè)定區(qū)域中所保存的所述置換源數(shù)據(jù),是產(chǎn)生了錯誤處的錯誤數(shù)據(jù),所述第2設(shè)定區(qū)域中所保存的所述置換目標數(shù)據(jù),是修正了所述錯誤的錯誤修正數(shù)據(jù)。
9.一種具有如權(quán)利要求1~8中任一項所述的存儲器地址生成裝置的處理器。
10.如權(quán)利要求9所述的處理器,其特征在于所述處理器是DSP(Digital Signal Processor),所述存儲器是程序存儲器或數(shù)據(jù)存儲器。
11.一種存儲器地址生成方法,是對處理器能夠訪問的存儲器生成訪問目標地址的存儲器地址生成方法,在所述存儲器所提供的地址空間中,設(shè)定保存置換源數(shù)據(jù)的第1設(shè)定區(qū)域,與保存置換該置換源數(shù)據(jù)的置換目標數(shù)據(jù)的第2設(shè)定區(qū)域,在所述處理器所指定的訪問目標的所述存儲器的指定地址,包括在所述第1設(shè)定區(qū)域的第1開頭地址與末端地址之間的情況下,將所述指定地址,變更為給所述第2設(shè)定區(qū)域的第2開頭地址,相加了所述指定地址與所述第1開頭地址之間的差值之后所得到的置換目標地址,基于所述置換目標地址的訪問,將對應(yīng)于所述指定地址的所述第1設(shè)定區(qū)域的所述置換源數(shù)據(jù),置換成對應(yīng)于所述置換目標地址的所述第2設(shè)定區(qū)域的所述置換目標數(shù)據(jù)。
全文摘要
本發(fā)明的目的在于有效使用存儲器的存儲容量。涉及一種存儲器地址生成裝置,具有地址變換電路,其在存儲器所提供的地址空間中,設(shè)定了保存置換源數(shù)據(jù)的第1設(shè)定區(qū)域,與保存作為該置換源數(shù)據(jù)的置換對象的置換目標數(shù)據(jù)的第2設(shè)定區(qū)域之后,在處理器所指定的訪問目標的上述存儲器的指定地址,包括在上述第1設(shè)定區(qū)域的第1開頭地址與末端地址之間的情況下,將上述指定地址,變更為給上述第2設(shè)定區(qū)域的第2開頭地址,相加了上述指定地址與上述第1開頭地址之間的差值之后所得到的置換目標地址。
文檔編號G06F12/10GK1848097SQ20061007323
公開日2006年10月18日 申請日期2006年4月5日 優(yōu)先權(quán)日2005年4月11日
發(fā)明者黑田隆 申請人:三洋電機株式會社