日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數(shù)據(jù)處理裝置及半導(dǎo)體集成電路裝置的制造方法

文檔序號:10534735閱讀:591來源:國知局
數(shù)據(jù)處理裝置及半導(dǎo)體集成電路裝置的制造方法【專利摘要】本發(fā)明提供一種數(shù)據(jù)處理裝置,其在雙端方式中,能夠不拘泥于字節(jié)序的種類而共同地使用程序,并且能夠使向量表共同化。指令被固定為小端,在指令執(zhí)行時使用的數(shù)據(jù)的字節(jié)序是可變的。向量表的各向量地址的尺寸是32位,數(shù)據(jù)訪問時的位數(shù)最大是32位。CPU進(jìn)行指令提取,在提取的指令的執(zhí)行前,例如對存儲器進(jìn)行32位數(shù)據(jù)訪問。這時,CPU不依賴于數(shù)據(jù)的字節(jié)序的種類,以在數(shù)據(jù)寄存器的字節(jié)單位的各地址中儲存的數(shù)據(jù)的地址和對齊,與以指令的小端決定的數(shù)據(jù)的地址和對齊成為相同的方式,控制對齊器。【專利說明】數(shù)據(jù)處理裝置及半導(dǎo)體集成電路裝置[0001]本申請是下述申請的分案申請:發(fā)明名稱:數(shù)據(jù)處理裝置及半導(dǎo)體集成電路裝置;申請日:2009年5月28日;申請?zhí)枺?00980135616.7。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及具有處理器的數(shù)據(jù)處理裝置?!?br>背景技術(shù)
】[0003]在具有CPU(中央處理裝置)或DSP(數(shù)字信號處理器)等的處理器的數(shù)據(jù)處理裝置、例如所謂被稱為微型計算機(jī)(也稱為微處理器、微控制器、microcomputer。)的半導(dǎo)體集成電路裝置中,在二進(jìn)制信息的數(shù)據(jù)的排列中,有被稱為小端(LittleEndian)的數(shù)據(jù)的排列,和被稱為大端(BigEndian)的數(shù)據(jù)的排列。[0004]作為在微型計算機(jī)中處理的二進(jìn)制信息,有作為控制微型計算機(jī)的工作的指令而被處理的二進(jìn)制信息,和作為通過這樣的指令的執(zhí)行等而被處理的數(shù)據(jù)的二進(jìn)制信息,通常是在某個特定的微型計算機(jī)中,指令和數(shù)據(jù)一起采用小端或大端的任一方,進(jìn)行數(shù)據(jù)處理。[0005]另一方面,如專利文獻(xiàn)1中記載的那樣,記載有針對微型計算機(jī)的指令和數(shù)據(jù)的雙方的字節(jié)序(endian)能夠?qū)?yīng)小端/大端雙方的字節(jié)序的微型計算機(jī),此外如在專利文獻(xiàn)2中記載的那樣,記載有針對在微型計算機(jī)中處理的數(shù)據(jù)能夠變更小端/大端的微型計算機(jī)。[0006]在專利文獻(xiàn)2中記載的微型計算機(jī)中,記載了其構(gòu)成為對應(yīng)于儲存的數(shù)據(jù)是小端還是大端,使字節(jié)單位的數(shù)據(jù)的排列變更,即使是任一種字節(jié)序都能夠處理。[0007]此外,在微型計算機(jī)中,要求削減為了儲存指令、數(shù)據(jù)所需要的存儲器容量,以適合的功耗提高指令的執(zhí)行/數(shù)據(jù)的處理效率。[0008]現(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)1:日本特開2000-082009號公報;專利文獻(xiàn)2:日本特開2005-174296號公報。【
發(fā)明內(nèi)容】[0009]發(fā)明要解決的問題現(xiàn)在,在具有CPU(在區(qū)別作為功能的記載和作為在半導(dǎo)體上形成的物理區(qū)域的記載的情況下,將前者記載為CPU,后者記載為CPU核心,在不需要區(qū)別的情況下記載為CPU。)或者DSP等的處理器的數(shù)據(jù)處理裝置(以下,僅稱為微型計算機(jī)。)的開發(fā)中,與CPU自身的功能一起,在半導(dǎo)體基板上構(gòu)成CPU核心和各種外圍功能塊(稱為外圍功能IP或者外圍功能IP核心。),通過在CPU的控制下使各種外圍功能塊工作,作為整體進(jìn)行與1個目的對應(yīng)的處理。在這樣的情況下,從被稱為IP核心供應(yīng)商(corevendors)的以特定的外圍功能塊的設(shè)計開發(fā)為專業(yè)的企業(yè)購入需要的外圍功能塊,或使用本公司過去設(shè)計的或在其它制品中設(shè)計的外圍功能塊,在1個半導(dǎo)體基板上構(gòu)成,由此開始進(jìn)行作為目的的微型計算機(jī)的設(shè)計開發(fā)。[0010]在這樣的微型計算機(jī)的設(shè)計開發(fā)體制中,有可能產(chǎn)生購入或者本公司設(shè)計的外圍功能塊的數(shù)據(jù)的字節(jié)序與CPU自身的字節(jié)序相異,或者在應(yīng)該協(xié)同工作的外圍功能塊彼此之間的字節(jié)序中產(chǎn)生相異的情況。[0011]在現(xiàn)有技術(shù)中在產(chǎn)生這樣的字節(jié)序的相異的情況下,選擇與CPU的字節(jié)序一致的外圍功能塊,或者以與CPU的字節(jié)序一致的方式進(jìn)行外圍功能塊的再設(shè)計。[0012]本【發(fā)明人】們鑒于這樣的微型計算機(jī)的開發(fā)體制,認(rèn)識到特別是在專利文獻(xiàn)2記載的那樣的字節(jié)序的變換中會損害作為CPU和微型計算機(jī)整體的處理性能。[0013]本申請發(fā)明的一個目的是提供一種進(jìn)行適宜的字節(jié)序變換的微型計算機(jī)。[0014]本發(fā)明的另一個目的在于提供一種不依賴于字節(jié)序的種類,CPU能夠使用共同的程序和共同的向量地址的雙端(bi-endian)方式的數(shù)據(jù)處理裝置。[0015]用于解決課題的方案CPU處理的數(shù)據(jù)能夠選擇小端或者大端的任一方。在CPU和存儲器之間轉(zhuǎn)送數(shù)據(jù)時,在字節(jié)序是任一種的情況下,CPU的向量地址(vectoraddress)的尺寸的數(shù)據(jù)轉(zhuǎn)送的排列一致。[0016]通過固定指令碼的字節(jié)序,能夠使用同一程序,并且數(shù)據(jù)的字節(jié)序被設(shè)為可變,在向量表的各向量地址是N位的情況下,在訪問被對齊為N位的N位尺寸的數(shù)據(jù)時,以在數(shù)據(jù)的字節(jié)序是大端/小端的任一個的情況下也不依賴于字節(jié)序,能夠以同一地址/同一對齊進(jìn)行訪問的方式控制。另一方面,設(shè)置如下機(jī)構(gòu),在CPU對存儲器進(jìn)行與N位不同的單位的數(shù)據(jù)的訪問時,以與CPU內(nèi)的數(shù)據(jù)寄存器的字節(jié)單位的各地址中儲存的數(shù)據(jù)的地址和對齊適合的方式,變更從存儲器取得的數(shù)據(jù)的地址和對齊。[0017]發(fā)明的效果在向量尺寸的數(shù)據(jù)轉(zhuǎn)送中,不依賴于數(shù)據(jù)的字節(jié)序,能夠以相同的數(shù)據(jù)順序進(jìn)行數(shù)據(jù)轉(zhuǎn)送,由此能夠?qū)崿F(xiàn)向量地址的共同化。[0018]在采用將指令的字節(jié)序固定化了的雙端方式的數(shù)據(jù)處理裝置中,能夠共同地使用程序,并且能夠使向量表共同化。[0019]以下,基于附圖,對本發(fā)明的各種各樣的具體方案和其效果/優(yōu)點進(jìn)行詳細(xì)敘述?!靖綀D說明】[0020]圖1是表示實施方式1的微型計算機(jī)的一部分的結(jié)構(gòu)的框圖。[0021]圖2是示意地表示在存儲器區(qū)域中儲存的向量表的結(jié)構(gòu)的圖。[0022]圖3是示意地表示在雙端方式中,CPU進(jìn)行數(shù)據(jù)的讀工作或者寫工作時的信號布線關(guān)系的框圖。[0023]圖4是示意地表示32位數(shù)據(jù)訪問的情況下的、CPU內(nèi)的寄存器的各地址與存儲器內(nèi)的存儲區(qū)域的各地址的連接關(guān)系的框圖。[0024]圖5是表示讀出在存儲器區(qū)域中儲存的數(shù)據(jù)并儲存在寄存器時的存儲器和寄存器中的字節(jié)順序的圖。[0025]圖6是示意地表示實施方式2的CPU和CPU外圍I/O裝置之間的連接結(jié)構(gòu)的框圖。[0026]圖7是不意地表不存儲器的結(jié)構(gòu)的圖。[0027]圖8是表示微型計算機(jī)的概略結(jié)構(gòu)的圖。[0028]圖9是表示CPU的概略結(jié)構(gòu)的圖。[0029]圖10是表示CPU和存儲器之間的概略連接關(guān)系的圖。[0030]圖11是表示CPU分派的存儲器的地址空間的圖。[0031]圖12是表示存儲器與寄存器之間的數(shù)據(jù)轉(zhuǎn)送時的訪問關(guān)系的圖。[0032]圖13是表示對齊器的一例的圖。[0033]圖14是表示中斷向量地址單位的數(shù)據(jù)轉(zhuǎn)送時的對齊器的連接狀況的一例的圖。[0034]圖15是表示具有字節(jié)序不同的外圍功能塊的微型計算機(jī)的概略結(jié)構(gòu)的圖。[0035]圖16是表不對齊器的一例的圖。[0036]圖17是概略地表示在微型計算機(jī)執(zhí)行的程序的開發(fā)工具的流程的圖。[0037]圖18是表示針對微型計算機(jī)的處理性能的評價項目例的圖。[0038]圖19是表示指令的流水線處理的概略的圖。[0039]圖20是表示哈佛結(jié)構(gòu)的總線結(jié)構(gòu)的概略的圖。[0040]圖21是表示哈佛結(jié)構(gòu)的流水線處理的概略的圖。[0041]圖22是表不使用積和運算器的運算例的圖。[0042]圖23是表示使用浮點運算器的運算例的圖。[0043]圖24是表示使用積和運算器與浮點運算器的其它的運算例的圖。[0044]圖25是表示在程序中出現(xiàn)的指令的出現(xiàn)頻度的圖。[0045]圖26是表示出現(xiàn)頻度高的指令中,減小指令尺寸的指令的一例的圖。[0046]圖27是表示帶索引的寄存器間接尋址的地址運算的圖。[0047]圖28是表示帶算后增量/算前減量功能的寄存器間接尋址的地址運算的圖。[0048]圖29是表示在3運算數(shù)指定的運算的圖。[0049]圖30是表示微型計算機(jī)的寄存器結(jié)構(gòu)的一例的圖。[0050]圖31是表示針對中斷處理的高速化的一例的圖。[0051]圖32是表示在高速中斷處理中的寄存器的使用例的圖。[0052]圖33是例示地表示到高速中斷處理的中斷處理執(zhí)行開始為止的時間的圖。[0053]圖34是表示存儲器保護(hù)功能的概略的圖。[0054]圖35是表示字節(jié)序變換指令的一例的圖。[0055]圖36是表示時鐘門控設(shè)計的概略的圖。[0056]圖37是表示關(guān)鍵總線的時序違規(guī)(timingviolation)解決設(shè)計的概略的圖。[0057]圖38是表示與電源域分割相關(guān)的概略的圖。[0058]圖39是表示在微型計算機(jī)使用Flash存儲器的情況下的處理性能的概略的圖。【具體實施方式】[0059](實施方式1)圖1是表示本實施方式的微型計算機(jī)的一部分的結(jié)構(gòu)的框圖。再有,在圖1中,省略后述的對齊器(aligner)11的記載。[0060]在圖1中,存儲器4是能夠讀/寫的存儲介質(zhì),例如是由SRAM那樣的易失性存儲器或閃速存儲器(EEPR00M的一例)那樣的非易失性存儲器構(gòu)成,與CPU1搭載在同一半導(dǎo)體芯片上?;蛘?,存儲器4搭載在與CPU1不同的其它半導(dǎo)體芯片上也可?;蛘?,存儲器4在其實用狀態(tài)中,例如像USB存儲器那樣,存在于本微型計算機(jī)的外部,并且經(jīng)由USB端子那樣的連接端子,與后述的本微型計算機(jī)的系統(tǒng)總線電連接也可。[0061]存儲器4具有:(1)儲存指令碼(以下,僅稱為"指令"。)的儲存區(qū)域4R1;(2)對在程序的指令執(zhí)行時利用的數(shù)據(jù)進(jìn)行存儲的儲存區(qū)域4R2;(3)儲存除此以外的數(shù)據(jù)等的信號的儲存區(qū)域4R3。[0062]在本實施方式中,作為其一個特征點,指令的字節(jié)序總是固定為小端或大端的一方。因此,僅在CPU1提取指令時能夠使用的指令總線5的字節(jié)序也總是固定為小端或大端的一方。再有,在本例中,假設(shè)指令的字節(jié)序總是固定為小端。[0063]相對于此,按照在儲存在儲存區(qū)域4R2的在指令執(zhí)行時使用的數(shù)據(jù)的字節(jié)序,在CHJ執(zhí)行讀工作或?qū)懝ぷ鲿r使用的數(shù)據(jù)總線3的字節(jié)序是可變的,能夠設(shè)定為小端或大端的任一種。在本實施方式中,地址總線2、數(shù)據(jù)總線3和指令總線5的能夠轉(zhuǎn)送的信號的位量均是32位。因此,在轉(zhuǎn)送作為多字節(jié)的二進(jìn)制數(shù)值的數(shù)據(jù)的雙端方式中,數(shù)據(jù)總線3由各自轉(zhuǎn)送8位(1字節(jié))的數(shù)據(jù)的4組信號線構(gòu)成(相當(dāng)于后述的圖3的信號線30~33。)。再有,地址總線2、數(shù)據(jù)總線3、以及指令總線5不僅是物理地作為不同總線而構(gòu)成,即使物理地作為1個總線構(gòu)成且在時間上作為不同的總線發(fā)揮功能(所謂分離事務(wù)總線等,splittransactionbus),也應(yīng)該理解為表示作為該總線發(fā)揮功能的時間。[0064]圖2是示意地表示在存儲器4的區(qū)域4R3中儲存的向量表(vectortable)6的結(jié)構(gòu)的圖。向量表6是是將多個各自具有N位尺寸的向量地址7匯總配置的區(qū)域。即,各向量地址7是如下地址,其對應(yīng)于本微型計算機(jī)的起動時的復(fù)位信號的輸入、以及例如在排除錯誤處理的程序執(zhí)行那樣的要求特定的共同使用的中斷程序的處理的中斷信號的輸入(將兩者稱為"中斷要因"。),賦予與各中斷要因?qū)?yīng)地預(yù)先決定的、區(qū)域4R1內(nèi)的相應(yīng)的中斷處理程序的儲存位置。首先,在起動時,當(dāng)從外部輸入復(fù)位信號時,N位的復(fù)位向量地址8經(jīng)由數(shù)據(jù)總線3被讀出,復(fù)位向量地址8向CPU1輸出。此外,當(dāng)在CPU工作時對CPU1輸入中斷信號時,與輸入的中斷信號對應(yīng)的向量地址7經(jīng)由地址總線3被讀出,向CPU1輸出。在本實施方式的一個例子中,包含復(fù)位向量地址8的各向量地址7以位單位的尺寸N被設(shè)定為32(N=32)。再有,根據(jù)在該復(fù)位時由CPU1賦予的字節(jié)序信號的電平,數(shù)據(jù)總線3的字節(jié)序被切換。即,在加電復(fù)位(P〇wer-〇nreset)時將專用的模式端子的狀態(tài)和兼作為通用I/O端口(外部端子)的模式端子的狀態(tài)導(dǎo)入微型計算機(jī),例如鎖存到寄存器,CPU1在訪問向量地址之前能夠確定數(shù)據(jù)是小端還是大端的哪一個。[0065]在這里,向量表6也可以儲存在與儲存指令和數(shù)據(jù)的存儲器(第1存儲器)4不同的其它能夠讀/寫的ROM(第2存儲器)的存儲區(qū)域內(nèi)。在本實施方式的一個例子中,也能夠定義為在存儲器4的存儲區(qū)域內(nèi)儲存指令和數(shù)據(jù)的區(qū)域4R1、4R2相當(dāng)于"第1存儲器",儲存向量表6的區(qū)域4R3相當(dāng)于"第2存儲器"。[0066]再有,在以RAM(第1存儲器)構(gòu)成圖1記載的存儲器4時,在RAM之外,作為在本微型計算機(jī)內(nèi)的半導(dǎo)體芯片上搭載的第2存儲器,或者作為外部的第2存儲器(USB存儲器等),設(shè)置儲存向量表6的能夠讀/寫的ROM。[0067]圖7是表示存儲器的概略結(jié)構(gòu)的圖。多個存儲器單元配置為陣列狀,各個存儲器單元與對應(yīng)的字線和位線連接。通常,在存儲器中基于從CPU等供給的訪問地址,X解碼器使規(guī)定的字線活性化,Y解碼器經(jīng)由位線讀出在與該字線連接的存儲器單元中儲存的數(shù)據(jù)。例如,在作為訪問地址供給地址〇的情況下,如果是第〇字線被活性化的存儲器的話,應(yīng)該從第〇字線的第〇位線訪問的字節(jié)數(shù)的數(shù)據(jù)被供給到CPU。即,在作為訪問地址供給X的情況下,第Y字線(Y=X'/1,X'是XX8的位表現(xiàn),1是每字線的存儲器單元數(shù))被活性化,從第Z位線(Z=X'mod1,mod是剩余運算)讀出數(shù)據(jù)。[0068]圖3是示意地表示在雙端方式中,CPU1進(jìn)行數(shù)據(jù)的讀工作或者寫工作時的信號布線關(guān)系的框圖。在CPU1內(nèi)配置的寄存器(是數(shù)據(jù)寄存器,主要使用通用寄存器。)9,具有是字節(jié)單位、并以4個地址0、1、2、3賦予的存儲區(qū)域90、91、92、93。另一方面,存儲器4的存儲區(qū)域4R2的存儲器單元陣列是將儲存區(qū)域10在行方向和列方向?qū)R而成,該儲存區(qū)域10將是字節(jié)單位并分別以地址〇、1、2、3賦予的4個存儲區(qū)域10A、10B、10C、10C作為一組。此外,對齊器11由開關(guān)組(未圖示)構(gòu)成,該開關(guān)組由對應(yīng)于從CPU1輸出的控制信號CNT1切換其接通/斷開工作的各開關(guān)構(gòu)成。而且,對齊器11發(fā)揮如下功能,即將通過與儲存區(qū)域10的各地址10A~10D對應(yīng)的位線連接的各信號線(數(shù)據(jù)總線3的各線)30~33、和連接于寄存器9的各地址90~93的信號線,對應(yīng)于數(shù)據(jù)或者數(shù)據(jù)總線3的字節(jié)序的種類進(jìn)行連結(jié)。圖4是示意地表示32位數(shù)據(jù)訪問的情況下的、CPU1內(nèi)的寄存器的各地址與存儲器內(nèi)的儲存區(qū)域的各地址的連接關(guān)系的框圖。當(dāng)將寄存器9的0地址90側(cè)設(shè)為LSB,將3地址93側(cè)設(shè)為MSB,將存儲器4的0地址10A側(cè)設(shè)為LSB,將3地址10D側(cè)設(shè)為MSB時,對齊器11表示數(shù)據(jù)是小端的情況下的連接關(guān)系。[0069]在這里,CPU1在存儲器4的儲存區(qū)域10(訪問地址X)中儲存32位的數(shù)據(jù)時,預(yù)先如接下來那樣以在各地址l〇A~10D中儲存32位數(shù)據(jù)的方式,規(guī)定存儲器4的區(qū)域4R2的地址。即,如圖5所示那樣,(1)在數(shù)據(jù)以小端存儲時,以將在寄存器中儲存的數(shù)據(jù)的LSB側(cè)設(shè)為+〇的字節(jié)順序,將MSB側(cè)設(shè)為+3的字節(jié)順序的方式,決定數(shù)據(jù)的字節(jié)順序。此外,在存儲器的存儲目的地地址中也同樣地決定+〇~+3的字節(jié)順序,以在寄存器中儲存的數(shù)據(jù)的字節(jié)順序和對存儲器的儲存目的地地址決定的字節(jié)順序一致的方式儲存數(shù)據(jù)。另一方面,(2)在數(shù)據(jù)以大端存儲時,以將在寄存器中儲存的數(shù)據(jù)的MSB側(cè)設(shè)為+0的字節(jié)順序,將LSB側(cè)設(shè)為+3的字節(jié)順序(byteorder)的方式,決定數(shù)據(jù)的字節(jié)順序,在存儲器的儲存目的地地址中也決定字節(jié)順序,在存儲器中儲存數(shù)據(jù)。對于存儲器的儲存目的地地址決定的+0~+3的各個字節(jié)順序與各地址10A~10D對應(yīng)。[0070]現(xiàn)在,假設(shè)在起動時從外部輸入復(fù)位信號,CPU1通過操作數(shù)訪問(operandaccess),取得圖2所示的32位的復(fù)位向量地址8。該32位的復(fù)位向量地址8賦予在存儲器4的區(qū)域4R1中儲存的指令的地址。此外,在中斷信號被輸入CPU1時,CPU1自動地進(jìn)行操作數(shù)訪問,取得32位的向量地址7。在此基礎(chǔ)上,CPU1基于復(fù)位向量地址8或與中斷要因?qū)?yīng)的向量地址7,進(jìn)行指令的提取工作,對提取的指令進(jìn)行解碼,將其工作轉(zhuǎn)向指令的執(zhí)行。在以下記載在這時從存儲器取得與復(fù)位向量地址8和向量地址7相同的數(shù)據(jù)尺寸的32位數(shù)據(jù)的情況,和從存儲器取得與向量地址不同的數(shù)據(jù)尺寸的16位數(shù)據(jù)的情況。[0071]圖5表示在數(shù)據(jù)的轉(zhuǎn)送時,以什么方式進(jìn)行數(shù)據(jù)對齊的變更。使地址0的箭頭表示的處所與存儲器的4字節(jié)邊界(第32n位線)對應(yīng),在32位量(到第32(n+l)-l位線)的存儲器單元中儲存32位的數(shù)據(jù)。相對于這樣的數(shù)據(jù)的儲存狀態(tài),對齊器對應(yīng)于該數(shù)據(jù)的字節(jié)序分派字節(jié)順序,對寄存器轉(zhuǎn)送。由于在各個字節(jié)序中以使在存儲器中儲存的字節(jié)順序和在寄存器中儲存時的字節(jié)順序一致的方式進(jìn)行儲存,因此在4字節(jié)轉(zhuǎn)送時與字節(jié)序無關(guān)地,在寄存器中儲存的數(shù)據(jù)順序一致。[0072]此外,在進(jìn)行16位數(shù)據(jù)轉(zhuǎn)送的情況下,數(shù)據(jù)對齊的變更以如下方式進(jìn)行。對齊器對從存儲器的4字節(jié)邊界起32位量的數(shù)據(jù)與該數(shù)據(jù)的字節(jié)序?qū)?yīng)地分派字節(jié)順序。將相當(dāng)于各個字節(jié)序的+0/+1的字節(jié)順序的數(shù)據(jù)從寄存器的LSB起依次存儲。如圖示那樣,在小端的情況下對齊器分派的字節(jié)順序的+〇相當(dāng)于寄存器的LSB,因此在存儲器中儲存的2字節(jié)的數(shù)據(jù)和在寄存器中儲存的2字節(jié)的數(shù)據(jù)一致。另一方面,在大端的情況下,對齊器分派的字節(jié)順序的+〇相當(dāng)于寄存器的MSB,因此在4字節(jié)轉(zhuǎn)送時在寄存器的MSB側(cè)儲存的2字節(jié)的數(shù)據(jù)被儲存在寄存器的LSB側(cè)。再有,在寄存器的MSB側(cè)儲存2字節(jié)的"**"表示"0"或"1"或數(shù)據(jù)的代碼位擴(kuò)充儲存的情況。[0073]以上的記述在CPU1進(jìn)行8位數(shù)據(jù)訪問的情況下也是妥當(dāng)?shù)?。[0074]再有,在上述的一例的工作記述中,以數(shù)據(jù)的讀工作為中心進(jìn)行記載,但上述的本實施方式的特征點在數(shù)據(jù)的寫工作中,也能夠通過使在寄存器中儲存的數(shù)據(jù)的字節(jié)順序和在存儲器中儲存時由對齊器分派的字節(jié)順序同樣地對應(yīng)來應(yīng)用。[0075]如上所述,在作為數(shù)據(jù)處理裝置的結(jié)構(gòu)采用本實施方式的結(jié)構(gòu)的情況下,在向量地址及與向量地址相同尺寸的數(shù)據(jù)的轉(zhuǎn)送中,能夠不依賴于數(shù)據(jù)的字節(jié)序的種類,在同一地址和同一數(shù)據(jù)對齊(alignment)中,將數(shù)據(jù)對存儲器進(jìn)行讀/寫,在這時能夠執(zhí)行共同的程序,并且能夠使向量表共同化。[0076](實施方式2)本實施方式的特征點在于,在實施方式1的雙端方式的微型計算機(jī)中,將CPU外圍的各I/O裝置和CPU間的數(shù)據(jù)總線分離為小端專用的數(shù)據(jù)總線和大端專用的數(shù)據(jù)總線。[0077]圖6是示意地表示本實施方式的特征點的框圖。如圖6所示,在進(jìn)行CPU1、和CPU1的外圍I/O裝置之間的數(shù)據(jù)的轉(zhuǎn)送的數(shù)據(jù)總線中,設(shè)置有大端專用的數(shù)據(jù)總線14、和小端專用的數(shù)據(jù)總線17。而且,各大端專用的外圍I/O裝置15、16經(jīng)由各個信號線與大端用數(shù)據(jù)總線14連接,另一方面,各小端專用的外圍I/O裝置18、19經(jīng)由各個信號線,與小端用數(shù)據(jù)總線17連接。作為各外圍I/O裝置,例如有中斷控制電路(INTC)或者直接存儲器訪問控制器(DMAC,directmemoryaccesscontroller)或者串行通信接口(SCI,serialcommunicationinterface)等。[0078]CPU1將在CPUUCPU1的外圍1/0裝置15~19之間進(jìn)行相互轉(zhuǎn)送的數(shù)據(jù)儲存在1/0寄存器12。儲存在該1/0寄存器12中的數(shù)據(jù)的字節(jié)序是小端和大端的任一方。對齊器13在CPU1輸出的控制信號CNT2的控制下,對應(yīng)于在1/0寄存器12中儲存的數(shù)據(jù)的字節(jié)序的種類,以使1/0寄存器12內(nèi)的該數(shù)據(jù)的字節(jié)順序,與分派到大端用數(shù)據(jù)總線14和小端用數(shù)據(jù)總線17內(nèi)的相應(yīng)數(shù)據(jù)總線的字節(jié)順序一致的方式連接。根據(jù)外圍1/0裝置內(nèi)的寄存器和存儲器等位于哪個地址范圍,得知是小端還是大端。即,通過解碼CPU1訪問的地址,決定控制信號CNT2的狀態(tài)。[0079]在采用以上的結(jié)構(gòu)時,在外圍I/O裝置和CPU之間轉(zhuǎn)送的數(shù)據(jù)的字節(jié)序被固定化,在向外圍I/O裝置的訪問處理中,不管字節(jié)序的種類是怎樣的,能夠使用共同的程序。即,通過對齊器13使數(shù)據(jù)的字節(jié)順序?qū)τ诟鱾€外圍I/O裝置變得適合,因此即使在使用大端用外圍I/O裝置和小端用外圍I/O裝置的雙方進(jìn)行數(shù)據(jù)的處理的情況下,也能夠不需要在CPU執(zhí)行的程序中進(jìn)行數(shù)據(jù)的字節(jié)序變換等的考慮外圍I/O裝置的數(shù)據(jù)的字節(jié)序的處理。進(jìn)而,在1個半導(dǎo)體基板上具有多個數(shù)據(jù)處理模塊(被稱為所謂功能IP,相當(dāng)于圖6的外圍1/〇裝置)的數(shù)據(jù)處理裝置中,構(gòu)成為對應(yīng)于數(shù)據(jù)處理模塊自身的數(shù)據(jù)的字節(jié)序分離總線,經(jīng)由對齊器與CPU連接,由此能夠減輕在數(shù)據(jù)處理裝置的結(jié)構(gòu)中以數(shù)據(jù)的字節(jié)序一致的方式選擇數(shù)據(jù)處理模塊或在數(shù)據(jù)處理裝置的CPU執(zhí)行的程序中按每個數(shù)據(jù)處理模塊對數(shù)據(jù)的字節(jié)序進(jìn)行變換等的、構(gòu)成數(shù)據(jù)處理裝置時的對硬件/軟件的負(fù)擔(dān)。[0080](實施方式3)圖8是表示微型計算機(jī)MCU的一例的概略的框圖。[0081]中央處理裝置(以下,稱為CPU31通過提取在非易失性存儲器ROM、易失性存儲器RAM等中儲存的指令并執(zhí)行,進(jìn)行作為微型計算機(jī)MCU整體的處理控制。直接存儲器訪問控制器DMAC進(jìn)行外部存儲器EMEM等和存儲器4(由非易失性存儲器R0M、易失性存儲器RAM等構(gòu)成。)之間,或存儲器4和外圍電路組(IP1、IP2)之間的數(shù)據(jù)轉(zhuǎn)送控制。總線控制器BSC在CPU1等其它的功能塊經(jīng)由總線進(jìn)行數(shù)據(jù)轉(zhuǎn)送等時,進(jìn)行總線權(quán)的賦予等的控制。中斷控制器INTC受理在微型計算機(jī)MCU內(nèi)部或外部產(chǎn)生的中斷,進(jìn)行對CPU1通知等的控制。外圍電路組(IP1、IP2)是與在微型計算機(jī)MCU的外部連接的其它的半導(dǎo)體集成電路裝置進(jìn)行通信的通信IF(InterFace)系統(tǒng)(串行10(Input/Output),并行10等)、專用數(shù)據(jù)處理系統(tǒng)(圖像處理塊、密碼處理塊等)等。外部總線接口BIF經(jīng)由與微型計算機(jī)MCU的外部連接的總線與外部存儲器EMEM等連接。[0082]圖9是表示CPU1內(nèi)的概略的框圖,圖10是表示CRJ1的存儲器訪問關(guān)系的圖,圖11是表示在CPU1分派的存儲器4的地址空間的圖。在圖11中,地址的右側(cè)的"H"表示以16進(jìn)制記述地址。再有,在圖11中,僅表述有各區(qū)域的起始地址。[0083]圖8的CPU1與其它的功能塊連接的總線,由圖10所示的32位長的地址總線2、32位長的數(shù)據(jù)總線3、32位長的指令總線5構(gòu)成。作為其他的總線結(jié)構(gòu),是地址和數(shù)據(jù)和指令在總線信號線上,以時分割進(jìn)行信息的交接的分離事務(wù)總線的結(jié)構(gòu)也可。此外,在數(shù)據(jù)和指令不被并行地訪問的結(jié)構(gòu)的情況下,數(shù)據(jù)總線3和指令總線5不被分離,而以同一總線構(gòu)成也可。進(jìn)而,數(shù)據(jù)總線3和指令總線5是64位長也可。[0084]在CPU1進(jìn)行指令提取的情況下,將在32位長的程序計數(shù)器PC中儲存的要提取的指令的地址輸出到地址總線2,經(jīng)由地址總線2接收了該地址的存儲器4將與該地址對應(yīng)的二進(jìn)制信息對指令總線輸出。CPU1將從指令總線5接收的二進(jìn)制信息作為要執(zhí)行的指令儲存在指令寄存器IR中,在指令解碼器iDEC對指令進(jìn)行解碼,將與解碼了的結(jié)果對應(yīng)的控制信號輸出到算術(shù)邏輯單元ALU、乘法器MLT、除法器DIV、移位運算器SHFT、浮點運算器等的運算器,在運算器對在寄存器組REG(通用寄存器、專用寄存器)、存儲器4等中儲存的數(shù)據(jù)進(jìn)行相應(yīng)的運算。[0085]此外,在CPU1從中斷控制器INTC接收到中斷通知的情況下,CPU1為了進(jìn)行與接收到的中斷通知對應(yīng)的中斷處理,將存儲器4的中斷向量表區(qū)域(圖11的地址FFFFFDOOH~FFFFFDFFH)的地址中與接收到的中斷通知對應(yīng)的地址向地址總線2輸出,存儲器4將與該地址對應(yīng)的二進(jìn)制信息對數(shù)據(jù)總線3輸出。CPU1將從地址總線3接收到的二進(jìn)制信息作為儲存有中斷處理例程的地址(稱為向量地址。)設(shè)定到程序計數(shù)器PC,為了執(zhí)行中斷處理例程的指令進(jìn)行轉(zhuǎn)移。在這里,向量地址是32位(4字節(jié))長。再有,假設(shè)用于來自中斷控制器INTC的中斷通知以外的例外處理(例如,特權(quán)指令例外處理、未定義指令例外處理等)的向量地址也儲存在中斷向量表區(qū)域中。[0086]再有,復(fù)位向量區(qū)域(圖11的地址FFFFFE00H)是儲存如下地址的區(qū)域,該地址(例如,引導(dǎo)指令區(qū)域的起始地址0000H)是儲存有在微型計算機(jī)MCU被接通電源或從外部被輸入復(fù)位信號的情況下,在復(fù)位期間結(jié)束后立刻執(zhí)行的程序的地址。雖然中斷處理和復(fù)位處理有起因是中斷還是復(fù)位的差異,但在轉(zhuǎn)移的地址的取得中是大致相同的。[0087]在引導(dǎo)(boot)指令區(qū)域、第1程序區(qū)域、第2程序區(qū)域以及中斷處理例程區(qū)域等的程序區(qū)域中儲存的指令的字節(jié)序,固定為小端或大端的任一種。此外,復(fù)位向量區(qū)域和中斷向量表等的向量區(qū)域的數(shù)據(jù)的字節(jié)序也固定為小端或大端的任一種。這些字節(jié)序的固定在微型計算機(jī)的制造時固定也可,最遲在加電復(fù)位后訪問向量區(qū)域之前被固定即可。在后者的情況下,在加電復(fù)位時將專用的模式端子的狀態(tài)、兼作為通用I/O端口(外部端子)的模式端子的狀態(tài)導(dǎo)入微型計算機(jī),例如鎖存到寄存器,CPU1在訪問向量地址之前能夠確定數(shù)據(jù)是小端還是大端的哪一個即可。[0088]第1程序儲存在存儲器4的地址1000H~1FFH1的范圍的區(qū)域中。第2程序儲存在存儲器4的地址3000H~3FFH1的范圍的區(qū)域中。第1程序和第2程序分別具有第1數(shù)據(jù)區(qū)域(地址2000H~2FFFH)和第2數(shù)據(jù)區(qū)域(地址4000H~4FFFH)。第1程序?qū)⒌?數(shù)據(jù)區(qū)域的數(shù)據(jù)的字節(jié)序作為小端進(jìn)行數(shù)據(jù)處理,第2程序?qū)⒌?數(shù)據(jù)區(qū)域的數(shù)據(jù)的字節(jié)序作為大端進(jìn)行數(shù)據(jù)處理。例如,相當(dāng)于第1程序是對以小端進(jìn)行數(shù)據(jù)處理的外圍電路生成的數(shù)據(jù)進(jìn)行處理的程序,第2程序是對以大端進(jìn)行數(shù)據(jù)處理的外圍電路生成的數(shù)據(jù)進(jìn)行處理的程序的情況。[0089]根據(jù)CPU1的地址空間的地址范圍,預(yù)先決定處理小端或大端的哪一方的數(shù)據(jù)。再有,能夠根據(jù)地址范圍,通過CPU在寄存器設(shè)定處理小端或大端的哪一方的數(shù)據(jù)也可。此外,能夠在復(fù)位解除后,通過將在內(nèi)置的非易失性存儲器中預(yù)先儲存的數(shù)據(jù)自動地轉(zhuǎn)送到寄存器,設(shè)定處理小端或大端的哪一方的數(shù)據(jù)也可。[0090]在CPU1執(zhí)行第1程序的期間中產(chǎn)生來自中斷控制器INTC的中斷通知的情況下,向中斷向量表區(qū)域(地址FFFFFD00H~FFFFFDFFH)的訪問以預(yù)先固定的字節(jié)序來進(jìn)行訪問。[0091]另一方面,在CPU1執(zhí)行第2程序的期間中產(chǎn)生中斷通知的情況下,向中斷向量表區(qū)域的訪問以預(yù)先固定的字節(jié)序來進(jìn)行訪問。[0092]圖12是表示在存儲器4和CPU1的寄存器9之間轉(zhuǎn)送數(shù)據(jù)時的訪問關(guān)系的圖,圖13是表不對齊器11的一個例子的圖。[0093]在從存儲器4向寄存器9(寄存器組REG中的一個寄存器)進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下,在要轉(zhuǎn)送的數(shù)據(jù)儲存在存儲器4的10A至10D所示的區(qū)域中的情況下,相對的地址位移0地址的數(shù)據(jù)(10A)向數(shù)據(jù)總線3中的以號碼30表示的8bit的部分總線輸出。以下同樣地,地址位移1地址~3地址的數(shù)據(jù)(10B~10D)向以號碼31、32、33表示的8bit的部分總線輸出。向以號碼30~33表示的各個部分總線輸出的數(shù)據(jù)儲存在寄存器的相對的地址位移0地址~3地址的哪個8bit的部分區(qū)域中,是對應(yīng)于控制信號CNT1的狀態(tài)通過對齊器11來決定的。控制信號CNT1是根據(jù)小端或大端、向存儲器4的訪問尺寸(accesssize)、訪問字節(jié)地址等的信息而生成的信號。[0094]最初,針對將從存儲器4向寄存器的數(shù)據(jù)轉(zhuǎn)送以復(fù)位向量地址、中斷向量地址等的向量地址(以下,稱為中斷向量地址。)的尺寸的4字節(jié)訪問的情況進(jìn)行說明。在該情況下,對齊器11以成為圖14所示的連接狀態(tài)的方式被設(shè)定。圖14是示意地表示4字節(jié)的訪問的情況下的、CPU1內(nèi)的寄存器的各地址與存儲器4內(nèi)的儲存區(qū)域的各地址的連接關(guān)系的框圖。當(dāng)將寄存器9的0地址90側(cè)設(shè)為LSB,將3地址93側(cè)設(shè)為MSB,將存儲器4的0地址10A側(cè)設(shè)為LSB,將3地址10D側(cè)設(shè)為MSB時,對齊器11表示存儲器4內(nèi)的數(shù)據(jù)和CPU1內(nèi)的數(shù)據(jù)的字節(jié)序是相同的情況下的連接關(guān)系。即,表示在CPU1內(nèi)的數(shù)據(jù)的字節(jié)序是小端的情況下,存儲器4內(nèi)的數(shù)據(jù)的字節(jié)序是小端。以下,作為一個例子,針對CPU1內(nèi)的數(shù)據(jù)的字節(jié)序是小端的情況進(jìn)行記述。[0095]在圖13中,在對第1數(shù)據(jù)區(qū)域的數(shù)據(jù)(小端的數(shù)據(jù))進(jìn)行四字節(jié)訪問的情況下,與部分總線[0:7](數(shù)據(jù)總線30)、[8:15](數(shù)據(jù)總線31)、[16:23](數(shù)據(jù)總線32)、[24:31](數(shù)據(jù)總線33)連接的4字節(jié)數(shù)據(jù)被輸出,以使輸出到部分總線[24:31]的數(shù)據(jù)成為寄存器的MSB側(cè)的方式儲存在寄存器9的地址位移0地址(90)、1地址(91)、2地址(92)、3地址(93)。另一方面,在訪問第2數(shù)據(jù)區(qū)域的數(shù)據(jù)(大端的數(shù)據(jù))的情況下,以使輸出到部分總線[24:31]的數(shù)據(jù)成為MSB側(cè)的方式,將與部分總線[0:7]、[8:15]、[16:23]、[24:31]連接的各個數(shù)據(jù)儲存在寄存器9的地址位移0地址、1地址、2地址、3地址。即,即使在訪問第1數(shù)據(jù)區(qū)域或第2數(shù)據(jù)區(qū)域的某一方的數(shù)據(jù)時,在以中斷向量地址尺寸的訪問中,以在CPU1內(nèi)的寄存器9中儲存的順序一致的方式,設(shè)定對齊器11的選擇器1~4。選擇器1~4分別以4個雙方向性開關(guān)構(gòu)成,雙方向性開關(guān)以CMOS傳輸門(transfergate)構(gòu)成。直接用控制信號CNT1,或?qū)⑵浣獯a來對雙方向性開關(guān)進(jìn)行控制。[0096]同樣地,即使在執(zhí)行第1程序或第2程序的某一方中產(chǎn)生中斷通知,在向中斷向量地址的訪問中,輸出與儲存有中斷向量地址的地址的部分總線[0:7]、[8:15]、[16:23]、[24:31]連接的4字節(jié)的數(shù)據(jù),以使輸出到部分總線[24:31]的數(shù)據(jù)成為寄存器的MSB側(cè)的方式,儲存在寄存器的地址位移〇地址、1地址、2地址、3地址。[0097]再有,儲存中斷向量地址的寄存器是程序計數(shù)器(programcounter)PC,通過更新在程序計數(shù)器PC中儲存的地址,向中斷處理例程進(jìn)行轉(zhuǎn)移。[0098]這樣的轉(zhuǎn)移工作不僅是中斷通知發(fā)生時的向中斷處理例程的轉(zhuǎn)移,在地址修改轉(zhuǎn)移指令等的進(jìn)行地址修改的指令的執(zhí)行中也是同樣的。[0099]作為這樣的地址修改轉(zhuǎn)移指令,例如如那樣,記述指令。在指令的記述中包含的"@"表示進(jìn)行地址修改,""表示將接著的二進(jìn)制信息作為數(shù)值信息進(jìn)行識別,Rn表示指定寄存器號碼。[0100]在指令(1)中,在以adr表示的存儲器4的地址中儲存有轉(zhuǎn)移目的地地址,在該指令的執(zhí)行中,訪問地址adr以與中斷向量地址相同的尺寸取得轉(zhuǎn)移目的地地址,轉(zhuǎn)送到程序計數(shù)器PC。通過在程序計數(shù)器PC中儲存的地址被更新為轉(zhuǎn)移目的地地址,能夠進(jìn)行指令的執(zhí)行轉(zhuǎn)移。在指令(2)中,在寄存器中儲存有在指令(1)中的地址adr,訪問寄存器Rn取得地址adr。之后的工作與指令(1)相同。[0101]接著,記述以作為中斷向量地址尺寸的一半的2字節(jié),進(jìn)行從存儲器4向?qū)⒋鎯ζ鞯臄?shù)據(jù)轉(zhuǎn)送的情況,以及以1字節(jié)進(jìn)行的情況。即使在以2字節(jié)或1字節(jié)進(jìn)行來自存儲器4的數(shù)據(jù)轉(zhuǎn)送的情況下,在從存儲器4以4字節(jié)進(jìn)行數(shù)據(jù)讀出之后,將作為讀出對象的2字節(jié)或1字節(jié)轉(zhuǎn)送到寄存器。[0102]在指定從第1數(shù)據(jù)區(qū)域的地址2000H起2字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,對于將地址2000H作為起始讀出的4字節(jié)數(shù)據(jù)中的與部分總線[24:31]和[16:23]連接的數(shù)據(jù),選擇器3將部分總線[24:31]連接于寄存器9的寄存器內(nèi)位移1地址,選擇器4將部分總線[16:23]連接于寄存器內(nèi)位移0地址。在該情況下,選擇器1和2以不將與部分總線[0:7]、[8:15]連接的數(shù)據(jù)儲存在寄存器中的方式進(jìn)行控制。[0103]此外,在指定從地址2002H起2字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,對于將地址2000H作為起始讀出的4字節(jié)數(shù)據(jù)中的與部分總線[8:15]和[0:7]連接的數(shù)據(jù),選擇器3將部分總線[24:31]連接于寄存器內(nèi)位移1地址,選擇器4將部分總線[16:23]連接于寄存器內(nèi)位移0地址。在該情況下,選擇器1和2以不將與部分總線[0:7]、[8:15]連接的數(shù)據(jù)儲存在寄存器中的方式進(jìn)行控制。[0104]另一方面,在指定從第2數(shù)據(jù)區(qū)域的地址4000H起2字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,對于將地址4000H作為起始讀出的4字節(jié)數(shù)據(jù)中的與部分總線[0:7]和[8:15]連接的數(shù)據(jù),選擇器3將部分總線[0:7]連接于寄存器9的寄存器內(nèi)位移1地址,選擇器4將部分總線[8:15]連接于寄存器9的寄存器內(nèi)位移0地址。在該情況下,選擇器1和2以不將與部分總線[0:7]、[8:15]連接的數(shù)據(jù)儲存在寄存器中的方式進(jìn)行控制。[0105]此外,在指定從地址4002H起2字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,對于將地址4000H作為起始讀出的4字節(jié)數(shù)據(jù)中的與部分總線[16:23]和[24:31]連接的數(shù)據(jù),選擇器3將部分總線[16:23]連接于寄存器內(nèi)位移1地址,選擇器4將部分總線[24:31]連接于寄存器內(nèi)位移0地址。在該情況下,選擇器1和2以不將與部分總線[0:7]、[8:15]連接的數(shù)據(jù)儲存在寄存器中的方式進(jìn)行控制。[0106]接著,記述以作為中斷向量地址尺寸的四分之一的1字節(jié),進(jìn)行從存儲器4向寄存器9的數(shù)據(jù)轉(zhuǎn)送的情況。[0107]在指定從第1數(shù)據(jù)區(qū)域的地址2000H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[0:7]連接的數(shù)據(jù),選擇器4將部分總線[0:7]連接于寄存器內(nèi)位移0地址。此外,在指定從地址2001H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[8:15]連接的數(shù)據(jù),選擇器4將部分總線[8:15]連接于寄存器內(nèi)位移0地址。此外,在指定從地址2002H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[16:23]連接的數(shù)據(jù),選擇器4將部分總線[16:23]連接于寄存器內(nèi)位移〇地址。此外,在指定從地址2003H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[24:31]連接的數(shù)據(jù),選擇器4將部分總線[24:31]連接于寄存器內(nèi)位移0地址。[0108]另一方面,在指定從第2數(shù)據(jù)區(qū)域的地址4000H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[24:31]連接的數(shù)據(jù),選擇器4將部分總線[24:31]連接于寄存器內(nèi)位移0地址。此外,在指定從地址4001H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[16:23]連接的數(shù)據(jù),選擇器4將部分總線[16:23]連接于寄存器內(nèi)位移0地址90。此外,在指定從地址4002H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[8:15]連接的數(shù)據(jù),選擇器4將部分總線[8:15]連接于寄存器內(nèi)位移0地址90。此外,在指定從地址4003H起1字節(jié)的數(shù)據(jù)轉(zhuǎn)送的情況下,輸出與部分總線[0:7]連接的數(shù)據(jù),選擇器4將部分總線[0:7]連接于寄存器內(nèi)位移0地址。[0109]再有,對齊器11設(shè)置在CPU1的寄存器9與數(shù)據(jù)總線3之間即可,例如設(shè)置在CPU1內(nèi)也可。此外,在外部總線接口BIF內(nèi)設(shè)置外部存儲器EMEM用的對齊器也可。在該情況下,能夠按照外部存儲器EMEM等的外部器件的每個地址空間,通過CPU在寄存器設(shè)定大端和小端的切換也可。[0110]以上,針對從存儲器4向寄存器9進(jìn)行各種尺寸的數(shù)據(jù)轉(zhuǎn)送的情況進(jìn)行了說明,但在從寄存器9向存儲器4進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下也是同樣的。再有,在從存儲器4向寄存器9進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下,在數(shù)據(jù)尺寸為2字節(jié)和1字節(jié)時,不被轉(zhuǎn)送的部分的數(shù)據(jù)被代碼擴(kuò)充(進(jìn)行0擴(kuò)充或1擴(kuò)充也可。)。另一方面,在從寄存器9向存儲器4進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下,在數(shù)據(jù)尺寸為2字節(jié)和1字節(jié)時,不被轉(zhuǎn)送的部分不受影響。[0111]以上,在實施方式3中,不管存儲器4的數(shù)據(jù)成為小端和大端的哪個字節(jié)序,通過在將中斷向量地址的尺寸作為單位進(jìn)行向存儲器4的訪問時以相同的數(shù)據(jù)順序儲存在寄存器中,由此與在接收中斷通知的時刻執(zhí)行的程序的數(shù)據(jù)的字節(jié)序無關(guān)地,能夠使中斷向量地址和中斷處理程序等的程序共同化。[0112]在實施方式3中,能夠根據(jù)存儲器的地址空間來設(shè)定大端和小端的區(qū)域,但與實施方式1同樣地能夠針對在微型計算機(jī)中內(nèi)置的存儲器4將整體設(shè)定為大端或小端的任一方也可。在該情況下,與實施方式3同樣地,在加電復(fù)位時將專用的模式端子的狀態(tài)、和兼作為通用I/O端口(外部端子)的模式端子的狀態(tài)導(dǎo)入微型計算機(jī),例如鎖存(latch)到寄存器,CPU1在訪問向量地址之前能夠確定數(shù)據(jù)是小端還是大端的哪一個也可。[0113](實施方式4)圖15表示具有字節(jié)序不同的外圍功能塊的微型計算機(jī)的概略,其它的結(jié)構(gòu)與實施方式3的微型計算機(jī)MCU(圖8)相同。在圖15中,記載有CPU1、總線控制器BSC、與總線控制器BSC連接的以小端進(jìn)行數(shù)據(jù)處理的小端用外圍功能塊(小端用外圍I/O裝置18、19)、以及與總線控制器BSC連接的以大端進(jìn)行數(shù)據(jù)處理的大端用外圍功能塊(大端用外圍I/O裝置15、16)。小端用外圍功能塊經(jīng)由小端用外圍數(shù)據(jù)總線17與總線控制器BSC內(nèi)的對齊器13連接,大端用外圍功能塊經(jīng)由大端用外圍數(shù)據(jù)總線14與總線控制器BSC內(nèi)的對齊器13連接。在本結(jié)構(gòu)中,小端用外圍I/O裝置19內(nèi)的轉(zhuǎn)送緩沖器TBL等、大端用外圍I/O裝置15內(nèi)的轉(zhuǎn)送緩沖器TBB等、和CPU1的I/O寄存器12(寄存器組REG中的一個寄存器。與寄存器9相同也可。),與外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸無關(guān)地,以LSB共同連接的方式連接于總線。小端用外圍I/O裝置18、19或大端用外圍I/O裝置15、16能夠通過分派到各個轉(zhuǎn)送緩沖器、寄存器的地址來判別。[0114]小端用外圍I/O裝置18、19從外部或小端用外圍數(shù)據(jù)總線17接收小端排列的數(shù)據(jù),或處理數(shù)據(jù)生成小端排列的數(shù)據(jù),向小端用外圍數(shù)據(jù)總線17輸出。[0115]大端用外圍I/O裝置15、16從外部或大端用外圍數(shù)據(jù)總線14接收大端排列的數(shù)據(jù),或處理數(shù)據(jù)生成大端排列的數(shù)據(jù),向大端用外圍數(shù)據(jù)總線14輸出。[0116]CPU1通過執(zhí)行第1程序,進(jìn)行小端用外圍I/O裝置18、19的工作控制,控制向小端用外圍I/O裝置18、19的數(shù)據(jù)輸入輸出。例如,在向小端用外圍I/O裝置18、19轉(zhuǎn)送數(shù)據(jù),將處理后的數(shù)據(jù)向存儲器4轉(zhuǎn)送的情況下,配合轉(zhuǎn)送的數(shù)據(jù)的尺寸在控制信號CNT2設(shè)定對齊器13的轉(zhuǎn)送設(shè)定信息。在大端用外圍I/O裝置15、16的數(shù)據(jù)轉(zhuǎn)送中,控制信號CNT2的設(shè)定也是同樣的。[0117]對齊器13在外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸與向這些轉(zhuǎn)送緩沖器、寄存器的訪問尺寸相同的情況下,與字節(jié)序無關(guān)地以成為相同的數(shù)據(jù)的排列的方式構(gòu)成。例如,在CPU1將在小端用外圍I/O裝置19的轉(zhuǎn)送緩沖器TBL中儲存的數(shù)據(jù)向存儲器4的第2數(shù)據(jù)區(qū)域(大端)轉(zhuǎn)送的情況下,將以轉(zhuǎn)送緩沖器的指定地址作為初始的中斷向量地址尺寸量的數(shù)據(jù),以第2數(shù)據(jù)區(qū)域的指定的地址為初始進(jìn)行儲存。在該情況下,在轉(zhuǎn)送緩沖器TBL中儲存的數(shù)據(jù)暫時被導(dǎo)入至CPU1內(nèi)的寄存器,之后被轉(zhuǎn)送至存儲器4的第2數(shù)據(jù)區(qū)域。[0118]此外,在從小端用外圍I/O裝置19向大端用外圍I/O裝置(15、16)、第2數(shù)據(jù)區(qū)域(大端)進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下,通過使小端用外圍I/O裝置19將數(shù)據(jù)儲存在轉(zhuǎn)送緩沖器時的儲存在LSB側(cè)的數(shù)據(jù)與在處理該數(shù)據(jù)CPU1的I/O寄存器12、大端用外圍I/O裝置16的轉(zhuǎn)送緩沖器TBB、大端用外圍I/O裝置15的寄存器BIREG的儲存在LSB側(cè)的數(shù)據(jù)相同,在外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸與向這些輸緩沖器、寄存器的訪問尺寸相同的情況下,能夠不需要變更在對齊器13的數(shù)據(jù)的排列。[0119]另一方面,在與外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸相比向這些輸緩沖器、寄存器的訪問尺寸小的情況下,需要對齊器13變更數(shù)據(jù)的排列。[0120]CPU1設(shè)定對齊器13的轉(zhuǎn)送設(shè)定信息的控制信號CNT2,與上述的轉(zhuǎn)送的數(shù)據(jù)的尺寸信息一起,還包含與轉(zhuǎn)送的數(shù)據(jù)的處理單位相關(guān)的信息和與轉(zhuǎn)送方向相關(guān)的信息。[0121]圖16表示對齊器13的結(jié)構(gòu)例。選擇器1A~4A和1B~4B分別被輸入控制信號CNT2,決定輸入輸出方向和部分總線彼此的連接。在外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸和向這些轉(zhuǎn)送緩沖器、寄存器的訪問尺寸相同的情況下,連接相同的位位置的數(shù)據(jù)總線彼此(小端用外圍數(shù)據(jù)總線17和大端用外圍數(shù)據(jù)總線14和CPU1/存儲器4用數(shù)據(jù)總線3的部分總線[0:8])。[0122]另一方面,在外圍I/O裝置內(nèi)的轉(zhuǎn)送緩沖器、寄存器的尺寸是2字節(jié)或4字節(jié)的情況下,在從小端用外圍數(shù)據(jù)總線17向大端用外圍數(shù)據(jù)總線14轉(zhuǎn)送以字節(jié)單位處理的數(shù)據(jù)時,以數(shù)據(jù)的排列變?yōu)橄喾吹姆绞?例如,在4字節(jié)的情況下,一方的部分總線[0:7]與另一方的部分總線[24:31],一方的部分總線[8:15]與另一方的部分總線[16:23])連接部分總線。[0123]再有,選擇器1A~4A和1B~4B以與實施方式3的選擇器1~4同樣的雙方向性開關(guān)構(gòu)成。[0124]通過像這樣構(gòu)成對齊器13,對應(yīng)于處理的字節(jié)序?qū)⑼鈬δ軌K連接于不同的總線,在經(jīng)由對齊器13連接于各個總線的外圍功能塊之間能夠進(jìn)行數(shù)據(jù)轉(zhuǎn)送。[0125]以上,在實施方式4中,不依賴于與外圍功能IP之間的成為轉(zhuǎn)送對象的數(shù)據(jù)的字節(jié)序和在控制外圍功能IP的程序的處理對象的數(shù)據(jù)的字節(jié)序,能夠以相同的數(shù)據(jù)順序進(jìn)行數(shù)據(jù)轉(zhuǎn)送,由此能夠?qū)崿F(xiàn)控制外圍功能IP的程序的共同化。[0126]進(jìn)而,與外圍功能塊的數(shù)據(jù)處理的字節(jié)序和CPU1的數(shù)據(jù)處理的字節(jié)序的異同無關(guān)地,能夠使采用在微型計算機(jī)MCU中必要的外圍功能塊的自由度提高。[0127](實施方式5)圖17表示在實施方式1、2、3、4和后述的實施方式6的微型計算機(jī)中執(zhí)行的程序的開發(fā)工具的流程概略。將以C語言等的高級語言記述的源程序用編譯器(compiler)進(jìn)行語法分析等以及最優(yōu)化,輸出以匯編語言記述的匯編語言程序。匯編器(assembler)根據(jù)從編譯器輸出的匯編語言生成機(jī)械語言,輸出機(jī)械語言程序。在鏈接編輯器(linkageeditor)將1個或多個機(jī)械語言程序結(jié)合(鏈接處理)起來,生成能夠在微型計算機(jī)執(zhí)行的程序。[0128]編譯器輸出的匯編語言程序大致分為有:作為微型計算機(jī)的CPU等執(zhí)行的指令碼的集合部的代碼部分(或代碼段);和作為在高級語言程序中記述的常數(shù)、編譯器輸出的常數(shù)等的集合部的數(shù)據(jù)部分(或數(shù)據(jù)段)。代碼部分中的指令碼如上述那樣,固定為小端或大端的任一方。另一方面,數(shù)據(jù)部分中的常數(shù)等能夠選擇小端或大端的任一方,但在高級語言程序中具有使用哪個字節(jié)序的指定指令,按照該指定指令,進(jìn)行字節(jié)序解決。[0129]如果是在高級語言或匯編語言程序中包含的常數(shù)的話,能夠通過編譯器或匯編器進(jìn)行字節(jié)序解決,但由于轉(zhuǎn)移指令的轉(zhuǎn)移目的地地址等的地址參照值在鏈接編輯器的鏈接處理時決定,所以不能進(jìn)行在編譯器或匯編器的字節(jié)序解決。這樣的地址的字節(jié)序解決通過鏈接編輯器來進(jìn)行。[0130]鏈接編輯器將1個或多個機(jī)械語言程序結(jié)合,針對在結(jié)合前的機(jī)械語言程序中作為變量名被參照的地址參照值,通過鏈接后的配置決定地址值,進(jìn)行字節(jié)序解決并作為地址常數(shù)儲存在執(zhí)行程序的數(shù)據(jù)部分中。[0131]通過上述的流程生成的可執(zhí)行程序,在微型計算機(jī)的半導(dǎo)體基板上構(gòu)成的掩模ROM或閃速存儲器等中儲存,構(gòu)成為能夠在微型計算機(jī)執(zhí)行。[0132]在與上述的實施方式3的對應(yīng)中,在從數(shù)據(jù)部分向寄存器進(jìn)行數(shù)據(jù)轉(zhuǎn)送時,輸出對應(yīng)于數(shù)據(jù)轉(zhuǎn)送尺寸進(jìn)行對齊器11的設(shè)定的控制信號CNT1,決定在數(shù)據(jù)部分中儲存的數(shù)據(jù)的排列。[0133]此外,針對包含中斷向量地址的地址參照值、地址常數(shù),設(shè)為成為相同的數(shù)據(jù)尺寸。由此,在其它的轉(zhuǎn)移指令、地址參照指令的執(zhí)行中,在以中斷向量地址尺寸取得地址信息時,與儲存的數(shù)據(jù)部分的字節(jié)序無關(guān)地,能夠適宜地取得地址信息。[0134]在與上述的實施方式4的對應(yīng)中,在外圍功能塊之間或外圍功能塊與存儲器4、寄存器之間進(jìn)行數(shù)據(jù)轉(zhuǎn)送的情況下,輸出對應(yīng)于數(shù)據(jù)轉(zhuǎn)送尺寸和該數(shù)據(jù)的處理單位來進(jìn)行對齊器13的設(shè)定的控制信號CNT2,決定數(shù)據(jù)轉(zhuǎn)送時的數(shù)據(jù)的排列。[0135]實施方式6以下,針對微型計算機(jī)MCU的處理性能的提高、代碼效率的提高、以及功耗的提高分別進(jìn)行記述。再有,代碼效率的提高指的是削減為了儲存指令所需要的存儲器容量。[0136]圖18記述了關(guān)于微型計算機(jī)MCU的處理性能的評價項目。微型計算機(jī)MCU對應(yīng)于使用的用途而被需要的處理性能存在差異,圖18是對在所謂的數(shù)字家電等的進(jìn)行比較高度的處理的設(shè)備中組裝使用的微型計算機(jī)MCU被要求的處理性能的一個例子。[0137]為了實現(xiàn)這樣的處理性能,如圖19所示,采用5級流水線處理。流水線處理如通常所知的那樣,將在CPU1的指令執(zhí)行分為多個處理階段,以時鐘的一個周期執(zhí)行各處理階段。[0138]在存儲器提取階段(memoryfetchstage),從存儲器4向指令寄存器IR提取指令。在解碼階段,對提取到指令寄存器IR的指令進(jìn)行解碼,接著在執(zhí)行階段進(jìn)行執(zhí)行指令的運算器的調(diào)度(scheduling)等。此外,在解碼階段針對N0P指令等的不需要執(zhí)行的指令,也進(jìn)行用于使流水線結(jié)束的旁路(bypass)處理、提取在運算中使用的寄存器的內(nèi)容的寄存器提取。[0139]在執(zhí)行階段,根據(jù)在解碼階段中調(diào)度的運算器和提取的寄存器的內(nèi)容進(jìn)行運算處理、地址計算。在存儲器訪問階段,在存在需要對指令進(jìn)行存儲器訪問的操作數(shù)的情況下,進(jìn)行存儲器訪問。[0140]在回寫階段(writingbackstage),將在執(zhí)行階段的運算結(jié)果儲存在寄存器,進(jìn)行針對該指令的流水線的結(jié)束處理。[0141]圖20表示微型計算機(jī)MCU的CPU1和存儲器4之間的總線結(jié)構(gòu)。如圖21所示,通過進(jìn)行流水線處理,能夠?qū)⒃贑PU1的指令執(zhí)行的各處理階段,以多個指令使不同的處理階段執(zhí)行,使每1個指令的實際處理性能提高。在該情況下,具有需要存儲器訪問的操作數(shù)的指令的存儲器訪問階段,和指令提取變?yōu)橄嗤亩〞r,產(chǎn)生存儲器訪問的競爭。因此,采用將進(jìn)行指令提取的指令總線5與操作數(shù)用的存儲器訪問總線(數(shù)據(jù)總線3)分離的哈佛結(jié)構(gòu),使存儲器訪問的競爭產(chǎn)生的機(jī)會減少。[0142]在圖20中記載的InstructionInterface相當(dāng)于圖9記載的指令寄存器IR和指令解碼器iDEC。DataInterface是與存儲器訪問總線的接口,進(jìn)行操作數(shù)用的存儲器訪問控制。[0143]通過在CPU1采用哈佛結(jié)構(gòu)和流水線處理,能夠回避CPU1進(jìn)行的存儲器訪問的競爭(指令提取和操作數(shù)提取),能夠使CPU1的指令執(zhí)行性能提高。[0144]在所謂的數(shù)字家電中,較多地存在DVD(包含高記錄密度規(guī)格)、數(shù)字TV等等的進(jìn)行活動圖像處理的設(shè)備。在活動圖像處理中按每個像素反復(fù)執(zhí)行的積和運算等的DSP(數(shù)字信號處理)運算。[0145]如圖22記載的那樣,在DSP運算中,在每個運算中將在存儲器4中儲存的每個像素的數(shù)據(jù)反復(fù)向寄存器讀出并進(jìn)行運算,將數(shù)據(jù)向寄存器讀出的處理相對于實際的運算成為開銷(overhead)。因此,能夠執(zhí)行存儲器間積和運算指令,其將在運算中使用的2個數(shù)據(jù)從存儲器4直接讀出進(jìn)行乘法,進(jìn)行與已經(jīng)運算結(jié)果的加法處理。[0146]此外,對于在寄存器中儲存完成的數(shù)據(jù)也能夠同樣地執(zhí)行進(jìn)行積和運算的寄存器間積和運算指令。[0147]在通過存儲器間積和運算指令使用在存儲器4中儲存的許多的數(shù)據(jù)的積和運算中,能夠削減從存儲器4向寄存器進(jìn)行數(shù)據(jù)轉(zhuǎn)送的時間,運算器的處理效率提高,不需要從存儲器4向寄存器進(jìn)行數(shù)據(jù)轉(zhuǎn)送的轉(zhuǎn)送指令,因此代碼效率提高。此外,通過寄存器間積和運算指令,能夠高速地執(zhí)行使用了在寄存器儲存完成的數(shù)據(jù)的積和運算,運算器的處理效率提尚。[0148]此外,在坐標(biāo)運算等中,需要反復(fù)執(zhí)行浮點運算。如圖23記載的那樣,在浮點運算器中具有與通用寄存器不同的專用數(shù)據(jù)寄存器,使用專用數(shù)據(jù)寄存器進(jìn)行運算。在這樣的運算中,將在通用寄存器中儲存的數(shù)據(jù)向?qū)S眉拇嫫鬓D(zhuǎn)送的處理成為開銷。因此,構(gòu)成為浮點運算器能夠直接訪問在通用寄存器中儲存的數(shù)據(jù),進(jìn)行運算。通過這樣的結(jié)構(gòu),能夠削減從通用寄存器向?qū)S眉拇嫫鞯臄?shù)據(jù)轉(zhuǎn)送處理,運算器的處理效率提高,不需要從通用寄存器向?qū)S眉拇嫫鬟M(jìn)行數(shù)據(jù)轉(zhuǎn)送的轉(zhuǎn)送指令,因此代碼效率提高。[0149]圖24表示使用積和運算器與浮點運算器的其它的運算例。[0150]在將外部傳感器等的模擬信號通過A/D轉(zhuǎn)換器進(jìn)行數(shù)字變換并儲存在存儲器4中之后,能夠使用在存儲器4中儲存的數(shù)字變換后的傳感器信息和在存儲器4中儲存的濾波運算系數(shù),進(jìn)行根據(jù)存儲器間積和運算指令的濾波運算,進(jìn)行在數(shù)字變換后的傳感器信息中包含的噪聲的除去。[0151]在對電動機(jī)供給PWM(脈沖寬度調(diào)制,pulsewavemodulation)波形進(jìn)行旋轉(zhuǎn)控制的電動機(jī)控制中,將從電動機(jī)的各相位(U/V/W相)輸出的電動機(jī)電流通過A/D轉(zhuǎn)換器進(jìn)行數(shù)字變換并儲存在寄存器中之后,進(jìn)行利用寄存器間積和運算指令的坐標(biāo)變換。在浮點運算器對儲存于通用寄存器的積和運算結(jié)果進(jìn)行PID(比例/積分/微分)控制運算之后,通過寄存器間積和運算指令對通用寄存器的控制運算結(jié)果再次進(jìn)行坐標(biāo)變換,作為電動機(jī)控制信號對電動機(jī)供給PWM波形。通過這樣的運算,能夠反復(fù)進(jìn)行使用了通用寄存器的運算,與使用專用寄存器的運算相比能夠以短時間間隔進(jìn)行電動機(jī)控制。[0152]圖25是分析用戶的應(yīng)用(application)中出現(xiàn)頻度高的指令的圖。通過針對頻出指令減小指令尺寸,能夠減小用戶應(yīng)用的執(zhí)行程序尺寸,能夠謀求代碼效率的提高。此外,通過將出現(xiàn)頻度高的指令作為對于用戶容易使用的指令,能夠?qū)е逻m用性的提高。[0153]圖26是出現(xiàn)頻度高并減小了指令尺寸的指令的一例。[0154]在與程序中的環(huán)路(loop)處理、變量的值對應(yīng)的多方向轉(zhuǎn)移中,作為對應(yīng)于環(huán)路條件的成立/非成立、變量的值進(jìn)行轉(zhuǎn)移時使用的轉(zhuǎn)移指令,有在相對地址中指定轉(zhuǎn)移目的地地址的BEQ(條件成立轉(zhuǎn)移)、BNE(條件非成立轉(zhuǎn)移)、BRA(無條件成立轉(zhuǎn)移)。[0155]在這些指令的工作中,有轉(zhuǎn)移的存儲器4內(nèi)的地址距離比較短的,配合轉(zhuǎn)移距離為8字節(jié)以內(nèi)、256字節(jié)以內(nèi)、65434字節(jié)以內(nèi)的各情況,作為轉(zhuǎn)移指令的代碼尺寸,能夠采用1字節(jié)、2字節(jié)、3字節(jié)的指令。由此,與轉(zhuǎn)移距離對應(yīng)的用戶的選擇自由度變高,能夠謀求代碼效率的提尚。[0156]在將在寄存器中儲存的地址值作為基準(zhǔn)指定相對位移值的寄存器間接尋址的轉(zhuǎn)送指令、在立即值(immediatevalue)和寄存器之間進(jìn)行運算的比較指令、加法指令中,配合作為以寄存器儲存值為基準(zhǔn)的相對位移值和立即值能夠指定的值的范圍,能在2字節(jié)~8字節(jié)中選擇指令的代碼尺寸。[0157]或者,在能夠指定寄存器儲存值中的在運算中使用的數(shù)據(jù)寬度的運算指令中,配合作為該數(shù)據(jù)寬度能夠指定的值的范圍,在乘法指令中能夠在2字節(jié)~6字節(jié)中選擇代碼尺寸,或者在除法指令中能夠在3字節(jié)~7字節(jié)中選擇代碼尺寸。[0158]此外,在子例程轉(zhuǎn)移指令中,通過程序計數(shù)器存儲值+寄存器存儲值運算求取轉(zhuǎn)移目的地地址,能夠在2~4字節(jié)中選擇指令的代碼尺寸。[0159]圖27表示帶索引的寄存器間接尋址的例子。[0160]在帶索引的寄存器間接尋址中,進(jìn)行儲存了基地址(baseaddress)的寄存器和儲存了偏移地址(offsetaddress)的寄存器的加法,對求取的地址進(jìn)行數(shù)據(jù)轉(zhuǎn)送等。在該情況下,在有字節(jié)尺寸指定的情況下,直接進(jìn)行偏移地址和基地址的加法,在有長字尺寸(longwordsize)指定的情況下,進(jìn)行使偏移地址為4倍后的值與基地址的加法。通過采用這樣的尋址指定,在字節(jié)尺寸指定中能夠謀求偏移地址和基地址的加法指令的削減,在長字尺寸指定中能夠謀求偏移地址的4倍化運算(2位左移位運算)指令、偏移地址和基地址的加法指令的削減,代碼效率提高。[0161]圖28表示帶算后增量(postincrement)/算前減量(pre-decrement)功能的寄存器間接尋址的例子。[0162]算后增量/算前減量主要在對具有規(guī)定數(shù)量的條目(entry)的表中儲存的值進(jìn)行運算的情況下使用。使用算后增量和算前增量的哪一個,是在從表的低位側(cè)地址起進(jìn)行運算的情況下使用算后增量,在從表的高位側(cè)地址起進(jìn)行運算的情況下使用算前增量。在從表的低位側(cè)地址起進(jìn)行運算的情況下,對在最初的表條目中儲存的值進(jìn)行運算之后,需要進(jìn)行參照下一個表條目的值的地址的加法。通過算后增量/算前增量功能,能夠以對儲存在該表條目中的值進(jìn)行運算的運算指令進(jìn)行參照表條目的地址的加法/減法,能夠謀求進(jìn)行參照地址的加法/減法的指令的削減,代碼效率提高。[0163]圖29表示能夠指定3操作數(shù)的運算的例子。[0164]在執(zhí)行作為操作數(shù)指定2個寄存器等的加法指令的情況下,將加法值和被加法值預(yù)先儲存在各個寄存器,將加法結(jié)果儲存在儲存有被加法值的寄存器中。在這樣的運算工作中,在其它的運算中也利用被加法值的情況下,需要在其它的寄存器或者存儲器4中預(yù)先儲存被加法值,在每個運算中將被加法值轉(zhuǎn)送到被加法值儲存寄存器。[0165]通過在寄存器等能夠指定3操作數(shù),能夠指定為將運算結(jié)果儲存在與被加法值儲存寄存器不同的寄存器中,能夠謀求在每個運算中向被加法值儲存寄存器轉(zhuǎn)送被加法值的指令的削減,代碼效率提高。[0166]圖23表示微型計算機(jī)MCU的寄存器結(jié)構(gòu)的一例。微型計算機(jī)MCU具有主要用于運算的通用寄存器,和用于微型計算機(jī)MCU的工作控制的控制寄存器。[0167]對通用寄存器的基本的尺寸(32bit),存在以能夠作為用于8bit數(shù)據(jù)、16bit數(shù)據(jù)的運算的8bit寄存器、16bit寄存器而使用的方式進(jìn)行分割的情況??墒牵诒緦嵤┓绞降奈⑿陀嬎銠C(jī)MCU中,不進(jìn)行這樣的寄存器的分割,將全部的寄存器僅在成為基本的32bit進(jìn)行使用。[0168]在分割寄存器的情況下,由于需要成為運算對象的部分寄存器和不成為運算對象的部分寄存器的訪問控制,所以寄存器控制電路變得復(fù)雜,招致寄存器訪問的時間開銷和功耗的增大。通用寄存器在指令執(zhí)行中被訪問的情況很多,即使是寄存器訪問的時間開銷和功耗的增大在每一次中僅是微小的,但在程序執(zhí)行整體中時間開銷和功耗變大。[0169]通過不采用寄存器的分割,能夠謀求寄存器訪問的時間開銷和功耗的降低。此外,由于通用寄存器的尺寸被統(tǒng)一,所以在以編譯器從高級語言向匯編語言的編譯處理中能夠使用的寄存器的自由度變高,通用寄存器的使用效率提高,因此能夠降低向存儲器4的訪問頻度。在這些方面,也能夠謀求指令執(zhí)行中的存儲器訪問開銷和功耗的降低。[0170]在控制寄存器中,具有:在中斷處理、子例程處理中的棧指示器(stackpointer,ISP、USP)、表示中斷表的配置地址的中斷表寄存器(INTB);表示執(zhí)行中的指令地址的程序計數(shù)器(PC)和表示指令執(zhí)行中的狀態(tài)的處理機(jī)狀態(tài)字(PSW);表示浮點運算器和其它的協(xié)處理器的執(zhí)行狀態(tài)的浮點狀態(tài)字(FPSW、CPEN)。作為用于進(jìn)行更高速中斷處理的專用寄存器,具有:對PSW和PC進(jìn)行備份的備份PSW(BPSW)和備份PC(BPC);高速中斷處理中的高速中斷向量地址(FINTV)。[0171]圖31、圖32和圖33表示中斷處理的高速化的情況。[0172]圖31表示高速中斷處理的時序。在通常的中斷處理中,對應(yīng)于來自中斷控制器INTC的中斷通知,使PSW和PC分別退避到棧區(qū)域,進(jìn)行與中斷要因?qū)?yīng)的向量表的讀出,取得中斷處理例程的地址,對該中斷處理例程進(jìn)行轉(zhuǎn)移。此外,在通知多個中斷通知或在已經(jīng)進(jìn)行中斷處理的狀態(tài)下通知了其它中斷通知的情況下,判定中斷處理的處理優(yōu)先次序,對應(yīng)于優(yōu)先處理的中斷處理,進(jìn)行中斷屏蔽等的標(biāo)簽設(shè)定處理。在這些處理中,由于棧區(qū)域和中斷向量表被分配到存儲器4,在所以PSW和PC的向棧區(qū)域的退避和向量表讀出需要存儲器訪問的時間。[0173]在高速中斷處理中,不是將PSW和PC退避到棧區(qū)域,向中斷向量表進(jìn)行訪問,而是分別退避到作為控制寄存器而準(zhǔn)備的備份PSW和備份BPC,向在高速中斷向量地址中儲存的中斷處理例程轉(zhuǎn)移。通過這樣的處理,在高速中斷處理中能夠削減存儲器訪問,能夠使向中斷處理的轉(zhuǎn)移高速化。[0174]圖32表示中斷處理中的通用寄存器的分配。在通常的中斷處理中,在向中斷處理轉(zhuǎn)移之前在應(yīng)用中使用的通用寄存器中儲存的數(shù)據(jù)在中斷處理中被改寫,在從中斷處理恢復(fù)之后的應(yīng)用的繼續(xù)執(zhí)行中,以不發(fā)生故障的方式,將在通用寄存器中儲存的數(shù)據(jù)退避到棧區(qū)域或者將在轉(zhuǎn)移到中斷處理時使用的寄存器庫(registerbank)切換為不同的庫。該向棧區(qū)域的退避產(chǎn)生存儲器訪問,此外寄存器庫的切換在實際上通過將在寄存器中儲存的數(shù)據(jù)向存儲器4的區(qū)域退避來實現(xiàn)。[0175]為了對向中斷處理的轉(zhuǎn)移進(jìn)行高速化,將通用寄存器分別向應(yīng)用用寄存器和中斷用寄存器房分配,以在應(yīng)用執(zhí)行中使用分配為應(yīng)用用的寄存器,在中斷處理的執(zhí)行中使用中斷用寄存器的方式進(jìn)行控制。通過能夠在程序中對應(yīng)用用寄存器和中斷處理用寄存器進(jìn)行分配設(shè)定,寄存器的分配的自由度提高,此外,不需要通用寄存器的退避,能夠使中斷處理的執(zhí)行開始高速化。[0176]如圖33所示,通過PSW和PC的退避以及中斷向量地址取得中的存儲器訪問的削減(高速中斷處理)、和從應(yīng)用用寄存器向中斷用寄存器的通用寄存器的切換(通用寄存器分配),能夠縮短在進(jìn)行中斷通知后到與該中斷通知對應(yīng)的中斷處理開始前的時間,提高微型計算機(jī)MCU的程序執(zhí)行效率。[0177]圖34表示存儲器保護(hù)。在應(yīng)用A和應(yīng)用B分別被分配為應(yīng)用A用存儲器區(qū)域和應(yīng)用B用存儲器區(qū)域的情況下,在發(fā)生應(yīng)用A錯誤地訪問應(yīng)用B用存儲器區(qū)域并改寫在應(yīng)用B中使用的數(shù)據(jù),或者從應(yīng)用A錯誤地轉(zhuǎn)移到應(yīng)用B等的情況下,應(yīng)用B的執(zhí)行工作變得不穩(wěn)定,作為微型計算機(jī)MCU整體的工作也變得不穩(wěn)定。[0178]為了防止這樣的事態(tài)的發(fā)生,具有存儲器保護(hù)單元,防止應(yīng)用A訪問應(yīng)用B用的存儲器區(qū)域,或從應(yīng)用A向應(yīng)用B轉(zhuǎn)移等。由此,防止應(yīng)用B的執(zhí)行工作變得不穩(wěn)定,能夠使作為微型計算機(jī)MCU整體的工作穩(wěn)定化。[0179]圖35表示字節(jié)序變換指令的一例。[0180]作為實施方式3和實施方式4,針對數(shù)據(jù)的雙端處理進(jìn)行了記述,但也發(fā)生如下情況,即,將作為小端進(jìn)行數(shù)據(jù)處理的存儲器區(qū)域中儲存的數(shù)據(jù)讀出到通用寄存器進(jìn)行規(guī)定的運算后,向作為大端被數(shù)據(jù)處理的存儲器區(qū)域或大端用外圍I/O裝置進(jìn)行數(shù)據(jù)的轉(zhuǎn)送。在這樣的情況下,通過對向?qū)R器11的控制信號CNT1或向?qū)R器13的控制信號CNT2進(jìn)行設(shè)定,能夠變更在對齊器11或?qū)R器13的數(shù)據(jù)的排列。在某種程度連續(xù)地進(jìn)行數(shù)據(jù)的變換的情況下,通過對齊器11或?qū)R器13,變更數(shù)據(jù)的排列是有效的。[0181]另一方面,在將數(shù)據(jù)交替地變換為小端和大端并儲存在存儲器區(qū)域中的情況下,需要以交替地進(jìn)行字節(jié)序變換的方式對對齊器11或?qū)R器13進(jìn)行設(shè)定。在這樣的情況下,通過字節(jié)序變換指令在寄存器內(nèi)變換數(shù)據(jù)的字節(jié)序,不變更對齊器11和對齊器11的設(shè)定,有時能夠降低與對齊器11或?qū)R器13的設(shè)定變更相關(guān)的功耗。[0182]圖36、37和圖38表示針對用于微型計算機(jī)MCU的低功耗化的設(shè)計方法的例子。[0183]觸發(fā)器(flip-flop)等的進(jìn)行時鐘同步工作的邏輯元件、配置在時鐘供給路徑的時鐘驅(qū)動器只要被供給時鐘就流過電流,因此需要對不使用的電路停止時鐘的供給。因此,如圖36所示,在進(jìn)行微型計算機(jī)MCU的邏輯合成的時刻插入時鐘門控(clockgating)電路,能夠停止時鐘供給。[0184]接著,在時鐘同步設(shè)計中,在以被進(jìn)行時鐘同步工作的觸發(fā)器夾著的方式配置進(jìn)行時鐘非同步工作的邏輯元件的情況下,產(chǎn)生在觸發(fā)器間發(fā)生時序違規(guī)的路徑(關(guān)鍵路徑),需要消除這樣的時序違規(guī)。如圖37所示,最初使用低速的高閾值電壓/低漏電流的邏輯元件進(jìn)行時鐘同步設(shè)計,僅對關(guān)鍵路徑使用低閾值電壓/高漏電流的高速的邏輯元件,謀求消除時序違規(guī)。通過這樣的時鐘同步設(shè)計,構(gòu)成微型計算機(jī)MCU的許多邏輯元件成為低功耗的邏輯元件,在低功耗邏輯元件中,在產(chǎn)生時序違規(guī)的路徑中使用更高功耗更高速的邏輯元件,能夠進(jìn)行作為整體成為低功耗的微型計算機(jī)MCU的時鐘同步設(shè)計。[0185]此外,如圖38所示,將微型計算機(jī)MCU的內(nèi)部分割為多個電源域,以停止對不工作的電源域的電源供給的方式,具有多個低功耗模式。在該情況下,微型計算機(jī)MCU內(nèi)部的內(nèi)置調(diào)節(jié)器(regulator)對電源域分別供給電源,從內(nèi)置調(diào)節(jié)器到電源域之間配置向該電源域進(jìn)行電源供給或停止的開關(guān)電路。[0186]圖39是表示在作為儲存程序的ROM使用Flash存儲器的情況下的、Flash存儲器的訪問速度對微型計算機(jī)MCU的處理性能造成的影響的圖。在微型計算機(jī)MCU中使用能夠以30MHz進(jìn)行讀出工作的Flash存儲器的情況下,即使令微型計算機(jī)MCU在100MHz的時鐘進(jìn)行工作,每個指令提取中需要多個時鐘周期的等待工作,程序的實效的執(zhí)行性能從100MHz大幅降低。[0187]為了回避這樣的執(zhí)行性能的降低,考慮在Flash存儲器和CPU1之間配置指令高速緩沖存儲器。通過配置指令高速緩沖存儲器,在CPU1提取在指令高速緩沖存儲器中儲存的指令的情況下(高速緩存命中,cachehit)能夠進(jìn)行1時鐘周期的指令提取,但在指令沒有儲存在指令高速緩沖存儲器中的情況下(高速緩存不命中,cachemishit)需要多個時鐘周期的等待工作,此外,需要指令高速緩沖存儲器所占的面積。[0188]通過Flash存儲器的存儲器陣列結(jié)構(gòu)、地址解碼器等的外圍邏輯電路的高速化,F(xiàn)lash存儲器變得能夠在100MHz進(jìn)行工作,即使CPU1不具有指令高速緩沖存儲器,也能夠進(jìn)行每個時鐘周期工作。此外,在微型計算機(jī)MCU的工作時鐘更高速化的情況下,也能夠削減產(chǎn)生高速緩存不命中的情況下的等待的時鐘周期數(shù)量。[0189]實施方式6中記載的微型計算機(jī)MCU、CPU1的結(jié)構(gòu)、功能、工作等,不用說也能夠應(yīng)用于實施方式1~4的微型計算機(jī)MCU、CPU1。[0190]以上,詳細(xì)地公開并記述了本發(fā)明的實施方式,但以上的記述只是對本發(fā)明的能夠應(yīng)用的方面進(jìn)行例示,并不限定本發(fā)明。即,能夠認(rèn)為對于記述的方面的各種修正、變形例在不脫離本發(fā)明的范圍的范圍內(nèi)。[0191]附圖標(biāo)記說明1CPU、2地址總線、3數(shù)據(jù)總線、4存儲器、5指令總線、9寄存器、11、13對齊器、14大端用外圍數(shù)據(jù)總線、17小端用外圍數(shù)據(jù)總線、BSC總線控制器、INTC中斷控制器、PC程序計數(shù)器、IR指令寄存器、iDec指令解碼器?!局鳈?quán)項】1.一種數(shù)據(jù)處理裝置,其特征在于,具備:CPU,其具備寄存器;指令總線,其字節(jié)序被固定為小端和大端中的一方,并且其轉(zhuǎn)送信號量是N位,具備連接于所述CPU的一端,并且經(jīng)由信號線與第1儲存區(qū)域連接,該第1儲存區(qū)域儲存有能夠進(jìn)行數(shù)據(jù)的讀出和寫入的第1存儲器內(nèi)的指令碼;數(shù)據(jù)總線,對其字節(jié)序被可變地設(shè)定為所述小端和所述大端中的任一種的所述數(shù)據(jù)進(jìn)行轉(zhuǎn)送,并且其1次的轉(zhuǎn)送信號量的最大值是所述N位,所述數(shù)據(jù)總線通過k根信號線構(gòu)成,所述k根信號線與所述第1存儲器內(nèi)的、以字節(jié)單位儲存所述數(shù)據(jù)且具有k(N=8Xk:k是正整數(shù))個地址的儲存區(qū)域的各地址連接;以及對齊器,對應(yīng)于所述CPU輸出的控制信號,連接所述數(shù)據(jù)總線的所述k根信號線、和所述寄存器內(nèi)的、以字節(jié)單位儲存所述數(shù)據(jù)的k個地址,所述CPU也與存儲向量表的非易失性的第2存儲器的輸出端電連接,該向量表具備其各個尺寸是所述N位的多個向量地址,所述向量表將復(fù)位信號的接收、或除了所述復(fù)位信號的接收之外的特定的中斷處理請求的接收的任一個作為要因,將所述N位的對應(yīng)的向量地址輸出到所述CPU,由此在所述CPU對所述第2存儲器的所述向量表進(jìn)行操作數(shù)訪問時,所述CPU基于所述對應(yīng)的向量地址進(jìn)行指令提取,并且所述CPU在執(zhí)行從所述第1存儲器提取的指令碼之前,在對所述第1存儲器進(jìn)行最大為所述N位的數(shù)據(jù)量的訪問時,以數(shù)據(jù)在所述寄存器內(nèi),在與對應(yīng)于所述指令總線的字節(jié)序的種類而決定的地址同樣的地址、且總是以同一數(shù)據(jù)對齊進(jìn)行儲存的方式,通過所述控制信號控制所述對齊器的工作。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理裝置,其特征在于,所述第1存儲器和所述第2存儲器均作為所述數(shù)據(jù)處理裝置的結(jié)構(gòu)要素,在與所述CPU同一或其它的任一個半導(dǎo)體芯片上搭載。3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理裝置,其特征在于,將所述CPU外圍的各I/O裝置和所述CPU間的數(shù)據(jù)總線,分離為小端專用的數(shù)據(jù)總線和大端專用的數(shù)據(jù)總線。4.一種半導(dǎo)體集成電路裝置,其特征在于,具備:CPU;第1和第2總線;以及第1和第2對齊器,配置在所述CPU和所述第1及第2總線之間,在所述第1總線連接有第1處理部,所述第1處理部以小端進(jìn)行數(shù)據(jù)訪問,在所述第2總線連接有第2處理部,所述第2處理部以大端進(jìn)行數(shù)據(jù)訪問,所述CPU在執(zhí)行程序時從存儲器取得指令碼,進(jìn)行與該指令碼對應(yīng)的工作,所述指令碼被設(shè)為小端或大端的任一方的被決定的字節(jié)序,所述第1對齊器將來自所述第1處理部的小端的數(shù)據(jù)對應(yīng)于在所述CPU執(zhí)行的程序的數(shù)據(jù)的字節(jié)序變更字節(jié)順序,或者將來自所述CPU的數(shù)據(jù)變更為小端的字節(jié)順序,所述第2對齊器將來自所述第2處理部的大端的數(shù)據(jù)對應(yīng)于在所述CPU執(zhí)行的程序的數(shù)據(jù)的字節(jié)序變更字節(jié)順序,或者將來自所述CPU的數(shù)據(jù)變更為大端的字節(jié)順序。5.根據(jù)權(quán)利要求4所述的半導(dǎo)體集成電路裝置,其特征在于,來自所述第1處理部的小端的數(shù)據(jù)和來自所述第2處理部的大端的數(shù)據(jù)在向量地址信息表示的N位(N=8Xk:k是2以上的正整數(shù))長中成為相同的字節(jié)順序。6.-種半導(dǎo)體集成電路裝置,其中,具備:CPU,其具有寄存器;總線;中斷控制部;以及存儲器,CPU經(jīng)由所述總線從所述存儲器取得指令,進(jìn)行與該指令對應(yīng)的工作控制,為了對應(yīng)于來自所述中斷控制部的中斷通知進(jìn)行與該中斷通知對應(yīng)的處理,取得中斷處理程序的儲存地址,所述存儲器被分割為:第1區(qū)域,儲存第1程序和在所述第1程序的處理中使用的第1數(shù)據(jù);第2區(qū)域,儲存第2程序和在所述第2程序的處理中使用的第2數(shù)據(jù);第3區(qū)域,儲存所述中斷處理程序;以及第4區(qū)域,儲存所述中斷處理程序的儲存地址,所述第1程序和所述第2程序在各個處理中的數(shù)據(jù)的字節(jié)序不同,與是所述第1程序的執(zhí)行中還是所述第2程序的執(zhí)行中無關(guān)地,在用于從所述存儲器取得所述中斷處理程序的儲存地址的數(shù)據(jù)轉(zhuǎn)送中,能夠不變更從所述存儲器向所述總線輸出的數(shù)據(jù)的字節(jié)單位的順序來取得。7.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路裝置,其中,所述中斷處理程序的儲存地址是經(jīng)由所述總線在一次數(shù)據(jù)轉(zhuǎn)送中能夠轉(zhuǎn)送的數(shù)據(jù)尺寸,所述中斷處理程序的儲存地址通過一次數(shù)據(jù)轉(zhuǎn)送向所述CPU轉(zhuǎn)送。8.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路裝置,其中,在所述第1程序的執(zhí)行中以與所述中斷處理程序的儲存地址相同數(shù)據(jù)尺寸通過一次的數(shù)據(jù)轉(zhuǎn)送取得所述第1數(shù)據(jù)的情況下,和在所述第2程序的執(zhí)行中以與所述中斷處理程序的儲存地址相同數(shù)據(jù)尺寸通過一次的數(shù)據(jù)轉(zhuǎn)送取得所述第2數(shù)據(jù)的情況下,能夠不變更從所述存儲器對所述總線輸出的數(shù)據(jù)的字節(jié)單位的順序而向所述寄存器轉(zhuǎn)送進(jìn)行處理,在所述第1程序的執(zhí)行中以與所述中斷處理程序的儲存地址不同數(shù)據(jù)尺寸通過一次的數(shù)據(jù)轉(zhuǎn)送取得所述第1數(shù)據(jù)的情況下,和在所述第2程序的執(zhí)行中以與所述中斷處理程序的儲存地址不同數(shù)據(jù)尺寸通過一次的數(shù)據(jù)轉(zhuǎn)送取得所述第2數(shù)據(jù)的情況下,能夠通過變更從所述存儲器對所述總線輸出的數(shù)據(jù)的字節(jié)單位的順序并向所述寄存器轉(zhuǎn)送來進(jìn)行處理。9.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路裝置,其中,所述總線具有:指令總線,為了取得所述指令而使用;以及數(shù)據(jù)總線,用于所述第1數(shù)據(jù)或所述第2數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)送,使用所述數(shù)據(jù)總線,進(jìn)行與所述中斷通知對應(yīng)的所述中斷處理程序的儲存地址的取得。10.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路裝置,其中,所述總線連接于對齊器,該對齊器用于在與存儲器之間的數(shù)據(jù)轉(zhuǎn)送中變更數(shù)據(jù)的字節(jié)單位的順序。11.根據(jù)權(quán)利要求10所述的半導(dǎo)體集成電路裝置,其中,所述對齊器被供給控制信號,該控制信號根據(jù)是所述第1數(shù)據(jù)的取得還是所述第2數(shù)據(jù)的取得的識別信息和表示數(shù)據(jù)轉(zhuǎn)送尺寸的信息而生成,控制數(shù)據(jù)的字節(jié)單位的順序的變更。12.根據(jù)權(quán)利要求6所述的半導(dǎo)體集成電路裝置,其中,所述總線連接于第2對齊器,所述第2對齊器經(jīng)由第1外圍總線連接于第1外圍電路,經(jīng)由第2外圍總線連接于第2外圍電路,所述第1外圍電路和所述第2外圍電路在各個處理中的數(shù)據(jù)的字節(jié)序不同,所述第2對齊器在所述第1外圍電路或所述第2外圍電路與所述寄存器或所述存儲器之間的數(shù)據(jù)轉(zhuǎn)送中,在以用于取得所述中斷處理程序的儲存地址的數(shù)據(jù)轉(zhuǎn)送尺寸的數(shù)據(jù)轉(zhuǎn)送中,進(jìn)行數(shù)據(jù)轉(zhuǎn)送的控制,該數(shù)據(jù)轉(zhuǎn)送的控制不變更輸出到所述第1外圍總線或所述第2外圍總線的數(shù)據(jù)的字節(jié)單位的順序,在以與用于取得所述中斷處理程序的儲存地址的數(shù)據(jù)轉(zhuǎn)送尺寸不同的轉(zhuǎn)送尺寸的數(shù)據(jù)轉(zhuǎn)送中,進(jìn)行數(shù)據(jù)轉(zhuǎn)送的控制,該數(shù)據(jù)轉(zhuǎn)送的控制變更輸出到所述第1外圍總線或所述第2外圍總線的任一方的數(shù)據(jù)的字節(jié)單位的順序。13.根據(jù)權(quán)利要求12所述的半導(dǎo)體集成電路裝置,其中,所述第1外圍電路通過所述第1程序被控制,所述第2外圍電路通過所述第2程序被控制?!疚臋n編號】G06F12/04GK105893270SQ201510321721【公開日】2016年8月24日【申請日】2009年5月28日【發(fā)明人】石川直,豬狩誠司,永山博美【申請人】瑞薩電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1