微型計(jì)算機(jī)及非易失性半導(dǎo)體裝置制造方法
【專利摘要】程序計(jì)數(shù)器(12)通過(guò)加上第1值或第2值來(lái)更新地址。代碼選擇電路(14)根據(jù)程序計(jì)數(shù)器(12)的地址,選擇插入代碼寄存器組塊(17)內(nèi)的由程序計(jì)數(shù)器(12)指定的地址所對(duì)應(yīng)的插入代碼或閃存控制代碼用ROM(13)內(nèi)的由程序計(jì)數(shù)器(12)指定的地址的源代碼中的某一個(gè)。命令執(zhí)行部(15)執(zhí)行所選擇的代碼。多個(gè)源代碼及插入代碼中的至少1個(gè)是多循環(huán)命令。程序計(jì)數(shù)器(14)在執(zhí)行多循環(huán)命令時(shí),停止地址的更新。
【專利說(shuō)明】微型計(jì)算機(jī)及非易失性半導(dǎo)體裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及微型計(jì)算機(jī)及非易失性半導(dǎo)體裝置,尤其涉及具備向原始的代碼中插 入追加的代碼的功能的微型計(jì)算機(jī)及非易失性半導(dǎo)體裝置。
【背景技術(shù)】
[0002] -直以來(lái),已知有對(duì)記錄在微型計(jì)算機(jī)的ROM (Read Only Memory,只讀存儲(chǔ)器)的 程序進(jìn)行變更的方法。
[0003] 專利文獻(xiàn)1 (日本特開(kāi)平10-27704號(hào)公報(bào))的裝置具備修正地址寄存器和比較電 路。專利文獻(xiàn)1的裝置具備如下結(jié)構(gòu):將ROM取得地址和修正地址寄存器的值通過(guò)比較電 路進(jìn)行比較,并將其結(jié)果向命令譯碼器發(fā)送,在命令譯碼器中檢測(cè)比較電路中的一致性后, 通過(guò)微命令的執(zhí)行而從RAM上的預(yù)定的地址取得修正程序的開(kāi)始地址,使程序的執(zhí)行向該 RAM內(nèi)的修正程序的開(kāi)始地點(diǎn)分支。
[0004] 專利文獻(xiàn)2(日本特開(kāi)平8-95946號(hào)公報(bào))的裝置具備命令隊(duì)列、取得指示器 (fetch pointer)、存儲(chǔ)內(nèi)置ROM的故障部分的地址的寄存器、通過(guò)對(duì)寄存器與取得指示器 的內(nèi)容進(jìn)行比較的比較電路的輸出結(jié)果來(lái)輸出存儲(chǔ)器上的程序或特定的分支命令的選擇 電路。在取得指示器的內(nèi)容與寄存器的內(nèi)容一致的時(shí)刻,從選擇電路向分支命令傳送命令 隊(duì)列,CPU通過(guò)該分支命令的執(zhí)行而向修正程序轉(zhuǎn)移,避免故障部分的執(zhí)行。
[0005] 專利文獻(xiàn)3(日本特開(kāi)2004-46318號(hào)公報(bào))的裝置具備:存儲(chǔ)器,存儲(chǔ)有命令數(shù)據(jù) 列;CPU,具有命令寄存器及表示特定命令地址的程序計(jì)數(shù)器,該特定命令地址存儲(chǔ)有在存 儲(chǔ)器內(nèi)存儲(chǔ)的命令數(shù)據(jù)中應(yīng)向命令寄存器輸出的特定命令數(shù)據(jù)。而且,該裝置具備追加命 令存儲(chǔ)單元,該追加命令存儲(chǔ)單元能夠從外部寫(xiě)入,并且能夠存儲(chǔ)由向命令數(shù)據(jù)列追加的 追加命令數(shù)據(jù)和表示追加該追加命令數(shù)據(jù)的位置的追加地址構(gòu)成的數(shù)據(jù)-地址對(duì),該裝置 對(duì)程序計(jì)數(shù)器表示的特定命令地址和存儲(chǔ)于追加命令存儲(chǔ)單元的追加地址進(jìn)行比較來(lái)選 擇特定命令數(shù)據(jù)和追加命令數(shù)據(jù)中的任意一個(gè)。在特定命令地址與追加地址一致時(shí),程序 計(jì)數(shù)器停止特定命令地址的更新。
[0006] 現(xiàn)有技術(shù)文獻(xiàn)
[0007] 專利文獻(xiàn)
[0008] 專利文獻(xiàn)1 :日本特開(kāi)平10-27704號(hào)公報(bào)
[0009] 專利文獻(xiàn)2 :日本特開(kāi)平8-95946號(hào)公報(bào)
[0010] 專利文獻(xiàn)3 :日本特開(kāi)2004-46318號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0011] 發(fā)明要解決的課題
[0012] 然而,在專利文獻(xiàn)1及專利文獻(xiàn)2的裝置中,雖然能夠進(jìn)行代碼的插入和變更,但 是存在所需的硬件量較大的問(wèn)題。而且,因與分支跳轉(zhuǎn)相伴的額外時(shí)間而導(dǎo)致裝置的性能 劣化。
[0013] 在專利文獻(xiàn)3的裝置中,雖然能夠進(jìn)行代碼的插入,但是在插入代碼時(shí)程序計(jì)數(shù) 器停止1循環(huán),因此難以適用于多循環(huán)命令。其他課題和新特征通過(guò)本說(shuō)明書(shū)的記述及附 圖而明確可知。
[0014] 用于解決課題的方案
[0015] 本實(shí)施的一種實(shí)施方式的微型計(jì)算機(jī)具備:程序計(jì)數(shù)器,通過(guò)加上第1值或第2值 來(lái)更新地址,在執(zhí)行多循環(huán)命令時(shí),停止地址的更新;選擇電路,根據(jù)程序計(jì)數(shù)器的地址,選 擇寄存器內(nèi)的由程序計(jì)數(shù)器指定的地址所對(duì)應(yīng)的插入代碼或ROM內(nèi)的由程序計(jì)數(shù)器指定 的地址的源代碼中的某一個(gè);以及命令執(zhí)行部,執(zhí)行由選擇電路選擇的代碼。
[0016] 發(fā)明效果
[0017] 根據(jù)本發(fā)明的一種實(shí)施方式的微型計(jì)算機(jī)及非易失性半導(dǎo)體裝置,能夠進(jìn)行代碼 的插入且能夠執(zhí)行多循環(huán)命令。
【專利附圖】
【附圖說(shuō)明】
[0018] 圖1 (a)是表示記錄于ROM的代碼(源代碼)和插入的代碼的例子的圖。圖1 (b) 是表示具備代碼變更功能的微型計(jì)算機(jī)A的變更后的代碼的圖。圖1(c)是表示具備代碼 插入功能的微型計(jì)算機(jī)B的ROM的變更后的代碼的圖。
[0019] 圖2 (a)是表示記錄于ROM的代碼(源代碼)和變更的代碼的例子的圖。圖2 (b) 是表示具備代碼變更功能的微型計(jì)算機(jī)A的變更后的代碼的圖。圖2(c)是表示具備代碼 插入功能的微型計(jì)算機(jī)B的變更后的代碼的圖。
[0020] 圖3(a)是表示單循環(huán)方式下的命令的取得及執(zhí)行的時(shí)機(jī)的圖。圖3(b)是表示多 循環(huán)方式下的命令的取得及執(zhí)行的時(shí)機(jī)的圖。
[0021] 圖4是在專利文獻(xiàn)3中,在記錄于ROM的代碼(源代碼)的一部分為多循環(huán)命令 的情況下插入單循環(huán)命令時(shí)的時(shí)序圖。
[0022] 圖5 (a)是在記錄于ROM的代碼(源代碼)的一部分為多循環(huán)命令的情況下,即使 插入單循環(huán)命令也正常動(dòng)作時(shí)的時(shí)序圖。圖5(b)是在記錄于ROM的代碼(源代碼)為單 循環(huán)命令的情況下,即使插入多循環(huán)命令也正常動(dòng)作時(shí)的時(shí)序圖。
[0023] 圖6是表示本實(shí)施方式的微型計(jì)算機(jī)的結(jié)構(gòu)的圖。
[0024] 圖7是表示第1實(shí)施方式的閃存控制部2的結(jié)構(gòu)的圖。
[0025] 圖8是用于說(shuō)明命令執(zhí)行部15和程序計(jì)數(shù)器12的功能的圖。
[0026] 圖9是表示程序計(jì)數(shù)器12的結(jié)構(gòu)的圖。
[0027] 圖10是表示插入代碼寄存器組塊17的結(jié)構(gòu)的圖。
[0028] 圖11是表示代碼插入用寄存器組29-0的結(jié)構(gòu)的圖。
[0029] 圖12是表示代碼選擇電路14的結(jié)構(gòu)的圖。
[0030] 圖13(a)是表示在代碼插入用寄存器組29-i的地址寄存器31中保持的值的例子 的圖。圖13(b)是圖13(a)的條件下的時(shí)序圖。
[0031] 圖14(a)是表示在代碼插入用寄存器組29-i的地址寄存器31中保持的值的例子 的圖。圖14(b)是表不源代碼和插入代碼的圖。圖14(c)是圖14(a)及圖14(b)所不的條 件下的時(shí)序圖。
[0032] 圖15(a)是表示在代碼插入用寄存器組29-i的地址寄存器31中保持的值的例子 的圖。圖14(b)是表不源代碼和插入代碼的圖。圖14(c)是圖14(a)及圖14(b)所不的條 件下的時(shí)序圖。
[0033] 圖16是表示第2實(shí)施方式的閃存控制部102的結(jié)構(gòu)的圖。
[0034] 圖17是表示程序計(jì)數(shù)器51的結(jié)構(gòu)的圖。
[0035] 圖18是表示插入代碼寄存器組塊52的結(jié)構(gòu)的圖。
[0036] 圖19是表示代碼插入用寄存器組54-0的結(jié)構(gòu)的圖。
[0037] 圖20(a)是表示在代碼插入用寄存器組29-i的地址寄存器31中保持的值的例子 的圖。圖20(b)是圖20(a)的條件下的時(shí)序圖。
[0038] 圖21是表示第3實(shí)施方式的閃存控制部312的結(jié)構(gòu)的圖。
[0039] 圖22是表示插入代碼寄存器組塊164所包含的代碼插入用寄存器組64-0的結(jié)構(gòu) 的圖。
[0040] 圖23 (a)是表示在代碼插入用寄存器組64-i的地址寄存器31中保持的值的例子 的圖。圖23(b)是圖23(a)的條件下的時(shí)序圖。
[0041] 圖24是表示第4實(shí)施方式的閃存控制部103的結(jié)構(gòu)的圖。
[0042] 圖25是表示第4實(shí)施方式的程序計(jì)數(shù)器65的結(jié)構(gòu)的圖。
[0043] 圖26 (a)是表示在代碼插入用寄存器組54-i的地址寄存器31中保持的值的例子 的圖。圖26(b)是圖26(a)的條件下的時(shí)序圖。
[0044] 圖27是表示第5實(shí)施方式的閃存控制部395的結(jié)構(gòu)的圖。
[0045] 圖28是表示插入代碼寄存器組塊396所包含的代碼插入用寄存器組40-0的結(jié)構(gòu) 的圖。
[0046] 圖29是表示第6實(shí)施方式的閃存控制部423的結(jié)構(gòu)的圖。
[0047] 圖30是表示程序計(jì)數(shù)器72的結(jié)構(gòu)的圖。
[0048] 圖31是表示插入代碼寄存器組塊424所包含的代碼插入用寄存器組71-0的結(jié)構(gòu) 的圖。
[0049] 圖32(a)是表示在代碼插入用寄存器組71-i的地址寄存器31中保持的值的例子 的圖。圖32(b)是圖32(a)的條件下的時(shí)序圖。
[0050] 圖33是表示第7實(shí)施方式的閃存控制部623的結(jié)構(gòu)的圖。
[0051] 圖34是表示程序計(jì)數(shù)器74的結(jié)構(gòu)的圖。
[0052] 圖35是表示插入代碼寄存器組塊624所包含的代碼插入用寄存器組78-0的結(jié)構(gòu) 的圖。
[0053] 圖36 (a)是表示在代碼插入用寄存器組78-i的地址寄存器31中保持的值的例子 的圖。圖36(b)是圖36(a)的條件下的時(shí)序圖。
[0054] 圖37是表示第8實(shí)施方式的閃存控制部742的結(jié)構(gòu)的圖。
[0055] 圖38是表示程序計(jì)數(shù)器94的結(jié)構(gòu)的圖。
[0056] 圖39是表示插入代碼寄存器組塊743的結(jié)構(gòu)的圖。
[0057] 圖40是表示插入代碼寄存器組塊743所包含的代碼插入用寄存器組88-0的結(jié)構(gòu) 的圖。
[0058] 圖41 (a)是表示在代碼插入用寄存器組88-i的地址寄存器31中保持的值的例子 的圖。圖41(b)是圖41 (a)的條件下的時(shí)序圖。
[0059] 圖42是表示第9實(shí)施方式的閃存控制部388的結(jié)構(gòu)的圖。
[0060] 圖43是表示程序計(jì)數(shù)器94的結(jié)構(gòu)的圖。
[0061] 圖44是表示插入代碼寄存器組塊389的結(jié)構(gòu)的圖。
[0062] 圖45是表示插入代碼寄存器組塊389所包含的代碼插入用寄存器組86-0的結(jié)構(gòu) 的圖。
[0063] 圖46 (a)是表示在代碼插入用寄存器組86-i的地址寄存器31中保持的值的例子 的圖。圖46(b)是圖46(a)的條件下的時(shí)序圖。
【具體實(shí)施方式】
[0064] 以下,關(guān)于本發(fā)明的實(shí)施方式,使用附圖進(jìn)行說(shuō)明。
[0065][第1實(shí)施方式]
[0066](關(guān)于代碼插入和代碼變更)
[0067] 首先,在具備代碼變更功能的微型計(jì)算機(jī)A和具備代碼追加功能的微型計(jì)算機(jī)B 中,說(shuō)明伴隨著代碼插入而需要變更的代碼量。
[0068] 圖1 (a)是表示記錄于ROM的代碼(源代碼)和插入的代碼的例子的圖。在圖1 (a) 的例子中,源代碼為命令〇?10、11、12,在命令3之后插入的代碼為命令:V。
[0069] 圖1 (b)是表示具備代碼變更功能的微型計(jì)算機(jī)A的變更后的代碼的圖。
[0070] 如圖1(b)所示,在地址"0x0108"中存儲(chǔ)命令:V。由于變更前的Ν0Ρ區(qū)域?yàn)榈刂?"0x0116",因此命令4?命令10的存儲(chǔ)位置向地址"ΟχΟΙΟΑ"?"0x0116"移動(dòng)。因此,所 需的變更代碼量為"8"。即,從插入的區(qū)域到Ν0Ρ區(qū)域需要變更,因此根據(jù)Ν0Ρ區(qū)域的位置 的不同而需要龐大的量的變更。需要設(shè)置變更的量的寄存器組,硬件大規(guī)?;W鳛槠鋵?duì) 策,可考慮設(shè)置較多的Ν0Ρ區(qū)域,但是增加了冗長(zhǎng)的處理時(shí)間,因此CPU的處理性能劣化。
[0071] 圖1 (C)是表示具備代碼插入功能的微型計(jì)算機(jī)B的ROM的變更后的代碼的圖。
[0072] 如圖1(c)所示,在地址"0x0106"中存儲(chǔ)命令3'。因此,所需的變更代碼量為 "1"。
[0073] 接下來(lái),說(shuō)明伴隨著具備代碼變更功能的微型計(jì)算機(jī)A和具備代碼追加功能的微 型計(jì)算機(jī)B中的代碼變更而需要變更的代碼量。
[0074] 圖2(a)是表示記錄于ROM的代碼(源代碼)和變更的代碼的例子的圖。在圖2(a) 的例子中,示出源代碼為命令〇?10、11、12并將命令3變更為命令3'的情況。
[0075] 圖2(b)是表示具備代碼變更功能的微型計(jì)算機(jī)A的變更后的代碼的圖。
[0076] 如圖2(b)所示,在地址"0x0106"中存儲(chǔ)的命令3被變更為命令Υ。因此,所需 的變更代碼量為"1"。
[0077] 圖2(c)是表示具備代碼插入功能的微型計(jì)算機(jī)B的變更后的代碼的圖。
[0078] 如圖2(c)所示,在地址"0x0104"中存儲(chǔ)命令3'和跳轉(zhuǎn)命令"JUMP0108"。因此, 所需的變更代碼量為"2"。
[0079] 如以上說(shuō)明那樣,在具備代碼變更功能的微型計(jì)算機(jī)中,在插入代碼的情況下,有 時(shí)需要龐大的量的代碼的變更,需要設(shè)置變更的量的寄存器組。因此,可以說(shuō)利用代碼變更 功能來(lái)插入代碼的效率較差。
[0080] (單循環(huán)方式和多循環(huán)方式)
[0081] 接下來(lái),說(shuō)明單循環(huán)方式和多循環(huán)方式。以下,循環(huán)是指成為動(dòng)作時(shí)機(jī)的基準(zhǔn)的所 謂固定頻率的基準(zhǔn)時(shí)鐘信號(hào)的循環(huán)。
[0082] 并且,與該循環(huán)連動(dòng)地實(shí)施程序計(jì)數(shù)器的更新。
[0083] 圖3(a)是表示單循環(huán)方式下的命令的取得及執(zhí)行的時(shí)機(jī)的圖。
[0084] 在各循環(huán)中,從由程序計(jì)數(shù)器表示的ROM的地址取得命令(IF階段),同時(shí)執(zhí)行在 前一循環(huán)中取得的命令(EX階段)。在單循環(huán)中,所有循環(huán)的時(shí)間相同。
[0085] 圖3(b)是表示多循環(huán)方式下的命令的取得及執(zhí)行的時(shí)機(jī)的圖。
[0086] 在多循環(huán)方式中,也與單循環(huán)方式同樣地,在各循環(huán)中,從由程序計(jì)數(shù)器表示的 ROM的地址取得命令(IF階段),同時(shí)執(zhí)行在前一循環(huán)中取得的命令(EX階段)。在多循環(huán) 中,至少1個(gè)命令執(zhí)行跨多個(gè)循環(huán)進(jìn)行。
[0087] 在單循環(huán)方式中,利用最長(zhǎng)通路(最長(zhǎng)的命令執(zhí)行時(shí)間)對(duì)1循環(huán)的時(shí)間進(jìn)行限 速,存在1循環(huán)的時(shí)間變長(zhǎng)、所需硬件量增多等缺點(diǎn)。因此,可以說(shuō)優(yōu)選采用多循環(huán)方式。在 采用多循環(huán)方式的情況下,代碼插入功能也需要對(duì)應(yīng)于多循環(huán)方式。然而,專利文獻(xiàn)3的裝 置如段落[0049]所記載的那樣,PC更新停止信號(hào)成為1循環(huán)的量,未對(duì)應(yīng)于多循環(huán)方式。 [0088](以多循環(huán)方式設(shè)置代碼插入功能時(shí)的問(wèn)題)
[0089] 接下來(lái),說(shuō)明在記錄于ROM的代碼(源代碼)的一部分為多循環(huán)命令的情況下插 入單循環(huán)命令時(shí)的問(wèn)題。
[0090] 圖4是在專利文獻(xiàn)3中,在記錄于ROM的代碼(源代碼)的一部分為多循環(huán)命令 的情況下插入單循環(huán)命令時(shí)的時(shí)序圖。
[0091] 在圖4的例子中,作為源代碼的一部分的"R0106"是多循環(huán)命令(3循環(huán)命令)。 示出該代碼的地址為"0x0106",且在該代碼之后插入單循環(huán)的插入代碼"Code 0"時(shí)的例 子。在此,"〇χ· · · ·"表示16進(jìn)制顯示。
[0092] 在第3循環(huán)中,當(dāng)程序計(jì)數(shù)器的值與地址"0x0108" 一致時(shí),取得插入代碼CodeO, 并且程序計(jì)數(shù)器更新停止信號(hào)有效。然而,在第3循環(huán)中,程序計(jì)數(shù)器由于執(zhí)行多循環(huán)命令 而處于停止中,因此程序計(jì)數(shù)器更新停止信號(hào)無(wú)法起到為了插入而使程序計(jì)數(shù)器停止這樣 的作用。其結(jié)果是,地址"0x0108"的ROM的代碼未被取得及執(zhí)行。為了執(zhí)行地址"0x0108" 的ROM的代碼,如圖4所示,需要使PC更新停止進(jìn)行3循環(huán)期間的停止,但為此需要復(fù)雜的 控制。以下,說(shuō)明其理由。
[0093] 在多循環(huán)命令執(zhí)行時(shí),從命令執(zhí)行部輸出用于使程序計(jì)數(shù)器的更新進(jìn)行(多循環(huán) 數(shù)-1)的期間的停止的信號(hào)即PC延遲信號(hào)。PC延遲信號(hào)是通過(guò)一般的處理器執(zhí)行多循環(huán) 命令時(shí)輸出的信號(hào)。并且,嘗試研究了根據(jù)該P(yáng)C延遲信號(hào)和地址一致信號(hào)而生成簡(jiǎn)易邏 輯,來(lái)實(shí)現(xiàn)多循環(huán)命令執(zhí)行中的代碼插入功能。
[0094] 圖5 (a)是在記錄于ROM的代碼(源代碼)的一部分為多循環(huán)命令的情況下,即使 插入單循環(huán)命令也正常動(dòng)作時(shí)的時(shí)序圖。需要說(shuō)明的是,IF執(zhí)行代碼、地址、IF階段的執(zhí)行 代碼、EX階段的執(zhí)行代碼的時(shí)序圖是為了實(shí)現(xiàn)代碼插入所需的期望值。
[0095] PC延遲信號(hào)的時(shí)序圖表示一般的多循環(huán)方式的微型計(jì)算機(jī)中的動(dòng)作,地址一致信 號(hào)的時(shí)序圖表示使用了簡(jiǎn)易比較器時(shí)的動(dòng)作。
[0096] 在圖5(a)的例子中,示出作為源代碼的一部分的"R0106"為多循環(huán)命令(3循環(huán) 命令),該代碼的地址為"0x0106",并在該代碼之后插入單循環(huán)的插入代碼"Code 0"時(shí)的 例子。
[0097] 在第3循環(huán)中,當(dāng)程序計(jì)數(shù)器的值與地址"0x0108" 一致時(shí),地址一致信號(hào)成為4 個(gè)循環(huán)的期間"H"電平,PC延遲信號(hào)成為2個(gè)循環(huán)的期間"H"電平。如圖5 (a)所示,為了 取得并執(zhí)行地址"0x0108"的ROM的代碼,在PC延遲信號(hào)為"L"電平的第5循環(huán)中,需要另 行產(chǎn)生用于使程序計(jì)數(shù)器的更新停止的PC更新停止信號(hào)。在圖5(a)的情況下,在前一循 環(huán)中,地址一致信號(hào)和PC延遲信號(hào)均為"H"電平,且在當(dāng)前循環(huán)中,地址一致信號(hào)成為"H" 電平、PC延遲信號(hào)成為"L"電平時(shí),需要設(shè)置新設(shè)置的PC更新停止信號(hào)成為"H"電平的邏 輯電路。
[0098] 圖5 (b)是在記錄于ROM的代碼(源代碼)為單循環(huán)命令的情況下,即使插入多循 環(huán)命令也正常動(dòng)作時(shí)的時(shí)序圖。
[0099] 在圖5(b)的例子中,示出在作為源代碼的一部分的"R0106"之后插入作為3循環(huán) 命令的插入代碼"Code 0"時(shí)的例子。
[0100] 在第3循環(huán)中,當(dāng)程序計(jì)數(shù)器的值與地址"0x0108" 一致時(shí),地址一致信號(hào)成為4 個(gè)循環(huán)的期間"H"電平,PC延遲信號(hào)從第4循環(huán)成為2循環(huán)的期間"H"電平。如圖5 (b) 所示,為了取得并執(zhí)行地址"〇x〇l〇8"的ROM的代碼,在PC延遲信號(hào)為"L"電平的第3循環(huán) 中,需要產(chǎn)生用于使程序計(jì)數(shù)器的更新停止的PC更新停止信號(hào)。在圖5(b)的情況下,在前 一循環(huán)中,地址一致信號(hào)和PC延遲信號(hào)均為"L"電平,且在當(dāng)前循環(huán)中,地址一致信號(hào)成為 "H"電平、PC延遲信號(hào)成為"L"電平的情況下,需要設(shè)置PC更新停止信號(hào)成為"H"電平的 邏輯電路。
[0101] 如上所述,在圖5(a)和圖5(b)的情況下,為了生成PC更新停止信號(hào)而需要另外 的邏輯電路。
[0102] 另外,在圖5(a)的第5循環(huán)和前一循環(huán)的第4循環(huán)、圖5(b)的第6循環(huán)和前一循 環(huán)的第5循環(huán)中,地址一致信號(hào)與PC延遲信號(hào)的電平相同。然而,取得的代碼在圖5(a)中 為保持插入代碼的CodeReg側(cè),在圖5 (b)中為保持源代碼的ROM側(cè),兩者不一致。
[0103] 因此,僅單純地追加邏輯電路的話,難以生成用于實(shí)現(xiàn)代碼插入功能的PC更新停 止信號(hào)和用于切換對(duì)源代碼或插入代碼進(jìn)行選擇并向命令執(zhí)行部發(fā)送的選擇器的切換信 號(hào)。在本實(shí)施方式中,解決上述課題,通過(guò)能夠進(jìn)行代碼插入的多循環(huán)方式的微型計(jì)算機(jī)來(lái) 實(shí)現(xiàn)。
[0104] (第1實(shí)施方式的結(jié)構(gòu))
[0105] 圖6是表示本實(shí)施方式的微型計(jì)算機(jī)的結(jié)構(gòu)的圖。該圖所示的微型計(jì)算機(jī)沒(méi)有特 別限制,但是通過(guò)公知的半導(dǎo)體集成電路制造技術(shù)而形成于半導(dǎo)體基板(芯片)。
[0106] 如圖6所示,該微型計(jì)算機(jī)1具備CPU(Central Processing Unit,中央處理器)4、 RAM (Random Access Memory,隨機(jī)存取儲(chǔ)存器)5、周邊裝置6、模擬輸入端子9、A-D轉(zhuǎn)換器 7、模擬輸出端子l〇、D-A轉(zhuǎn)換器8、1/0端口 11、閃存3、主要進(jìn)行該閃存3的控制的閃存控 制部2、以及用于進(jìn)行以上各種電路間的信號(hào)傳遞的主數(shù)據(jù)總線273。
[0107] CPU4控制微型計(jì)算機(jī)1的整體的處理。CPU4能夠訪問(wèn)閃存3。
[0108] RAM5存儲(chǔ)各種數(shù)據(jù),并用于CPU4的工作區(qū)域等。
[0109] 周邊裝置6經(jīng)由1/0端口 11而與外部之間收發(fā)數(shù)據(jù)。
[0110] A-D轉(zhuǎn)換器7將從模擬輸入端子9輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。
[0111] D-A轉(zhuǎn)換器8將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),并向模擬輸出端子10輸出。
[0112] 閃存3是非易失性存儲(chǔ)器,能夠向半導(dǎo)體基板電擦除及電寫(xiě)入。閃存3沒(méi)有特別 限制,但是存儲(chǔ)CPU4的動(dòng)作程序或各種數(shù)據(jù)。
[0113] 閃存控制部2根據(jù)來(lái)自CPU3的訪問(wèn)以預(yù)定的順序進(jìn)行閃存3的控制。閃存控制 部2存儲(chǔ)有進(jìn)行閃存3的擦除、寫(xiě)入、讀取等動(dòng)作控制的程序,并且也進(jìn)行這些程序的執(zhí)行。 該程序例如包含對(duì)閃存的改寫(xiě)動(dòng)作的錯(cuò)誤進(jìn)行監(jiān)控的命令。閃存控制部2在讀取對(duì)該錯(cuò)誤 進(jìn)行監(jiān)控的命令時(shí),檢查表示錯(cuò)誤的寄存器,若存在錯(cuò)誤則向CPU4傳遞錯(cuò)誤。
[0114] 這樣的對(duì)錯(cuò)誤進(jìn)行監(jiān)控的命令配置在程序中的每個(gè)固定的地址,以便每隔固定的 時(shí)間間隔進(jìn)行讀取。該命令的執(zhí)行會(huì)導(dǎo)致其他處理性能的劣化。因此,該程序需要以適度 的間隔進(jìn)行配置。另一方面,有時(shí)存在即使?fàn)奚幚硇阅艿男┰S的劣化,也想要重視安全性 而縮短錯(cuò)誤監(jiān)控的時(shí)間間隔的情況。
[0115] 本實(shí)施方式的閃存控制部2具有向由作為預(yù)先裝入的命令的源代碼構(gòu)成的程序 插入新的代碼的功能,從而不用變更微型計(jì)算機(jī)的硬件就能夠應(yīng)對(duì)這樣的要求。
[0116] 圖7是表示第1實(shí)施方式的閃存控制部2的結(jié)構(gòu)的圖。
[0117] 如圖7所示,該閃存控制部2具備程序計(jì)數(shù)器12、閃存控制代碼用R0M13、插入代 碼寄存器組塊17、寄存器選擇信號(hào)生成電路18、代碼選擇電路14、命令執(zhí)行部15及接口控 制器16。
[0118] 閃存控制代碼用R0M13存儲(chǔ)作為預(yù)先裝入的命令的多個(gè)源代碼。閃存控制代碼用 R0M13將從程序計(jì)數(shù)器12輸出的地址中存儲(chǔ)的源代碼輸出。在此,閃存控制代碼用R0M13 內(nèi)的多個(gè)源代碼的地址中,程序計(jì)數(shù)器的輸出的從最低位起的第2位以上的位有效。而且, 本實(shí)施方式的閃存控制代碼用R0M13在功能上相當(dāng)于掩模R0M,但不是所謂大容量存儲(chǔ)器 的寫(xiě)入禁止?fàn)顟B(tài),而假定是預(yù)先在邏輯電路等中固定地裝入的結(jié)構(gòu)。
[0119] 插入代碼寄存器組塊17具有至少1個(gè)插入代碼和保持插入代碼的地址的寄存器 組。插入代碼寄存器組塊17在所保持的插入代碼的地址的除了最低位的位之外的位與程 序計(jì)數(shù)器12的地址的除了最低位的位之外的位一致時(shí),將第1信號(hào)向程序計(jì)數(shù)器12輸出 (即,將地址一致信號(hào)設(shè)定為"H"電平)。插入代碼寄存器組塊17在輸出第1信號(hào)且程序 計(jì)數(shù)器12的地址的最低位的位為"1"時(shí),將第2信號(hào)向代碼選擇電路14輸出(即,將地址 完全一致信號(hào)設(shè)定為"H"電平),并將保持的插入代碼作為代碼寄存器輸出信號(hào)而輸出。
[0120] 程序計(jì)數(shù)器12通過(guò)加上第1值或第2值來(lái)對(duì)作為計(jì)數(shù)器值的地址進(jìn)行更新。艮P, 程序計(jì)數(shù)器12基于地址一致信號(hào)及PC控制信號(hào),對(duì)計(jì)數(shù)器值進(jìn)行更新,將作為計(jì)數(shù)器值的 地址向內(nèi)部地址總線23輸出。程序計(jì)數(shù)器12在執(zhí)行多循環(huán)命令時(shí),停止地址的更新。更 具體而言,程序計(jì)數(shù)器12在接收到第1信號(hào)時(shí)對(duì)最低位的位加上" 1",在未接收到第1信號(hào) 時(shí),對(duì)從最低位起的第2位加上" 1"。
[0121] 寄存器選擇信號(hào)生成電路18向插入代碼寄存器組塊17供給后述的代碼寄存器選 擇信號(hào)〇?η及地址寄存器選擇信號(hào)0?η。在將欲插入的代碼和插入該代碼的地址設(shè)定 于插入代碼寄存器組塊17時(shí),代碼寄存器選擇信號(hào)0?η及地址寄存器選擇信號(hào)0?η作 為選擇信號(hào)而活性化。
[0122] 代碼選擇電路14基于與從程序計(jì)數(shù)器12輸出的地址對(duì)應(yīng)地變化的地址完全一致 信號(hào),將從閃存控制代碼用R0M13輸出的源代碼及從插入代碼寄存器組塊17輸出的插入代 碼中的某一個(gè)作為執(zhí)行代碼而輸出到命令執(zhí)行部15。更具體而言,代碼選擇電路14在接收 到第2信號(hào)時(shí),選擇插入代碼,在未接收到第2信號(hào)時(shí),選擇源代碼。
[0123] 命令執(zhí)行部15取得從代碼選擇電路14輸出的執(zhí)行代碼,并執(zhí)行所取得的執(zhí)行代 碼。
[0124] 在本實(shí)施方式中,使多個(gè)源代碼及插入代碼中的至少1個(gè)為多循環(huán)命令。即,在閃 存3的控制中,需要多循環(huán)命令下的處理。
[0125] 接口控制器16與主數(shù)據(jù)總線273連接,接收來(lái)自閃存控制部的外部的中斷,并向 命令執(zhí)行部15輸出中斷信號(hào)。
[0126] 命令執(zhí)行部15及接口控制器16經(jīng)由內(nèi)部數(shù)據(jù)總線21與閃存3連接。
[0127] 圖8是用于說(shuō)明命令執(zhí)行部15和程序計(jì)數(shù)器12的功能的圖。
[0128] 如圖8所示,命令執(zhí)行部15具備取得部35和執(zhí)行部36。取得部35取得從代碼 選擇電路14輸出的執(zhí)行代碼,并向執(zhí)行部35輸出。執(zhí)行部36執(zhí)行所取得的執(zhí)行代碼。執(zhí) 行部36將表示即時(shí)值的運(yùn)算結(jié)果PC、對(duì)即時(shí)值的選擇進(jìn)行指示的運(yùn)算結(jié)果PC選擇信號(hào)及 PC延遲信號(hào)等PC控制信號(hào)向程序計(jì)數(shù)器12輸出。PC延遲信號(hào)在執(zhí)行多循環(huán)命令時(shí)被設(shè) 定為"H"電平。
[0129] 圖9是表示程序計(jì)數(shù)器12的結(jié)構(gòu)的圖。
[0130] 如圖9所示,程序計(jì)數(shù)器12具備選擇器24、加法器25、選擇器26、選擇器27及PC 用寄存器28。
[0131] 在從插入代碼寄存器組塊17輸出的地址一致信號(hào)為"H"電平時(shí),選擇器24輸出 "0x01",在地址一致信號(hào)為"L"電平時(shí),選擇器24輸出"0x02"。
[0132] 加法器25將從PC用寄存器28輸出的16位的地址與從選擇器24輸出的值相加。
[0133] 選擇器26接收加法器25的輸出和從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC ( S卩,即時(shí) 值)。在從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC選擇信號(hào)為"H"電平時(shí),選擇器26輸出運(yùn)算 結(jié)果PC,在運(yùn)算結(jié)果PC選擇信號(hào)為"L"電平時(shí),選擇器26輸出加法器25的輸出。
[0134] 選擇器27接收選擇器26的輸出和從PC用寄存器28輸出的地址。在從命令執(zhí)行 部15輸出的PC延遲信號(hào)為"H"電平時(shí),選擇器27輸出從PC用寄存器28輸出的地址,在 PC延遲信號(hào)為"L"電平時(shí),選擇器27輸出選擇器26的輸出。
[0135] PC用寄存器28對(duì)選擇器27的輸出進(jìn)行鎖存,作為閃存控制代碼用R0M13的地址 向內(nèi)部地址總線23輸出。
[0136] 圖10是表示插入代碼寄存器組塊17的結(jié)構(gòu)的圖。
[0137] 如圖10所示,插入代碼寄存器組塊17具備保持插入的代碼及插入該代碼的場(chǎng)所 (地址)的代碼插入用寄存器組29-i (i = 0?η)及邏輯電路0R1、0R2、0R3。
[0138] 代碼插入用寄存器組29-i接收從程序計(jì)數(shù)器12輸出的地址和在數(shù)據(jù)總線內(nèi)傳送 的數(shù)據(jù),而且,從寄存器選擇信號(hào)生成電路18接收代碼寄存器選擇信號(hào)i及地址寄存器選 擇信號(hào)i,向代碼選擇電路14輸出地址一致信號(hào)i、地址完全一致信號(hào)i及代碼寄存器輸出 信號(hào)i。附帶而言,通過(guò)代碼寄存器選擇信號(hào)i及地址寄存器選擇信號(hào)i來(lái)選擇插入代碼寄 存器組塊17內(nèi)的代碼插入用寄存器組29-i,將從內(nèi)部數(shù)據(jù)總線21傳送的插入代碼及地址 寫(xiě)入所選擇的代碼插入用寄存器組29-i的代碼用寄存器及地址用寄存器。
[0139] 邏輯電路0R1將(n+1)個(gè)地址一致信號(hào)0?η的邏輯和作為地址一致信號(hào)而輸出。 艮P,在地址一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址一致信號(hào)成為"Η"電平。
[0140] 邏輯電路0R2將(η+1)個(gè)代碼寄存器輸出信號(hào)0?η的邏輯和作為代碼寄存器輸 出信號(hào)而輸出。即,在(η+1)個(gè)代碼寄存器輸出信號(hào)0?η的至少1個(gè)具有"Η"電平的位 時(shí)(即,輸出了插入代碼時(shí)),代碼寄存器輸出信號(hào)成為插入代碼。即,在(η+1)個(gè)代碼寄存 器輸出信號(hào)〇?η的所有位均為"L"電平時(shí)(即,未輸出插入代碼時(shí)),代碼寄存器輸出信 號(hào)的所有位成為"L"。
[0141] 邏輯電路0R3將(η+1)個(gè)地址完全一致信號(hào)0?η的邏輯和作為地址完全一致信 號(hào)而輸出。即,在(η+1)個(gè)地址完全一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址完全一 致信號(hào)成為"Η"電平。
[0142] 圖11是表示代碼插入用寄存器組29-0的結(jié)構(gòu)的圖。代碼插入用寄存器組29-1? 29-η的結(jié)構(gòu)也與圖11的代碼插入用寄存器組29-0的結(jié)構(gòu)同樣。
[0143] 如圖11所示,代碼插入用寄存器組29-0具備邏輯電路AND1、地址寄存器31、地址 比較器30、邏輯電路AND4、代碼寄存器32、邏輯電路AND2及邏輯電路AND3。
[0144] 邏輯電路AND1在時(shí)鐘elk和地址寄存器選擇信號(hào)0均為"Η"電平時(shí),將"Η"電平 的信號(hào)向地址寄存器31的控制端子輸出。
[0145] 地址寄存器31在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的15位的地址(S卩,將插入代碼插入的地址)。即,與時(shí)鐘elk同步地接收地址寄存器選 擇信號(hào)〇,將來(lái)自數(shù)據(jù)總線的信號(hào)作為插入代碼的插入目的地地址而存儲(chǔ)到所選擇的地址 寄存器31中。
[0146] 地址比較器30在從程序計(jì)數(shù)器12輸出的16位的地址中的高位15位(地址[15 : 1])與保持于地址寄存器31的15位的地址一致時(shí),將地址一致信號(hào)0設(shè)定為"H"電平。
[0147] 邏輯電路AND2在地址一致信號(hào)0為"H"電平且從程序計(jì)數(shù)器12輸出的16位的 地址中最低位的位(地址[0])為"1"時(shí),將地址完全一致信號(hào)0設(shè)定為"H"電平。在此, 閃存控制代碼用R0M13內(nèi)的作為多個(gè)源代碼的地址而無(wú)效的最低位的位為"1"時(shí)是指指定 了閃存控制代碼用R0M13內(nèi)不存在的地址的時(shí)刻。
[0148] 邏輯電路AND4在時(shí)鐘elk和代碼寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向代碼寄存器32的控制端子輸出。
[0149] 代碼寄存器32在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線送來(lái) 的16位的數(shù)據(jù)(即插入代碼)。即,與時(shí)鐘elk同步地接收代碼寄存器選擇信號(hào)0,將來(lái)自 數(shù)據(jù)總線的信號(hào)作為插入代碼而存儲(chǔ)到所選擇的代碼寄存器中。
[0150] 邏輯電路AND3接收地址完全一致信號(hào)0和代碼寄存器32的輸出。邏輯電路AND3 在地址完全一致信號(hào)0為"H"電平時(shí),將保持于代碼寄存器32的16位的數(shù)據(jù)(插入代碼) 作為代碼寄存器輸出信號(hào)〇而輸出。邏輯電路AND3在地址完全一致信號(hào)0為"L"電平時(shí), 將16位的"0x0000"作為代碼寄存器輸出信號(hào)0而輸出。
[0151] 圖12是表示代碼選擇電路14的結(jié)構(gòu)的圖。
[0152] 如圖12所示,代碼選擇電路14包含選擇器33。
[0153] 選擇器33接收從閃存控制代碼用R0M13輸出的源代碼和從插入代碼寄存器組塊 17輸出的代碼寄存器輸出信號(hào)(插入代碼)。選擇器33基于地址完全一致信號(hào),將輸入的 兩個(gè)信號(hào)中的某一個(gè)輸出。選擇器33在地址完全一致信號(hào)為"H"電平時(shí),將代碼寄存器輸 出信號(hào)(插入代碼)輸出,在地址完全一致信號(hào)為"L"電平時(shí),將源代碼作為執(zhí)行代碼而輸 出。
[0154] (第1實(shí)施方式的動(dòng)作例1)
[0155] 接下來(lái),說(shuō)明源代碼及插入代碼為單循環(huán)命令時(shí)的動(dòng)作例。
[0156] 圖13 (a)是表示在代碼插入用寄存器組29-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持"0x0106"的高位15位(第2位?第16位)。但是,在此,將第1位設(shè)為 LSB (Least Significant bit,最低有效位),將第X位設(shè)為比LSB高(X-1)位的位。
[0157] 另外,在代碼插入用寄存器組#0的代碼寄存器32中保持有插入代碼"Code Reg. 0"。而且,在閃存控制代碼用R0M13的地址"Ox----"中保持有源代碼"R----"。
[0158] 圖13(b)是圖13(a)的條件下的時(shí)序圖。
[0159] 在第0循環(huán)中,從程序計(jì)數(shù)器12輸出的16位的地址(PC(Program Counter)值 [15 :0])為"0x0102"。而且,地址"0x0102"的高位15位與在代碼插入用寄存器組#0的地 址寄存器31中保持的地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完 全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13 輸出"0x0102"的地址的源代碼即"R0102"。由于地址完全一致信號(hào)為"L"電平,因此代碼 選擇電路14將源代碼"R0102"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行 部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0100"。
[0160] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了"0x02"的"0x0104"。 而且,地址"0x0104"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0104"的地址 的源代碼即"R0104"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R0104"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R0102"。
[0161] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0106"。 地址"0x0106"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦?號(hào)〇成為"H"電平)。另一方面,程序計(jì)數(shù)器12的輸出地址的最低位的位為"0"。其結(jié)果 是,地址完全一致信號(hào)仍為"L"電平,代碼寄存器輸出信號(hào)仍為"0x0000"。從閃存控制代碼 用R0M13輸出"0x0106"的地址的源代碼即"R0106"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R0106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0104"。
[0162] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0107"。 地址"0x0107"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦?號(hào)0成為"Η"電平)。而且,程序計(jì)數(shù)器12的輸出地址的最低位的位為"1",其結(jié)果是,地 址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0成為"H"電平)。而且,代碼 寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代碼"Code Reg. 0"(這是因?yàn)榇a寄 存器輸出信號(hào)〇成為"Code Reg. 0")。由于地址完全一致信號(hào)為"H"電平,因此代碼選擇 電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的 執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0106"。
[0163] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0108"。 地址"0x0108"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0108"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代 碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0108"的地址的源代 碼即"R0108"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0108" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的插入代碼"Code Reg. 0"。
[0164] 在第5循環(huán)以后與第4循環(huán)同樣地進(jìn)行動(dòng)作。
[0165] (第1實(shí)施方式的動(dòng)作例2)
[0166] 接下來(lái),說(shuō)明源代碼的一部分為多循環(huán)命令且插入代碼為單循環(huán)命令時(shí)的動(dòng)作。
[0167] 圖14 (a)是表示在代碼插入用寄存器組29-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持有"0x0106"的高位15位(第2位?第16位),在代碼插入用寄存器組 #1的地址寄存器31中保持有"0x8000"的高位15位,在代碼插入用寄存器組#2的地址寄 存器31中保持有"0x8002"的高位15位。而且,在代碼插入用寄存器組#0的代碼寄存器 32中保持有插入代碼"Code Reg.O"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·" 中保持有源代碼"R· · · · "。
[0168] 如圖14(b)所示,設(shè)源代碼"R0106"為3循環(huán)命令、其他源代碼為1循環(huán)命令、插 入代碼"Code Reg. 0"為1循環(huán)命令。
[0169] 圖14(c)是圖14(a)及圖14(b)所示的條件下的時(shí)序圖。
[0170] 在第0循環(huán)中,從程序計(jì)數(shù)器12輸出的16位的地址(PC值[15 :0])為"0x0102"。 而且,地址"0x0102"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0102"的地址 的源代碼即"R0102"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R0102"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R0100"。
[0171] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0104"。 地址"0x0104"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代 碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0104"的地址的源代 碼即"R0104"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0104" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的源代碼"R0102"。
[0172] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0106"。 地址"0x0106"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦?號(hào)〇成為"H"電平)。另一方面,程序計(jì)數(shù)器12的輸出地址的最低位的位為"0"。其結(jié)果 是,地址完全一致信號(hào)仍為"L"電平,代碼寄存器輸出信號(hào)仍為"0x0000"。從閃存控制代碼 用R0M13輸出"0x0106"的地址的源代碼即"R0106"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R0106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0104"。
[0173] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0107"。 而且,地址"0x0107"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂?一致信號(hào)〇成為"H"電平)。程序計(jì)數(shù)器12的輸出地址由于進(jìn)行了"0x01"的加法運(yùn)算,因 此最低位的位為"1"。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢?信號(hào)〇成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代 碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址完全一 致信號(hào)為"H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R0106"。在此,由于源代碼"R0106"為3循環(huán)命令,因此執(zhí)行部36將PC延遲信號(hào)設(shè)定為 "H"電平。
[0174] 在第4循環(huán)中,由于在前一循環(huán)中PC延遲信號(hào)被設(shè)定為"H"電平,因此程序計(jì)數(shù) 器12輸出與前一循環(huán)相同的地址"0x0107"。地址"0x0107"的高位15位與在代碼插入用 寄存器組#〇的地址寄存器31中保持的地址"0x0106"的高位15位一致。其結(jié)果是,地址 一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。而且,程序計(jì)數(shù)器12 的輸出地址的最低位的位為"1"。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈?址完全一致信號(hào)0成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保 持的插入代碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由 于地址完全一致信號(hào)為"Η"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令 執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36繼續(xù)執(zhí)行3循環(huán)命令的源代碼 "R0106"(完成2循環(huán)量的執(zhí)行)。
[0175] 在第5循環(huán)中,由于在前一循環(huán)中PC延遲信號(hào)被設(shè)定為"H"電平,因此程序計(jì)數(shù)器 12輸出與前一循環(huán)相同的地址"0x0107"。而且,地址"0x0107"的高位15位與在代碼插入 用寄存器組#〇的地址寄存器31中保持的地址"0x0106"的高位15位一致。其結(jié)果是,地 址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。由于程序計(jì)數(shù)器12 的輸出地址的最低位的位為"1",因此地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆?一致信號(hào)0成為"Η"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的插 入代碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址完 全一致信號(hào)為"H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15 的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36繼續(xù)執(zhí)行3循環(huán)命令的源代碼"R0106"(完 成3循環(huán)量的執(zhí)行)。執(zhí)行部36完成了作為3循環(huán)命令的源代碼"R0106"的執(zhí)行,因此將 PC延遲信號(hào)設(shè)定為"L"電平。
[0176] 在第6循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0108"。 而且,地址"0x0108"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0108"的地址 的源代碼即"R0108"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R0108"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0177] 在第7循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"ΟχΟΙΟΑ"。 地址"ΟχΟΙΟΑ"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代 碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"ΟχΟΙΟΑ"的地址的源代 碼即"R010A"。由于地址完全一致信號(hào)為"L"電平,代碼選擇電路14因此將源代碼"R010A" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的源代碼"R0108"。
[0178] 在第8循環(huán)以后與第7循環(huán)同樣地進(jìn)行動(dòng)作。
[0179] (第1實(shí)施方式的動(dòng)作例3)
[0180] 接下來(lái),說(shuō)明源代碼為單循環(huán)命令且插入代碼為多循環(huán)命令時(shí)的動(dòng)作。
[0181] 圖15(a)是表示在代碼插入用寄存器組29-i(以下,稱為代碼插入用寄存器組 #i)的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的 地址寄存器31中保持有"0x0106"的高位15位,在代碼插入用寄存器組#1的地址寄存器 31中保持有"0x8000"的高位15位,在代碼插入用寄存器組#2的地址寄存器31中保持有 "0x8002"的高位15位。而且,在代碼插入用寄存器組#0的代碼寄存器32中保持有插入代 碼"Code Reg.0"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·"中保持有源代碼 "R · · · ·,,。
[0182] 如圖15(b)所示,設(shè)源代碼"R0106"為1循環(huán)命令、其他源代碼也同樣為1循環(huán)命 令、插入代碼"Code Reg. 0"為3循環(huán)命令。
[0183] 圖15(c)是圖15(a)及圖15(b)所示的條件下的時(shí)序圖。
[0184] 在第0循環(huán)中,從程序計(jì)數(shù)器12輸出的16位的地址(PC值[15 :0])為"0x0102"。 而且,地址"0x0102"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0102"的地址 的源代碼即"R0102"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R0102"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R0100"。
[0185] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0104"。 而且,地址"0x0104"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0104"的地址 的源代碼即"R0104"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R0104"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R0102"。
[0186] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0106"。 地址"0x0106"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦?號(hào)〇成為"H"電平)。另一方面,由于程序計(jì)數(shù)器12的輸出地址的最低位的位為"0",因此 地址完全一致信號(hào)仍為"L"電平,代碼寄存器輸出信號(hào)仍為"0x0000"。從閃存控制代碼用 R0M13輸出"0x0106"的地址的源代碼即"R0106"。由于地址完全一致信號(hào)為"L"電平,因 此代碼選擇電路14將源代碼"R0106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15 的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0104"。
[0187] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0107"。 地址"0x0107"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦?號(hào)〇成為"H"電平)。程序計(jì)數(shù)器12的輸出地址由于進(jìn)行了"0x01"的加法運(yùn)算,因此最低 位的位為"1"。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0 成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址完全一致信號(hào)為 "H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸 出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0106"。
[0188] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0108"。 地址"0x0108"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代 碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"0x0108"的地址的源代 碼即"R0108"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0108" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的插入代碼"Code Reg. 0"。在此,插入代碼"Code Reg. 0"為3循環(huán)命令,因此 執(zhí)行部36將PC延遲信號(hào)設(shè)定為"H"電平。
[0189] 在第5循環(huán)中,由于在前一循環(huán)中PC延遲信號(hào)被設(shè)定為"Η"電平,因此程序計(jì)數(shù) 器12輸出與前一循環(huán)相同的地址"0x0108"。地址"0x0108"的高位15位與在代碼插入用 寄存器組#〇的地址寄存器31中保持的地址"0x0106"的高位15位不同。其結(jié)果是,地址 一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000"。命令執(zhí) 行部15的執(zhí)行部36繼續(xù)執(zhí)行3循環(huán)命令的插入代碼"Code Reg. 0"(完成2循環(huán)量的執(zhí) 行)。
[0190] 在第6循環(huán)中,由于在前一循環(huán)中PC延遲信號(hào)被設(shè)定為"H"電平,因此程序計(jì)數(shù) 器12輸出與前一循環(huán)相同的地址"0x0108"。而且,地址"0x0108"的高位15位與在代碼插 入用寄存器組#〇的地址寄存器31中保持的地址"0x0106"的高位15位不同。其結(jié)果是, 地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000"。命 令執(zhí)行部15的執(zhí)行部36繼續(xù)執(zhí)行3循環(huán)命令的插入代碼"Code Reg. 0"(完成3循環(huán)量的 執(zhí)行)。執(zhí)行部36完成了作為3循環(huán)命令的插入代碼"Code Reg. 0"的執(zhí)行,因此將PC延 遲信號(hào)設(shè)定為"L"電平。
[0191] 在第7循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"ΟχΟΙΟΑ"。 而且,地址"ΟχΟΙΟΑ"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x0106"的高位15位不同。其結(jié)果是,地址一致信號(hào)、地址完全一致信號(hào)成為"L"電 平,代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出"ΟχΟΙΟΑ"的地址 的源代碼即"R010A"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R010A"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R0108"。
[0192] 在第8循環(huán)以后與第7循環(huán)同樣地進(jìn)行動(dòng)作。
[0193] [第2實(shí)施方式]
[0194] 在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第(k+Ι)位以上的位有效。 其中,k為1以上的自然數(shù)。
[0195] (結(jié)構(gòu))
[0196] 圖16是表示第2實(shí)施方式的閃存控制部102的結(jié)構(gòu)的圖。
[0197] 圖16的閃存控制部102與圖7的閃存控制部2的區(qū)別點(diǎn)在于程序計(jì)數(shù)器51和插 入代碼寄存器組塊52。
[0198] 插入代碼寄存器組塊52最多保持2k_l個(gè)插入代碼和插入代碼的地址。插入代碼 寄存器組塊52在所保持的插入代碼的地址的除了從最低位起的k位之外的位與程序計(jì)數(shù) 器51的地址的除了從最低位起的k位之外的位一致時(shí),輸出第1信號(hào)(即,將地址一致信 號(hào)設(shè)定為"H"電平)。
[0199] 插入代碼寄存器組塊52在輸出第1信號(hào)且所保持的插入代碼的地址的從最低位 起的k位與程序計(jì)數(shù)器51的地址的從最低位起的k位一致時(shí),輸出第2信號(hào)(即,將地址 完全一致信號(hào)設(shè)定為"H"電平),并輸出與程序計(jì)數(shù)器51的地址對(duì)應(yīng)的保持的插入代碼。
[0200] 當(dāng)連續(xù)地插入多個(gè)插入代碼時(shí),在插入代碼寄存器組塊52輸出最后的插入代碼 的情況下,插入代碼寄存器組塊52輸出第2信號(hào),并且同時(shí)輸出表不插入末端的插入末端 信號(hào)。關(guān)于插入末端信號(hào)的產(chǎn)生,將在后文敘述。
[0201] 程序計(jì)數(shù)器51在接收到第1信號(hào)時(shí),對(duì)最低位的位加上"1",在未接收到第1信號(hào) 時(shí),對(duì)從最低位起的第(k+Ι)位加上"1"。程序計(jì)數(shù)器51在接收到插入末端信號(hào)時(shí),即使 在接收到第1信號(hào)時(shí),也對(duì)從最低位起的第(k+Ι)位加上"1",并將從最低位起的k位設(shè)為 "0"。
[0202] 在以下的說(shuō)明中,將k設(shè)為5進(jìn)行說(shuō)明。
[0203] 圖17是表示程序計(jì)數(shù)器51的結(jié)構(gòu)的圖。
[0204] 如圖17所示,程序計(jì)數(shù)器51具備選擇器53、加法器25、邏輯電路AND74、選擇器 26、選擇器27、PC用寄存器28。
[0205] 選擇器53從插入代碼寄存器組塊52接收地址一致信號(hào)和插入末端信號(hào)。在地 址一致信號(hào)為"H"電平且插入末端信號(hào)為"L"電平時(shí),選擇器53輸出"0x01"。在地址一 致信號(hào)為"H"電平且插入末端信號(hào)為"H"電平時(shí)、地址一致信號(hào)為"L"電平且插入末端信 號(hào)為"H"電平時(shí)、地址一致信號(hào)為"L"電平且插入末端信號(hào)為"L"電平時(shí),選擇器53輸出 "0x20"。
[0206] 加法器25將從PC用寄存器28輸出的20位的地址與從選擇器53輸出的值相加。
[0207] 邏輯電路AND74輸出從加法器25輸出的20位中的低位5位與插入末端信號(hào)的否 定的邏輯積。即,邏輯電路AND74在插入末端信號(hào)為" L"電平時(shí),輸出從加法器25輸出的20 位中的低位5位。邏輯電路AND74在插入末端信號(hào)為"H"電平時(shí),輸出5位的"ObOOOOO"。 在此,"0b· ···"表示2進(jìn)制顯示。
[0208] 選擇器26接收將從加法器25輸出的20位中的高位15位設(shè)為高位15位并將從 邏輯電路AND74輸出的5位的信號(hào)設(shè)為低位5位而得的信號(hào)、及從命令執(zhí)行部15輸出的運(yùn) 算結(jié)果PC。選擇器26在從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC選擇信號(hào)為"H"電平時(shí),輸出 運(yùn)算結(jié)果PC,在運(yùn)算結(jié)果PC選擇信號(hào)為"L"電平時(shí),輸出來(lái)自加法器25及邏輯電路AND74 的信號(hào)。
[0209] 選擇器27接收選擇器26的輸出和從PC用寄存器28輸出的地址。選擇器27在 從命令執(zhí)行部15輸出的PC延遲信號(hào)為"H"電平時(shí),輸出從PC用寄存器28輸出的地址,在 PC延遲信號(hào)為"L"電平時(shí),輸出從選擇器26接收的信號(hào)。
[0210] PC用寄存器28將選擇器27的輸出鎖存,作為閃存控制用代碼用ROM的地址向內(nèi) 部地址總線23輸出。
[0211] 圖18是表示插入代碼寄存器組塊52的結(jié)構(gòu)的圖。
[0212] 如圖18所示,插入代碼寄存器組塊52具備代碼插入用寄存器組54-i (i = 0?η) 及邏輯電路 0R1、0R2、0R3、0R54。
[0213] 代碼插入用寄存器組54-i接收從程序計(jì)數(shù)器51輸出的地址和在數(shù)據(jù)總線內(nèi)傳送 的數(shù)據(jù),而且從代碼選擇電路14接收代碼寄存器選擇信號(hào)i、地址寄存器選擇信號(hào)i、地址 寄存器2選擇信號(hào)i、插入末端寄存器選擇信號(hào)i,并輸出地址一致信號(hào)i、地址完全一致信 號(hào)i、插入末端信號(hào)i及代碼寄存器輸出信號(hào)i。
[0214] 邏輯電路0R1將(n+1)個(gè)地址一致信號(hào)0?η的邏輯和作為地址一致信號(hào)而輸 出。即,在(η+1)個(gè)地址一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址一致信號(hào)成為"Η" 電平。
[0215] 邏輯電路0R2將(η+1)個(gè)代碼寄存器輸出信號(hào)0?η的邏輯和作為代碼寄存器輸 出信號(hào)而輸出。即,在(n+1)個(gè)代碼寄存器輸出信號(hào)0?η的至少1個(gè)具有"Η"電平的位 時(shí)(即,輸出了插入代碼時(shí)),代碼寄存器輸出信號(hào)成為插入代碼。即,在(η+1)個(gè)代碼寄存 器輸出信號(hào)〇?η的所有位均為"L"電平時(shí)(即,未輸出插入代碼時(shí)),代碼寄存器輸出信 號(hào)的所有位成為"L"。
[0216] 邏輯電路0R3將(η+1)個(gè)地址完全一致信號(hào)0?η的邏輯和作為地址完全一致信 號(hào)而輸出。即,在(η+1)個(gè)地址完全一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址完全一 致信號(hào)成為"Η"電平。
[0217] 邏輯電路0R54將(η+1)個(gè)插入末端信號(hào)0?η的邏輯和作為插入末端信號(hào)而輸 出。即,在(η+1)個(gè)插入末端信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),插入末端信號(hào)成為"Η" 電平。
[0218] 在圖18中,地址一致信號(hào)0?η、地址一致信號(hào)為1位的信號(hào)。地址完全一致信 號(hào)0?η、地址完全一致信號(hào)為1位的信號(hào)。插入末端信號(hào)0?η、插入末端信號(hào)為1位的 信號(hào)。代碼寄存器輸出信號(hào)〇?η、代碼寄存器輸出信號(hào)為16位的信號(hào)。
[0219] 圖19是表示代碼插入用寄存器組54-0的結(jié)構(gòu)的圖。代碼插入用寄存器組54-1? 54-η的結(jié)構(gòu)也與圖19的代碼插入用寄存器組54-0的結(jié)構(gòu)同樣。
[0220] 如圖19所示,代碼插入用寄存器組54-0具備邏輯電路AND1、地址寄存器31、地址 比較器30、邏輯電路AND4、代碼寄存器32、邏輯電路54、地址寄存器56、地址比較器57、邏 輯電路56、插入末端寄存器59、邏輯電路AND2、邏輯電路55及邏輯電路AND3。
[0221] 邏輯電路AND1在時(shí)鐘elk和地址寄存器選擇信號(hào)0均為"Η"電平時(shí),將"Η"電平 的信號(hào)向地址寄存器31的控制端子輸出。
[0222] 地址寄存器31在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的15位的地址(S卩,將插入代碼插入的地址)。
[0223] 地址比較器30在從程序計(jì)數(shù)器12輸出的20位的地址中的高位15位(地址[19 : 5])與在地址寄存器31中保持的15位的地址一致時(shí),將地址一致信號(hào)0設(shè)定為"H"電平。
[0224] 邏輯電路AND54在時(shí)鐘elk和地址寄存器2選擇信號(hào)0均為"H"電平時(shí),將"H" 電平的信號(hào)向代碼寄存器32的控制端子輸出。
[0225] 地址寄存器56在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的5位的地址。在該地址寄存器56中保持表示將多個(gè)插入代碼連續(xù)地插入時(shí)的插入順 序的地址。
[0226] 地址比較器57在從程序計(jì)數(shù)器12輸出的20位的地址中的低位5位(地址[4 : 0])與在地址寄存器56中保持的5位的地址一致時(shí),輸出"H"電平的一致信號(hào)。
[0227] 邏輯電路AND2在地址一致信號(hào)0為"H"電平且從地址比較器57輸出的一致信號(hào) 為"H"電平時(shí),將地址完全一致信號(hào)0設(shè)定為"H"電平。
[0228] 邏輯電路AND56在時(shí)鐘elk和插入末端寄存器選擇信號(hào)0均為"H"電平時(shí),將"H" 電平的信號(hào)向插入末端寄存器59的控制端子輸出。
[0229] 插入末端寄存器59在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線 傳送來(lái)的1位的數(shù)據(jù)(插入末端)。在代碼插入用寄存器組54-0中對(duì)應(yīng)的插入末端寄存器 59保持有"H"( "1")的數(shù)據(jù)的情況表示因該對(duì)應(yīng)的代碼插入用寄存器組的插入代碼的插 入而使代碼插入暫時(shí)結(jié)束。
[0230] 邏輯電路AND55接收地址完全一致信號(hào)0和插入末端寄存器59的輸出。邏輯電 路AND55在地址完全一致信號(hào)0為"H"電平時(shí),將在插入末端寄存器59中保持的1位的數(shù) 據(jù)(插入末端)作為插入末端信號(hào)〇而輸出。
[0231] 邏輯電路AND4在時(shí)鐘elk和代碼寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向代碼寄存器32的控制端子輸出。
[0232] 代碼寄存器32在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的16位的數(shù)據(jù)(即插入代碼)。
[0233] 邏輯電路AND3接收地址完全一致信號(hào)0和代碼寄存器32的輸出。邏輯電路AND3 在地址完全一致信號(hào)0為"H"電平時(shí),將在代碼寄存器32中保持的16位的數(shù)據(jù)(即插入 代碼)作為代碼寄存器輸出信號(hào)〇而輸出。邏輯電路AND3在地址完全一致信號(hào)0為"L" 電平時(shí),將16位的"0x0000"作為代碼寄存器輸出信號(hào)0而輸出。
[0234] 在圖19中,地址一致信號(hào)0為1位的信號(hào)。地址完全一致信號(hào)0為1位的信號(hào)。 插入末端信號(hào)〇為1位的信號(hào)。代碼寄存器輸出信號(hào)〇為16位的信號(hào)。這些事項(xiàng)在其他 附圖中也同樣。
[0235] (第2實(shí)施方式的動(dòng)作例)
[0236] 圖20 (a)是表示在代碼插入用寄存器組29-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持有"0x01061"的高位15位(第6位?第20位),在地址寄存器56中保持 有"0x01061"的低位5位(第1位?第5位)。而且,在代碼插入用寄存器組#0的代碼寄 存器32中保持有插入代碼"Code Reg. 0",在代碼插入用寄存器組#0的插入末端寄存器59 中保持有插入末端"0b0"。
[0237] 在代碼插入用寄存器組#1的地址寄存器31中保持有"0x01062"的高位15位,在 地址寄存器56中保持有"0x01062"的低位5位。而且,在代碼插入用寄存器組#1的代碼 寄存器32中保持有插入代碼"Code Reg. 1",在代碼插入用寄存器組#1的插入末端寄存器 59中保持有插入末端"Obi"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·"中保持 有源代碼"R· · · · "。
[0238] 圖20(b)是圖20(a)的條件下的時(shí)序圖。
[0239] 在第0循環(huán)中,從程序計(jì)數(shù)器51輸出的20位的地址(PC值[19 :0])為"0x01020"。 而且,地址"0x01020"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x01061"的高位15位不同,且與在代碼插入用寄存器組#1的地址寄存器31中保 持的地址"0x01062"的高位15位也不同,因此地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用 R0M13輸出"0x01020"的地址的源代碼即"R01020"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R01020"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01000"。
[0240] 在第1循環(huán)中,前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為"0b0", 因此程序計(jì)數(shù)器51的選擇器53輸出"0x20"。由此,程序計(jì)數(shù)器51的輸出地址成為加上 了 "0x20"的"0x01040"。而且,地址"0x01040"的高位15位與在代碼插入用寄存器組#0 的地址寄存器31中保持的地址"0x01061"的高位15位不同,且與在代碼插入用寄存器組 #1的地址寄存器31中保持的地址"0x01062"的高位15位也不同。因此,地址一致信號(hào)及 地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為 "ObO"。從閃存控制代碼用ROM13輸出"0x01020"的地址的源代碼即"R01040"。由于地址 完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R01040"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R01020"。
[0241] 在第2循環(huán)中,前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為"ObO", 因此程序計(jì)數(shù)器51的選擇器53輸出"0x20"。由此,程序計(jì)數(shù)器51的輸出地址成為加上 了 "0x20"的"0x01060"。而且,地址"0x01060"的高位15位與在代碼插入用寄存器組#0 的地址寄存器31中保持的地址"0x01061"的高位15位一致,且與在代碼插入用寄存器組 #1的地址寄存器31中保持的地址"0x01062"的高位15位也一致。其結(jié)果是,地址一致 信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而且, 地址"0x01060"的低位5位與在代碼插入用寄存器組#0的地址寄存器56中保持的地址 "0x01061"的低位5位不同,且與在代碼插入用寄存器組#1的地址寄存器56中保持的地址 "0x01062"的低位5位不同。其結(jié)果是,地址完全一致信號(hào)仍為"L"電平(這是因?yàn)榈刂?完全一致信號(hào)0及地址完全一致信號(hào)1仍為"L"電平)。由于地址完全一致信號(hào)為"L"電 平,因此代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"ObO"。從閃存控制代碼用 R0M13輸出"0x01060"的地址的源代碼即"R01060"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R01060"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01040"。
[0242] 在第3循環(huán)中,前一循環(huán)的地址一致信號(hào)為"H"電平且插入末端信號(hào)為"0b0",因 此程序計(jì)數(shù)器51的選擇器24輸出"0x01"。因此,程序計(jì)數(shù)器51的輸出地址成為加上了 "0x01"的"0x01061"。而且,地址"0x01061"的高位15位與在代碼插入用寄存器組#0的 地址寄存器31中保持的地址"0x01061"的高位15位一致,且與在代碼插入用寄存器組#1 的地址寄存器31中保持的地址"0x01062"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為 "H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而且,地址"0x01061" 的低位5位與在代碼插入用寄存器組#0的地址寄存器56中保持的地址"0x01061"的低位 5位一致,因此地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0成為"H"電 平)。由于地址完全一致信號(hào)0成為"H"電平,因此代碼寄存器輸出信號(hào)0成為在代碼插入 用寄存器組#〇的代碼寄存器32中保持的插入代碼"Code Reg.0"。由此,代碼寄存器輸出 信號(hào)成為插入代碼"Code Reg. 0"。由于地址完全一致信號(hào)0成為"H"電平,因此插入末端 信號(hào)〇成為在代碼插入用寄存器組#〇的插入末端寄存器59中保持的插入末端"0b0"。由 此,插入末端信號(hào)成為"0b0"。由于地址完全一致信號(hào)為"H"電平,因此代碼選擇電路14將 插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36 執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01060"。
[0243] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平且插入末端信號(hào)為 "0b0",因此程序計(jì)數(shù)器51的選擇器24輸出"0x01"。因此,程序計(jì)數(shù)器51的輸出地址成 為加上了 "0x01"的"0x01062"。地址"0x01062"的高位15位與在代碼插入用寄存器組 #0的地址寄存器31中保持的地址"0x01061"的高位15位一致,且與在代碼插入用寄存器 組#1的地址寄存器31中保持的地址"0x01062"的高位15位一致。其結(jié)果是,地址一致 信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而且, 地址"0x01062"的低位5位與在代碼插入用寄存器組#1的地址寄存器56中保持的地址 "0x01062"的低位5位一致,因此地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢?信號(hào)1成為"H"電平)。由于地址完全一致信號(hào)1成為"H"電平,因此代碼寄存器輸出信 號(hào)1成為在代碼插入用寄存器組#1的代碼寄存器32中保持的插入代碼"Code Reg. 1"。由 此,代碼寄存器輸出信號(hào)成為插入代碼"Code Reg. 1"。由于地址完全一致信號(hào)1成為"Η" 電平,因此插入末端信號(hào)1成為在代碼插入用寄存器組#1的插入末端寄存器59中保持的 插入末端"Obi"。由此,插入末端信號(hào)成為"Obi"。由于地址完全一致信號(hào)為"Η"電平,因 此代碼選擇電路14將插入代碼"Code Reg. 1"向命令執(zhí)行部15的取得部35輸出。命令執(zhí) 行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0244] 在第5循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"Η"電平且插入末端信號(hào)為 "Obl",因此程序計(jì)數(shù)器51的選擇器24輸出"0x20"。而且,由于插入末端信號(hào)為"Obl",因 此通過(guò)邏輯電路74,加法器25的輸出的低位5位成為"0"。其結(jié)果是,程序計(jì)數(shù)器51的輸 出地址成為"0x01080"。地址"0x01080"的高位15位與在代碼插入用寄存器組#0的地址 寄存器31中保持的地址"0x01061"的高位15位不同,且與在代碼插入用寄存器組#1的地 址寄存器31中保持的地址"0x01062"的高位15位不同。其結(jié)果是,地址一致信號(hào)成為"L" 電平(這是因?yàn)榈刂芬恢滦盘?hào)〇及地址一致信號(hào)1成為"L"電平)。而且,地址"0x01080" 的低位5位與在代碼插入用寄存器組#0的地址寄存器56中保持的地址"0x01061"的低位 5位不同,且與在代碼插入用寄存器組#1的地址寄存器56中保持的地址"0x01062"的低位 5位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0及地 址完全一致信號(hào)1成為"L"電平)。由于地址完全一致信號(hào)為"L"電平,因此代碼寄存器輸 出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用R0M13輸出"0x01080" 的地址的源代碼即"R01080"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將 源代碼"R01080"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在 前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 1"。
[0245] 在第6循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為 "0b0",因此程序計(jì)數(shù)器51的選擇器53輸出"0x20"。由此,程序計(jì)數(shù)器51的輸出地址成 為加上了"0x20"的"ΟχΟΙΟΑΟ"。地址"ΟχΟΙΟΑΟ"的高位15位與在代碼插入用寄存器組#0 的地址寄存器31中保持的地址"0x01061"的高位15位不同,且與在代碼插入用寄存器組 #1的地址寄存器31中保持的地址"0x01062"的高位15位不同。其結(jié)果是,地址一致信號(hào) 及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成 為"0b0"。從閃存控制代碼用R0M13輸出"ΟχΟΙΟΑΟ"的地址的源代碼即"R010A0"。由于地 址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R010A0"向命令執(zhí)行部15的 取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代 碼 "R01080"。
[0246] 在第7循環(huán)以后與第6循環(huán)同樣地進(jìn)行動(dòng)作。
[0247] 如上所述,根據(jù)本實(shí)施方式,通過(guò)程序計(jì)數(shù)器的地址的除了從最低位起的預(yù)定個(gè) 數(shù)的位以外的位來(lái)指定源代碼的地址,使用從最低位起的預(yù)定個(gè)數(shù)的位來(lái)控制代碼的插 入,因此能夠在兩個(gè)源代碼之間插入1個(gè)以上的代碼,且能夠進(jìn)行多循環(huán)命令的執(zhí)行。而 且,根據(jù)第1實(shí)施方式,將程序計(jì)數(shù)器12的輸出設(shè)為16位進(jìn)行了說(shuō)明,但是在本實(shí)施方式 中,由于插入多個(gè)命令代碼,因此假定程序計(jì)數(shù)器51的輸出為20位。
[0248] [第3實(shí)施方式]
[0249] (結(jié)構(gòu))
[0250] 圖21是表示第3實(shí)施方式的閃存控制部312的結(jié)構(gòu)的圖。
[0251] 圖21的閃存控制部312與圖7的第1實(shí)施方式的閃存控制部2的區(qū)別點(diǎn)在于插 入代碼寄存器組塊164。
[0252] 插入代碼寄存器組塊164在所保持的插入代碼的地址的除了最低位的位之外的 位與程序計(jì)數(shù)器12的地址的除了最低位的位之外的位一致時(shí),輸出第1信號(hào)(即,將地址 一致信號(hào)設(shè)定為"H"電平)。插入代碼寄存器組塊164在輸出第1信號(hào)且所保持的插入代 碼的地址的最低位的位與程序計(jì)數(shù)器12的地址的最低位的位一致時(shí),輸出第2信號(hào)(即, 將地址一致信號(hào)設(shè)定為"H"電平),并將所保持的插入代碼輸出。
[0253] 圖22是表示插入代碼寄存器組塊164所包含的代碼插入用寄存器組64-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組64-1?64-n的結(jié)構(gòu)也與圖22的代碼插入用寄存器組64-0的 結(jié)構(gòu)同樣。
[0254] 圖22的代碼插入用寄存器組64-0與圖11的第1實(shí)施方式的代碼插入用寄存器 組29-0的區(qū)別點(diǎn)在于具備地址寄存器131和一致電路NE0R1的點(diǎn)。
[0255] 地址寄存器131在邏輯電路AND1的輸出為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線 傳送來(lái)的16位的地址。
[0256] -致電路XN0R1在從程序計(jì)數(shù)器12輸出的16位的地址中的最低位的位(地址 [0])與在地址寄存器131中保持的16位的地址中的最低位的位一致時(shí),將一致信號(hào)設(shè)定為 "H"電平。
[0257] 邏輯電路AND2在地址一致信號(hào)0為"H"電平且從一致電路NR0R1輸出的一致信 號(hào)為"H"電平時(shí),將地址完全一致信號(hào)0設(shè)定為"H"電平。
[0258] (第3實(shí)施方式的動(dòng)作例)
[0259] 說(shuō)明插入前的源代碼及插入代碼為單循環(huán)命令時(shí)的動(dòng)作例。
[0260] 圖23 (a)是表示在代碼插入用寄存器組64-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器131中保持有16位的"0x0106"。而且,在代碼插入用寄存器組#0的代碼寄存器32 中保持有插入代碼"Code Reg.O"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·"中 保持有源代碼"R· · · · "。
[0261] 圖23(b)是圖23(a)的條件下的時(shí)序圖。
[0262] 在第0循環(huán)中,從程序計(jì)數(shù)器12輸出的16位的地址(PC值[15 :0])為"0x0102"。 地址"0x0102"的高位15位與在地址寄存器131中保持的地址"0x0106"的高位15位不 同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為 "0x0000"。從閃存控制代碼用R0M13輸出"0x0102"的地址的源代碼即"R0102"。由于地址 完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0102"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R0100"。
[0263] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0104"。 地址"0x0104"的高位15位與在地址寄存器131中保持的地址"0x0106"的高位15位不 同。其結(jié)果是,地址一致信號(hào)、地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為 "0x0000"。從閃存控制代碼用R0M13輸出"0x0104"的地址的源代碼即"R0104"。由于地址 完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0104"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R0102"。
[0264] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器12的選 擇器24輸出"0x02",因此程序計(jì)數(shù)器12的輸出地址成為加上了 "0x02"的"0x0106"。地 址"0x0106"的高位15位與在地址寄存器131中保持的地址"0x0106"的高位15位一致, 因此地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。而且,地址 "0x0106"的低位1位與在地址寄存器131中保持的地址"0x0106"的低位1位一致,因此地 址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0成為"H"電平)。而且,代碼 寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代碼"Code Reg. 0"(這是因?yàn)榇a寄 存器輸出信號(hào)〇成為"Code Reg.O")。由于地址完全一致信號(hào)為"H"電平,因此代碼選擇 電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的 執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R0104"。
[0265] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0107"。 地址"0x0107"的高位15位與在地址寄存器131中保持的地址"0x0106"的高位15位一 致,因此地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。而且,地 址"0x0107"的低位1位與在地址寄存器131中保持的地址"0x0106"的低位1位不同。其 結(jié)果是,地址完全一致信號(hào)成為"L"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0及地址完全一致 信號(hào)成為"L"電平),代碼寄存器輸出信號(hào)成為"0x0000"。從閃存控制代碼用R0M13輸出 忽略程序計(jì)數(shù)器12的輸出地址"0x0107"的低位1位而相同的"0x0106"的地址的源代碼 艮P "R0106"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0106" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的插入代碼"Code Reg. 0"。
[0266] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"Η"電平,因此程序計(jì)數(shù)器12的 選擇器24輸出"0x01"。由此,程序計(jì)數(shù)器12的輸出地址成為加上了 "0x01"的"0x0108"。 地址"0x0108"的高位15位與在地址寄存器131中保持的地址"0x0106"的高位15位不 同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為 "0x0000"。從閃存控制代碼用R0M13輸出"0x0108"的地址的源代碼即"R0108"。由于地址 完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0108"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R0106"。
[0267] 在第5循環(huán)以后與第4循環(huán)同樣地進(jìn)行動(dòng)作。
[0268] 如上所述,根據(jù)本實(shí)施方式,與第1實(shí)施方式同樣地,通過(guò)程序計(jì)數(shù)器的地址的除 了最低位的位以外的位來(lái)指定源代碼的地址,使用最低位的位來(lái)控制代碼的插入,因此能 夠在兩個(gè)源代碼之間插入1個(gè)代碼,且能夠執(zhí)行多循環(huán)命令。而且,根據(jù)本實(shí)施方式,能夠 選擇是在源代碼之后執(zhí)行插入代碼的執(zhí)行(后插入)還是在源代碼之前執(zhí)行插入代碼的執(zhí) 行(前插入)。
[0269] [第4實(shí)施方式]
[0270] (結(jié)構(gòu))
[0271] 圖24是表示第4實(shí)施方式的閃存控制部103的結(jié)構(gòu)的圖。
[0272] 圖24的閃存控制部103與圖16的第2實(shí)施方式的閃存控制部102的區(qū)別點(diǎn)在于 程序計(jì)數(shù)器65。
[0273] 程序計(jì)數(shù)器65在接收到插入末端信號(hào)時(shí),將從最低位起的k位設(shè)為"1"。
[0274] 以下,設(shè)為k = 5進(jìn)行說(shuō)明。
[0275] 圖25是表示第4實(shí)施方式的程序計(jì)數(shù)器65的結(jié)構(gòu)的圖。
[0276] 如圖25所示,程序計(jì)數(shù)器65具備選擇器68、加法器25、邏輯電路0R68、選擇器26、 選擇器27、PC用寄存器28。
[0277] 選擇器68從插入代碼寄存器組塊52接收地址一致信號(hào)。選擇器68在地址一致 信號(hào)為"H"電平時(shí),輸出"0x01"。選擇器68在地址一致信號(hào)為"L"電平時(shí),輸出"0x20"。
[0278] 加法器25將從PC用寄存器28輸出的20位的地址" 19 :0"與從選擇器68輸出的 值相加。
[0279] 邏輯電路0R68輸出從加法器25輸出的20位中的低位5位與插入末端信號(hào)的邏 輯和。即,邏輯電路0R68在插入末端信號(hào)為"L"電平時(shí),輸出從加法器25輸出的20位中 的低位5位。邏輯電路0R68在插入末端信號(hào)為"H"電平時(shí),輸出5位的"Oblllll"。
[0280] 選擇器26接收將從加法器25輸出的20位中的高位15位(第6位?第20位) 設(shè)為高位15位并將從邏輯電路0R68輸出的5位的信號(hào)設(shè)為低位5位而得的信號(hào)、及從命 令執(zhí)行部15輸出的運(yùn)算結(jié)果PC。選擇器26在從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC選擇信 號(hào)為"H"電平時(shí),輸出運(yùn)算結(jié)果PC,在運(yùn)算結(jié)果PC選擇信號(hào)為"L"電平時(shí),輸出加法器25 及邏輯電路58的信號(hào)。
[0281] 選擇器27接收選擇器26的輸出和從PC用寄存器28輸出的地址。選擇器27在 從命令執(zhí)行部15輸出的PC延遲信號(hào)為"H"電平時(shí),輸出從PC用寄存器28輸出的地址,在 PC延遲信號(hào)為"L"電平時(shí),輸出選擇器26的輸出。
[0282] PC用寄存器28將選擇器27的輸出鎖存,作為閃存控制用代碼用ROM的地址向內(nèi) 部地址總線23輸出。
[0283] (第4實(shí)施方式的動(dòng)作例)
[0284] 圖26 (a)是表示在代碼插入用寄存器組54-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持有"0x01060"的高位15位,在地址寄存器56中保持有"0x01060"的低位 5位。而且,在代碼插入用寄存器組#0的代碼寄存器32中保持有插入代碼"Code Reg.O"。 而且,在代碼插入用寄存器組#0的插入末端寄存器59中保持有插入末端"ObO"。在代碼 插入用寄存器組#1的地址寄存器31中保持有"0x01061"的高位15位,在地址寄存器56 中保持有"0x01061"的低位5位。而且,在代碼插入用寄存器組#01代碼寄存器32中保持 有插入代碼"Code Reg. 1"。而且,在代碼插入用寄存器組#1的插入末端寄存器59中保持 有插入末端"〇bl"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·"中保持有源代碼 "R · · · ·,,。
[0285] 圖26(b)是圖26(a)的條件下的時(shí)序圖。
[0286] 在第0循環(huán)中,從程序計(jì)數(shù)器65輸出的20位的地址(PC值[19 :0])為"0x01020"。 地址"0x01020"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x01060"的高位15位不同,且與在代碼插入用寄存器組#1的地址寄存器31中保持的地 址"0x01061"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用 R0M13輸出"0x01020"的地址的源代碼即"R01020"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R01020"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01000"。
[0287] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器65的選 擇器68輸出"0x20"。由此,程序計(jì)數(shù)器65的輸出地址成為加上了 "0x20"的"0x01040"。 地址"0x01040"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x01061"的高位15位不同,且與在代碼插入用寄存器組#1的地址寄存器31中保持的 地址"0x01062"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用 R0M13輸出"0x01040"的地址的源代碼即"R01040"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R01040"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01020"。
[0288] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器65的選 擇器68輸出"0x20"。由此,程序計(jì)數(shù)器65的輸出地址成為加上了 "0x20"的"0x01060"。 地址"0x01060"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x01060"的高位15位一致,且與在代碼插入用寄存器組#1的地址寄存器31中保持的地 址"0x01061"的高位15位一致,因此地址一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào) 0及地址一致信號(hào)1成為"H"電平)。而且,地址"0x01060"的低位5位與在代碼插入用寄 存器組#0的地址寄存器56中保持的地址"0x01060"的低位5位一致,因此地址完全一致信 號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0成為"H"電平)。由于地址完全一致信號(hào)0 成為"H"電平,因此代碼寄存器輸出信號(hào)0成為在代碼插入用寄存器組#0的代碼寄存器32 中保持的插入代碼"Code Reg. 0"。由此,代碼寄存器輸出信號(hào)成為插入代碼"Code Reg. 0"。 由于地址完全一致信號(hào)0成為"Η"電平,因此插入末端信號(hào)0成為在代碼插入用寄存器組 #〇的插入末端寄存器59中保持的插入末端"0b0"。由此,插入末端信號(hào)成為"0b0"。由于 地址完全一致信號(hào)為"H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí) 行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部 35的源代碼"R01040"。
[0289] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器65的選 擇器68輸出"0x01"。由此,程序計(jì)數(shù)器65的輸出地址成為加上了 "0x01"的"0x01061"。 地址"0x01061"的高位15位(第6位?第20位)與在代碼插入用寄存器組#0的地址寄 存器31中保持的地址"0x01060"的高位15位一致,且與在代碼插入用寄存器組#1的地址 寄存器31中保持的地址"0x01061"的高位15位一致。其結(jié)果是,地址一致信號(hào)成為"H" 電平(這是因?yàn)榈刂芬恢滦盘?hào)〇及地址一致信號(hào)1成為"H"電平)。而且,地址"0x01061" 的低位5位與在代碼插入用寄存器組#1的地址寄存器56中保持的地址"0x01061"的低位 5位一致。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)1成 為"H"電平)。由于地址完全一致信號(hào)1成為"H"電平,因此代碼寄存器輸出信號(hào)1成為 在代碼插入用寄存器組#1的代碼寄存器32中保持的插入代碼"Code Reg. 1"。由此,代碼 寄存器輸出信號(hào)成為插入代碼"Code Reg. 1"。由于地址完全一致信號(hào)1成為"H"電平,因 此插入末端信號(hào)1成為在代碼插入用寄存器組#1的插入末端寄存器59中保持的插入末端 "〇bl"。由此,插入末端信號(hào)成為"Obi"。由于地址完全一致信號(hào)為"H"電平,因此代碼選擇 電路14將插入代碼"Code Reg. 1"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的 執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0290] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"Η"電平,因此程序計(jì)數(shù)器65的 選擇器68輸出"0x01"。而且,由于插入末端信號(hào)"Obl",因此通過(guò)邏輯電路0R68使從加 法器25輸出的20位的地址的低位5位成為" 1"。其結(jié)果是,程序計(jì)數(shù)器65的輸出地址成 為"0x0107F"。地址"0x0107F"的高位15位(第6位?第20位)與在代碼插入用寄存器 組#0的地址寄存器31中保持的地址"0x01060"的高位15位一致,且與在代碼插入用寄 存器組#1的地址寄存器31中保持的地址"0x01061"的高位15位一致。其結(jié)果是,地址 一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而 且,地址"0x0107F"的低位5位與在代碼插入用寄存器組#0的地址寄存器56中保持的地 址"0x01060"的低位5位不同,且與在代碼插入用寄存器組#1的地址寄存器56中保持的 地址"0x01061"的低位5位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平(這是因?yàn)?地址完全一致信號(hào)0及地址完全一致信號(hào)成為"L"電平)。由于地址完全一致信號(hào)成為 "L"電平,因此代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制 代碼用R0M13輸出忽略"0x0107F"的地址的低位5位而相同的地址"0x01060"的源代碼即 "R01060"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R01060" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的插入代碼"Code Reg. 1"。
[0291] 在第5循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"Η"電平,因此程序計(jì)數(shù)器65的選 擇器68輸出"0x01"。而且,由于插入末端信號(hào)為"0b0",因此通過(guò)邏輯電路0R68使從加法 器25輸出的20位的地址的低位5位原封不動(dòng)地輸出。其結(jié)果是,程序計(jì)數(shù)器65的輸出地 址成為"0x01080"。而且,地址"0x01080"的高位15位與在代碼插入用寄存器組#0的地址 寄存器31中保持的地址"0x01060"的高位15位不同,且與在代碼插入用寄存器組#1的地 址寄存器31中保持的地址"0x01061"的高位15位不同。其結(jié)果是,地址一致信號(hào)成為"L" 電平(這是因?yàn)榈刂芬恢滦盘?hào)〇及地址一致信號(hào)1成為"L"電平)。而且,地址"0x01080" 的低位5位與在代碼插入用寄存器組#0的地址寄存器56中保持的地址"0x01060"的低位 5位不同,且與在代碼插入用寄存器組#1的地址寄存器56中保持的地址"0x01061"的低位 5位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平(這是因?yàn)榈刂吠耆恢滦盘?hào)0及地 址完全一致信號(hào)1成為"L"電平)。由于地址完全一致信號(hào)為"L"電平,因此代碼寄存器輸 出信號(hào)成為"0x0000",插入末端信號(hào)成為"ObO"。從閃存控制代碼用R0M13輸出"0x01080" 的地址的源代碼即"R01080"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將 源代碼"R01080"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在 前一循環(huán)中被輸出到取得部35的源代碼"R01060"。
[0292] 在第6循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器65的 選擇器68輸出"0x20",因此程序計(jì)數(shù)器65的輸出地址成為加上了 "0x20"的"ΟχΟΙΟΑΟ"。 地址"ΟχΟΙΟΑΟ"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x01060"的高位15位不同,且與在代碼插入用寄存器組#1的地址寄存器31中保持的地 址"0x01061"的高位15位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用 R0M13輸出"ΟχΟΙΟΑΟ"的地址的源代碼即"R010A0"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R010A0"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R01080"。
[0293] 在第7循環(huán)以后與第6循環(huán)同樣地進(jìn)行動(dòng)作。
[0294] 如上所述,根據(jù)本實(shí)施方式,與第2實(shí)施方式同樣地,通過(guò)程序計(jì)數(shù)器的地址的除 了從最低位起的預(yù)定個(gè)數(shù)的位以外的位來(lái)指定源代碼的地址,使用從最低位起的預(yù)定個(gè)數(shù) 的位來(lái)控制代碼的插入,因此能夠在兩個(gè)源代碼之間插入1個(gè)以上的代碼,且能夠執(zhí)行多 循環(huán)命令。而且,根據(jù)本實(shí)施方式,在來(lái)自程序計(jì)數(shù)器的地址與地址寄存器的值一致的情況 下,與在源代碼之前執(zhí)行插入代碼的執(zhí)行的第2實(shí)施方式相對(duì),在源代碼之后執(zhí)行插入代 碼的執(zhí)行。
[0295] [第5實(shí)施方式]
[0296] (結(jié)構(gòu))
[0297] 圖27是表示第5實(shí)施方式的閃存控制部395的結(jié)構(gòu)的圖。
[0298] 圖27的閃存控制部395與圖7的第1實(shí)施方式的閃存控制部2的區(qū)別點(diǎn)在于插 入代碼寄存器組塊396。
[0299] 圖28是表示插入代碼寄存器組塊396所包含的代碼插入用寄存器組40-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組40-1?40-n的結(jié)構(gòu)也與圖28的代碼插入用寄存器組40-0的 結(jié)構(gòu)同樣。
[0300] 圖28的代碼插入用寄存器組40-0與圖11的第1實(shí)施方式的代碼插入用寄存器 組29-0的區(qū)別點(diǎn)在于邏輯電路AND6、狀態(tài)寄存器34、邏輯電路AND5。
[0301] 邏輯電路AND6在時(shí)鐘elk和狀態(tài)寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向狀態(tài)寄存器34的控制端子輸出。
[0302] 狀態(tài)寄存器34在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的1位的狀態(tài)值。
[0303] 邏輯電路AND5將狀態(tài)寄存器34的輸出與地址比較器30的輸出的邏輯積作為地 址一致信號(hào)0而輸出。因此,在狀態(tài)值被設(shè)定為"0"時(shí),地址一致信號(hào)0、地址完全一致信號(hào) 〇始終成為"L"電平。其結(jié)果是,代碼選擇電路12在狀態(tài)值為"0"時(shí),無(wú)論程序計(jì)數(shù)器12 的地址如何,都選擇從閃存控制代碼用R0M13輸出的源代碼。由此,本實(shí)施方式中說(shuō)明的代 碼的插入功能無(wú)效。
[0304] 如上所述,根據(jù)本實(shí)施方式,根據(jù)狀態(tài)值能夠切換代碼的插入功能的有效/無(wú)效。
[0305][第6實(shí)施方式]
[0306] (結(jié)構(gòu))
[0307] 圖29是表示第6實(shí)施方式的閃存控制部423的結(jié)構(gòu)的圖。
[0308] 圖29的閃存控制部423與圖7的第1實(shí)施方式的閃存控制部102的區(qū)別點(diǎn)在于 插入代碼寄存器組塊424和程序計(jì)數(shù)器72。
[0309] 插入代碼寄存器組塊424在所保持的插入代碼的地址的除了最高位的位之外的 位與程序計(jì)數(shù)器72的地址的除了最高位的位之外的位一致時(shí),輸出第1信號(hào)(即,將地址 一致信號(hào)設(shè)定為"H"電平)。
[0310] 插入代碼寄存器組塊424在輸出第1信號(hào)且程序計(jì)數(shù)器72的地址的最高位的位 為" 1"時(shí),輸出第2信號(hào)(即,將地址完全一致信號(hào)設(shè)定為"H"電平),并將所保持的插入代 碼輸出。
[0311] 程序計(jì)數(shù)器72在接收到第1信號(hào)時(shí),對(duì)最高位的位加上" 1",在未接收到第1信號(hào) 時(shí),對(duì)從最低位起的第2位加上" 1"。
[0312] 圖30是表示程序計(jì)數(shù)器72的結(jié)構(gòu)的圖。
[0313] 如圖30所示,程序計(jì)數(shù)器72具備選擇器73、加法器25、邏輯電路AND72、選擇器 26、選擇器27及PC用寄存器28。
[0314] 選擇器73從插入代碼寄存器組塊424接收地址一致信號(hào)和地址完全一致信號(hào)。在 地址一致信號(hào)為"H"電平且地址完全一致信號(hào)為"L"電平時(shí),選擇器73輸出"0x10000"。 在地址一致信號(hào)為"L"電平且地址完全一致信號(hào)為"H"電平時(shí)、地址一致信號(hào)為"L"電平 且地址完全一致信號(hào)為"L"電平時(shí)、或者地址一致信號(hào)為"H"電平且地址完全一致信號(hào)為 "H"電平時(shí),選擇器73輸出"0x02"。
[0315] 加法器25將從PC用寄存器28輸出的17位的地址[16 :0]與從選擇器73輸出 的值相加。在本實(shí)施方式中,由于插入1個(gè)命令代碼,因此假定程序計(jì)數(shù)器72的輸出為17 位。
[0316] 邏輯電路AND72輸出從加法器25輸出的17位中的最高位1位與地址完全一致信 號(hào)的否定的邏輯積。即,邏輯電路AND72在地址完全一致信號(hào)為"L"電平時(shí),輸出從加法器 25輸出的17位中的最高位1位。邏輯電路AND72在地址完全一致信號(hào)為"H"電平時(shí),輸出 1 位的 "ObO"。
[0317] 選擇器26接收將從加法器25輸出的17位中的低位16位設(shè)為低位16位并將從 邏輯電路AND72輸出的1位的信號(hào)設(shè)為最高位1位而得的信號(hào)、及從命令執(zhí)行部15輸出的 運(yùn)算結(jié)果PC。選擇器26在從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC選擇信號(hào)為"H"電平時(shí), 輸出運(yùn)算結(jié)果PC,在運(yùn)算結(jié)果PC選擇信號(hào)為"L"電平時(shí),輸出來(lái)自加法器25及邏輯電路 AND72的信號(hào)。
[0318] 選擇器27接收選擇器26的輸出和從PC用寄存器28輸出的地址。選擇器27在 從命令執(zhí)行部15輸出的PC延遲信號(hào)為"H"電平時(shí),輸出從PC用寄存器28輸出的地址,在 PC延遲信號(hào)為"L"電平時(shí),輸出選擇器26的輸出。
[0319] PC用寄存器28將選擇器27的輸出鎖存,作為閃存控制用代碼用ROM的地址向內(nèi) 部地址總線23輸出。
[0320] 圖31是表示插入代碼寄存器組塊424所包含的代碼插入用寄存器組71-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組71-1?71-n的結(jié)構(gòu)也與圖31的代碼插入用寄存器組71-0的 結(jié)構(gòu)同樣。
[0321] 如圖31所示,代碼插入用寄存器組71-0具備邏輯電路AND1、地址寄存器31、地址 比較器30、邏輯電路AND4、代碼寄存器32及邏輯電路AND71。
[0322] 邏輯電路AND1在時(shí)鐘elk和地址寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向地址寄存器31的控制端子輸出。
[0323] 地址寄存器31在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的16位的地址。
[0324] 地址比較器30在從程序計(jì)數(shù)器72輸出的17位的地址中的低位16位(地址[15 : 0])與在地址寄存器31中保持的16位的地址一致時(shí),將地址一致信號(hào)0設(shè)定為"H"電平。
[0325] 邏輯電路AND71在地址一致信號(hào)0為"H"電平且從程序計(jì)數(shù)器72輸出的17位的 地址中的最高位1位(地址[16])為"1"時(shí),將地址完全一致信號(hào)0設(shè)定為"H"電平。
[0326] 邏輯電路AND4在時(shí)鐘elk和代碼寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向代碼寄存器32的控制端子輸出。
[0327] 代碼寄存器32在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的16位的數(shù)據(jù)(即插入代碼)。
[0328] (第6實(shí)施方式的動(dòng)作例)
[0329] 圖32 (a)是表示在代碼插入用寄存器組71-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址寄 存器31中保持有"0x00106"的低位16位。而且,在代碼插入用寄存器組#0的代碼寄存器 32中保持有插入代碼"Code Reg. 0"。而且,在閃存控制代碼用R0M13的地址"Ox · · · · " 中保持有源代碼"R· · · · "。
[0330] 圖32(b)是圖32(a)的條件下的時(shí)序圖。
[0331] 在第0循環(huán)中,從程序計(jì)數(shù)器72輸出的17位的地址(PC值[16 :0])為"0x00102"。 而且,地址"0x00102"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x00106"的低位16位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出"0x00102"的地 址的源代碼即"R00102"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代 碼"R00102"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一 循環(huán)中被輸出到取得部35的源代碼"R00100"。
[0332] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且地址完全一致信號(hào)為 "L"電平,因此程序計(jì)數(shù)器72的選擇器73輸出"0x02"。由此,程序計(jì)數(shù)器72的輸出地址 成為加上了 "0x02"的"0x00104"。地址"0x00104"的低位16位與在代碼插入用寄存器組 #0的地址寄存器31中保持的地址"0x00106"的低位16位不同。其結(jié)果是,地址一致信號(hào)、 地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用 R0M13輸出"0x00104"的地址的源代碼即"R00104"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R00104"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00102"。
[0333] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且地址完全一致信號(hào)為 "L"電平,因此程序計(jì)數(shù)器72的選擇器24輸出"0x02"。由此,程序計(jì)數(shù)器72的輸出地址 成為加上了 "0x02"的"0x00106"。地址"0x00106"的低位16位與在代碼插入用寄存器組 #0的地址寄存器31中保持的地址"0x00106"的低位16位一致。其結(jié)果是,地址一致信號(hào) 成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。另一方面,由于程序計(jì)數(shù)器72 的輸出地址的最高位的位為"0",因此地址完全一致信號(hào)仍為"L"電平,代碼寄存器輸出信 號(hào)仍為"0x00000"。從閃存控制代碼用R0M13輸出"0x00106"的地址的源代碼即"R00106"。 由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R00106"向命令執(zhí)行 部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35 的源代碼"R00104"。
[0334] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平且地址完全一致信號(hào)為 "L"電平,因此程序計(jì)數(shù)器72的選擇器73輸出"0x10000"。由此,程序計(jì)數(shù)器72的輸出地 址成為加上了"0x10000"的"0x10106"。地址"0x10106"的低位16位與在代碼插入用寄存 器組#0的地址寄存器31中保持的地址"0x00106"的低位16位一致,因此地址一致信號(hào)成 為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成為"H"電平)。由于程序計(jì)數(shù)器72的輸出地址 的最高位的位為" 1",因此地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0成 為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址完全一致信號(hào)為 "H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸 出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00106"。
[0335] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平且地址完全一致信號(hào)為 "H"電平,因此程序計(jì)數(shù)器72的選擇器73輸出"0x02"。由于地址完全一致信號(hào)為"H"電 平,因此通過(guò)邏輯電路AND72使加法器25的輸出的最高位的位(第17位)成為"0"。其 結(jié)果是,程序計(jì)數(shù)器72的輸出地址成為"0x00108"。地址"0x00108"的低位16位與在地 址寄存器31中保持的地址"0x00106"的低位16位不同。其結(jié)果是,地址一致信號(hào)、地址完 全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13 輸出"0x00108"的地址的源代碼即"R00108"。由于地址完全一致信號(hào)為"L"電平,因此代 碼選擇電路14將源代碼"R00108"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的 執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0336] 在第5循環(huán)以后與第4循環(huán)同樣地進(jìn)行動(dòng)作。
[0337] 如上所述,根據(jù)本實(shí)施方式,通過(guò)程序計(jì)數(shù)器的地址的除了最高位的位以外的位 來(lái)指定源代碼的地址,使用最高位的位來(lái)控制代碼的插入,因此能夠在兩個(gè)源代碼之間插 入1個(gè)代碼,且能夠執(zhí)行多循環(huán)命令。
[0338] 此外,在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第2位以上的位有效, 但并不限定于此,也可以是多個(gè)源代碼的地址的從最低位起的第η位以上的位有效。其中, η為1以上的自然數(shù)。這種情況下,程序計(jì)數(shù)器72在未接收到第1信號(hào)時(shí)(地址一致信號(hào) 為"L"電平時(shí)),只要對(duì)從最低位起的第η位加上" 1"即可。此外,在本實(shí)施方式以后,是不 使用最低位的位的結(jié)構(gòu),因此向各程序計(jì)數(shù)器及插入代碼寄存器組的地址輸入即使為[15 : 1]也不要緊,但記為[15 :0]。
[0339] [第7實(shí)施方式]
[0340] 在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第m位以上的位有效。
[0341] 圖33是表示第7實(shí)施方式的閃存控制部623的結(jié)構(gòu)的圖。
[0342] 圖33的閃存控制部623與圖16的第2實(shí)施方式的閃存控制部102的區(qū)別點(diǎn)在于 插入代碼寄存器組塊624和程序計(jì)數(shù)器74。
[0343] 插入代碼寄存器組塊624最多保持2k_l個(gè)插入代碼和插入代碼的地址。插入代 碼寄存器組塊624在所保持的插入代碼的地址的除了從最高位起的k位之外的位與程序計(jì) 數(shù)器74的地址的除了從最高位起的k位之外的位一致時(shí),輸出第1信號(hào)(即,將地址一致 信號(hào)設(shè)定為"H"電平)。
[0344] 插入代碼寄存器組塊624在輸出第1信號(hào)且所保持的插入代碼的地址的從最高位 起的k位與程序計(jì)數(shù)器74的地址的從最高位起的k位一致時(shí),輸出第2信號(hào)(將地址完全 一致信號(hào)設(shè)定為"H"電平),并輸出與程序計(jì)數(shù)器74的地址對(duì)應(yīng)的保持的插入代碼。
[0345] 當(dāng)連續(xù)地插入多個(gè)插入代碼時(shí),在插入代碼寄存器組塊624輸出最后的插入代碼 的情況下,插入代碼寄存器組塊624輸出第2信號(hào),并同時(shí)輸出表不插入末端的插入末端信 號(hào)。
[0346] 程序計(jì)數(shù)器74在接收到第1信號(hào)時(shí),對(duì)從最高位起的第k位加上" 1",在未接收到 第1信號(hào)時(shí),對(duì)從最低位起的第m位加上"1"。
[0347] 程序計(jì)數(shù)器74在接收到插入末端信號(hào)時(shí),即使在接收到第1信號(hào)時(shí),也對(duì)從最低 位起的第m位加上" 1",并將從最高位起的k位設(shè)為"0"。
[0348] 在本實(shí)施方式中,設(shè)為m = 2、k = 4進(jìn)行說(shuō)明。
[0349] 圖34是表示程序計(jì)數(shù)器74的結(jié)構(gòu)的圖。
[0350] 如圖34所示,程序計(jì)數(shù)器74具備選擇器77、加法器25、邏輯電路AND74、選擇器 26、選擇器27及PC用寄存器28。
[0351] 選擇器77從插入代碼寄存器組塊624接收地址一致信號(hào)和插入末端信號(hào)。在地 址一致信號(hào)為"H"電平且插入末端信號(hào)為"L"電平時(shí),選擇器77輸出"0x10000"。在地址 一致信號(hào)為"L"電平且插入末端信號(hào)為"H"電平時(shí)、地址一致信號(hào)為"L"電平且插入末端 信號(hào)為"L"電平時(shí)、或者地址一致信號(hào)為"H"電平且插入末端信號(hào)為"H"電平時(shí),選擇器73 輸出 "0x02"。
[0352] 加法器25將從PC用寄存器28輸出的20位的地址與從選擇器73輸出的值相加。
[0353] 邏輯電路AND74輸出從加法器25輸出的20位中的高位4位與插入末端信號(hào)的否 定的邏輯積。即,邏輯電路AND74在插入末端信號(hào)為"L"電平時(shí),輸出從加法器25輸出的 20位中的高位4位。邏輯電路AND74在插入末端信號(hào)為"H"電平時(shí),輸出4位的"ObOOOO"。
[0354] 選擇器26接收將從加法器25輸出的20位中的低位16位作為低位16位并將從 邏輯電路AND74輸出的4位的信號(hào)作為高位4位而得的信號(hào)、及從命令執(zhí)行部15輸出的運(yùn) 算結(jié)果PC。選擇器26在從命令執(zhí)行部15輸出的運(yùn)算結(jié)果PC選擇信號(hào)為"H"電平時(shí),輸出 運(yùn)算結(jié)果PC,在運(yùn)算結(jié)果PC選擇信號(hào)為"L"電平時(shí),輸出來(lái)自加法器25及邏輯電路AND74 的信號(hào)。
[0355] 選擇器27接收選擇器26的輸出和從PC用寄存器28輸出的地址。選擇器27在 從命令執(zhí)行部15輸出的PC延遲信號(hào)為"Η"電平時(shí),輸出從PC用寄存器28輸出的地址,在 PC延遲信號(hào)為"L"電平時(shí),輸出選擇器26的輸出。
[0356] PC用寄存器28將選擇器27的輸出鎖存,作為閃存控制用代碼用ROM的地址向內(nèi) 部地址總線23輸出。
[0357] 圖35是表示插入代碼寄存器組塊624所包含的代碼插入用寄存器組78-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組78-1?78-n的結(jié)構(gòu)也與圖35的代碼插入用寄存器組78-0的 結(jié)構(gòu)同樣。
[0358] 如圖35所示,代碼插入用寄存器組78-0具備邏輯電路AND 1、地址寄存器31、地址 比較器30、邏輯電路AND4、代碼寄存器32、邏輯電路54、地址寄存器156、地址比較器157、 邏輯電路56、插入末端寄存器59、邏輯電路AND2、邏輯電路55及邏輯電路AND3。
[0359] 邏輯電路AND1在時(shí)鐘elk和地址寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向地址寄存器31的控制端子輸出。
[0360] 地址寄存器31在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的16位的地址。
[0361] 地址比較器30在從程序計(jì)數(shù)器74輸出的20位的地址中的低位16位(地址[15 : 0])與在地址寄存器31中保持的16位的地址一致時(shí),將地址一致信號(hào)0設(shè)定為"H"電平。
[0362] 邏輯電路AND54在時(shí)鐘elk和地址寄存器2選擇信號(hào)0均為"H"電平時(shí),將"H" 電平的信號(hào)向代碼寄存器32的控制端子輸出。
[0363] 地址寄存器156在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳 送來(lái)的4位的地址。
[0364] 地址比較器57在從程序計(jì)數(shù)器74輸出的20位的地址中的高位4位(地址[19 : 16])與在地址寄存器156中保持的4位的地址一致時(shí),輸出"H"電平的一致信號(hào)。
[0365] 邏輯電路AND2在地址一致信號(hào)0為"H"電平且從地址比較器157輸出的一致信 號(hào)為"H"電平時(shí),將地址完全一致信號(hào)0設(shè)定為"H"電平。
[0366] 邏輯電路AND56在時(shí)鐘elk和插入末端寄存器選擇信號(hào)0均為"H"電平時(shí),將"H" 電平的信號(hào)向插入末端寄存器59的控制端子輸出。
[0367] 插入末端寄存器59在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線 傳送來(lái)的1位的數(shù)據(jù)(插入末端)。
[0368] 邏輯電路AND55接收地址完全一致信號(hào)0和插入末端寄存器59的輸出。邏輯電 路AND55在地址完全一致信號(hào)0為"H"電平時(shí),將在插入末端寄存器59中保持的1位的數(shù) 據(jù)(插入末端)作為插入末端信號(hào)〇而輸出。
[0369] 邏輯電路AND4在時(shí)鐘elk和代碼寄存器選擇信號(hào)0均為"H"電平時(shí),將"H"電平 的信號(hào)向代碼寄存器32的控制端子輸出。
[0370] 代碼寄存器32在向控制端子的輸入為"H"電平時(shí),鎖存并保持通過(guò)數(shù)據(jù)總線傳送 來(lái)的16位的數(shù)據(jù)(即插入代碼)。
[0371] 邏輯電路AND3接收地址完全一致信號(hào)0和代碼寄存器32的輸出。邏輯電路AND3 在地址完全一致信號(hào)0為"H"電平時(shí),將在代碼寄存器32中保持的16位的數(shù)據(jù)(即插入 代碼)作為代碼寄存器輸出信號(hào)〇而輸出。邏輯電路AND3在地址完全一致信號(hào)0為"L" 電平時(shí),將16位的"0x0000"作為代碼寄存器輸出信號(hào)0而輸出。
[0372] (第7實(shí)施方式的動(dòng)作例)
[0373] 圖36 (a)是表示在代碼插入用寄存器組78-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址寄 存器31中保持有"0x10106"的低位16位,在地址寄存器156中保持有"0x10106"的高位 4位。而且,在代碼插入用寄存器組#0的代碼寄存器32中保持有插入代碼"Code Reg. 0"。 而且,在代碼插入用寄存器組#0的插入末端寄存器59中保持有插入末端"ObO"。在代碼插 入用寄存器組#1的地址寄存器31中保持有"0x20106"的低位16位,在地址寄存器156中 保持有"0x20106"的高位4位。而且,在代碼插入用寄存器組#01的代碼寄存器32中保持 有插入代碼"Code Reg. 1"。而且,在代碼插入用寄存器組#1的插入末端寄存器59中保持 有插入末端"〇bl"。而且,在閃存控制代碼用R0M13的地址"0χ· · · ·"中保持有源代碼 "R · · · ·,,。
[0374] 圖36(b)是圖36(a)的條件下的時(shí)序圖。
[0375] 在第0循環(huán)中,從程序計(jì)數(shù)器74輸出的20位的地址(PC值[19 :0])為"0x00102"。 地址"0x00102"的高位15位與在代碼插入用寄存器組#0的地址寄存器31中保持的地址 "0x10106"的低位16位不同,且與在代碼插入用寄存器組#1的地址寄存器31中保持的地 址"0x20106"的低位16位不同。其結(jié)果是,地址一致信號(hào)及地址完全一致信號(hào)成為"L" 電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。從閃存控制代碼用 R0M13輸出"0x00102"的地址的源代碼即"R00102"。由于地址完全一致信號(hào)為"L"電平, 因此代碼選擇電路14將源代碼"R00102"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部 15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00100"。
[0376] 在第1循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為 "0b0",因此程序計(jì)數(shù)器74的選擇器77輸出"0x02"。程序計(jì)數(shù)器74的輸出地址成為加上 了"0x02"的"0x00104"。地址"0x00104"的低位16位與在代碼插入用寄存器組#0的地址 寄存器31中保持的地址"0x10106"的低位16位不同,且與在代碼插入用寄存器組#1的地 址寄存器31中保持的地址"0x20106"的低位16位不同。其結(jié)果是,地址一致信號(hào)及地址完 全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"0b0"。 從閃存控制代碼用R0M13輸出"0x00104"的地址的源代碼即"R00104"。由于地址完全一致 信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R00104"向命令執(zhí)行部15的取得部35輸 出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00102"。
[0377] 在第2循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為 "0b0",因此程序計(jì)數(shù)器74的選擇器77輸出"0x02"。其結(jié)果是,程序計(jì)數(shù)器74的輸出地 址成為加上了 "0x02"的"0x00106"。地址"0x00106"的低位16位與在代碼插入用寄存器 組#0的地址寄存器31中保持的地址"0x10106"的低位16位一致,且與在代碼插入用寄存 器組#1的地址寄存器31中保持的地址"0x20106"的低位16位一致。其結(jié)果是,地址一致 信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而且, 地址"0x00106"的高位4位與在代碼插入用寄存器組#0的地址寄存器156中保持的地址 "0x10106"的高位4位不同,且與在代碼插入用寄存器組#1的地址寄存器156中保持的地 址"0x20106"的高位4位不同。其結(jié)果是,地址完全一致信號(hào)仍為"L"電平(這是因?yàn)榈?址完全一致信號(hào)0及地址完全一致信號(hào)1仍為"L"電平)。由于地址完全一致信號(hào)為"L" 電平,因此代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"ObO"。從閃存控制代碼 用R0M13輸出"0x00106"的地址的源代碼即"R00106"。由于地址完全一致信號(hào)為"L"電 平,因此代碼選擇電路14將源代碼"R00106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí) 行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00104"。
[0378] 在第3循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平且插入末端信號(hào)為 "ObO",因此程序計(jì)數(shù)器74的選擇器24輸出"0x10000"。因此,程序計(jì)數(shù)器74的輸出地址 成為加上了 "0x10000"的"0x10106"。而且,地址"0x10106"的低位16位與在代碼插入用 寄存器組#0的地址寄存器31中保持的地址"0x10106"的低位16位一致,且與在代碼插 入用寄存器組#1的地址寄存器31中保持的地址"0x20106"的低位16位一致,因此地址 一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而 且,地址"0x10106"的高位4位與在代碼插入用寄存器組#0的地址寄存器156中保持的地 址"0x10106"的高位4位一致。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈?址完全一致信號(hào)0成為"H"電平)。由于地址完全一致信號(hào)0成為"H"電平,因此代碼寄 存器輸出信號(hào)〇成為在代碼插入用寄存器組#〇的代碼寄存器32中保持的插入代碼"Code Reg. 0"。由此,代碼寄存器輸出信號(hào)成為插入代碼"Code Reg. 0"。由于地址完全一致信號(hào) 〇成為"H"電平,因此插入末端信號(hào)0成為在代碼插入用寄存器組#0的插入末端寄存器59 中保持的插入末端"0b0"。由此,插入末端信號(hào)成為"0b0"。由于地址完全一致信號(hào)為"H" 電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取得部35輸出。 命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼"R00106"。
[0379] 在第4循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"H"電平且插入末端信號(hào)為 "0b0",因此程序計(jì)數(shù)器74的選擇器77輸出"0x10000"。因此,程序計(jì)數(shù)器74的輸出地址 成為加上了 "0x10000"的"0x20106"。地址"0x20106"的低位16位與在代碼插入用寄存 器組#0的地址寄存器31中保持的地址"0x10106"的低位16位一致,且與在代碼插入用寄 存器組#1的地址寄存器31中保持的地址"0x20106"的低位16位一致。其結(jié)果是,地址 一致信號(hào)成為"H"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"H"電平)。而 且,地址"0x20106"的高位4位與在代碼插入用寄存器組#1的地址寄存器156中保持的地 址"0x20106"的高位4位一致。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈?址完全一致信號(hào)1成為"H"電平)。由于地址完全一致信號(hào)1成為"H"電平,因此代碼寄 存器輸出信號(hào)1成為在代碼插入用寄存器組#1的代碼寄存器32中保持的插入代碼"Code Reg. 1"。由此,代碼寄存器輸出信號(hào)成為插入代碼"Code Reg. 1"。由于地址完全一致信號(hào)1 成為"H"電平,因此插入末端信號(hào)1成為在代碼插入用寄存器組#1的插入末端寄存器59中 保持的插入末端"〇bl"。由此,插入末端信號(hào)成為"Obi"。由于地址完全一致信號(hào)為"H"電 平,因此代碼選擇電路14將插入代碼"Code Reg. 1"向命令執(zhí)行部15的取得部35輸出。命 令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0380] 在第5循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"Η"電平且插入末端信號(hào)為 "Obl",因此程序計(jì)數(shù)器74的選擇器24輸出"0x02"。而且,由于插入末端信號(hào)為"Obl",因 此通過(guò)邏輯電路AND74使加法器25的輸出的高位4位(第17位?第20位)成為"0"。其 結(jié)果是,程序計(jì)數(shù)器74的輸出地址成為"0x00108"。地址"0x00108"的低位16位與在代碼 插入用寄存器組#〇的地址寄存器31中保持的地址"0x10106"的低位16位不同,且與在代 碼插入用寄存器組#1的地址寄存器31中保持的地址"0x20106"的低位16位不同。其結(jié)果 是,地址一致信號(hào)成為"L"電平(這是因?yàn)榈刂芬恢滦盘?hào)0及地址一致信號(hào)1成為"L"電 平)。而且,地址"0x00108"的高位4位與在代碼插入用寄存器組#0的地址寄存器156中 保持的地址"0x10106"的高位4位不同,且與在代碼插入用寄存器組#1的地址寄存器156 中保持的地址"0x20106"的高位4位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平(這 是因?yàn)榈刂吠耆恢滦盘?hào)0及地址完全一致信號(hào)1成為"L"電平)。由于地址完全一致信 號(hào)為"L"電平,因此代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào)成為"ObO"。從閃存 控制代碼用R0M13輸出"0x00108"的地址的源代碼即"R00108"。由于地址完全一致信號(hào)為 "L"電平,因此代碼選擇電路14將源代碼"R00108"向命令執(zhí)行部15的取得部35輸出。命 令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 1"。
[0381] 在第6循環(huán)中,由于前一循環(huán)的地址一致信號(hào)為"L"電平且插入末端信號(hào)為 "ObO",因此程序計(jì)數(shù)器74的選擇器77輸出"0x02"。由此,程序計(jì)數(shù)器74的輸出地址成 為加上了"0x02"的"ΟχΟΟΙΟΑ"。地址"ΟχΟΟΙΟΑ"的低位16位與在代碼插入用寄存器組#0 的地址寄存器31中保持的地址"0x10106"的低位16位不同,且與在代碼插入用寄存器組 #1的地址寄存器31中保持的地址"0x20106"的低位16位不同。其結(jié)果是,m地址一致信 號(hào)及地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào)成為"0x0000",插入末端信號(hào) 成為"0b0"。從閃存控制代碼用R0M13輸出"ΟχΟΟΙΟΑ"的地址的源代碼即"R0010A"。由于 地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R0010A"向命令執(zhí)行部15 的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源 代碼 "R00108"。
[0382] 在第7循環(huán)以后與第6循環(huán)同樣地進(jìn)行動(dòng)作。
[0383] 如上所述,根據(jù)本實(shí)施方式,通過(guò)程序計(jì)數(shù)器的地址的除了從最高位起的預(yù)定個(gè) 數(shù)的位以外的位來(lái)指定源代碼的地址,使用從最高位起的預(yù)定個(gè)數(shù)的位來(lái)控制代碼的插 入,因此能夠在兩個(gè)源代碼之間插入1個(gè)以上的代碼,且能夠執(zhí)行多循環(huán)命令。
[0384] [第8實(shí)施方式]
[0385] 在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第2位以上且除了最高位的 位之外的位有效。
[0386] 圖37是表示第8實(shí)施方式的閃存控制部742的結(jié)構(gòu)的圖。
[0387] 圖37的閃存控制部742與圖7的第1實(shí)施方式的閃存控制部2的區(qū)別點(diǎn)在于插 入代碼寄存器組塊743和程序計(jì)數(shù)器91。
[0388] 在保持的插入代碼的地址的除了最高位的位之外的位與程序計(jì)數(shù)器91的地址的 除了最高位的位之外的位一致、且程序計(jì)數(shù)器91的地址的最高位的位為"1"時(shí),插入代碼 寄存器組塊743輸出第1信號(hào)(將地址完全一致信號(hào)設(shè)定為"H"電平),并輸出保持的插入 代碼。
[0389] 程序計(jì)數(shù)器91在接收到第1信號(hào)時(shí),對(duì)最高位的位加上"1",在未接收到第1信號(hào) 時(shí),對(duì)從最低位起的第2位加上" 1",且將最高位的位設(shè)為"0"。
[0390] 圖38是表示程序計(jì)數(shù)器91的結(jié)構(gòu)的圖。
[0391] 圖38的程序計(jì)數(shù)器91與圖30的第6實(shí)施方式的程序計(jì)數(shù)器72的區(qū)別點(diǎn)在于選 擇器92和邏輯電路AND92。
[0392] 選擇器92從插入代碼寄存器組塊743接收地址完全一致信號(hào)。選擇器92在地址 完全一致信號(hào)為"H"電平時(shí),輸出"0x10000"。選擇器92在地址完全一致信號(hào)為"L"時(shí),輸 出 "0x02"。
[0393] 邏輯電路AND92輸出從加法器25輸出的17位中的最高位的位與地址完全一致信 號(hào)的邏輯積。即,邏輯電路AND92在地址完全一致信號(hào)為"H"電平時(shí),輸出從加法器25輸 出的17位中的最高位的位。邏輯電路AND92在地址完全一致信號(hào)為"L"電平時(shí),輸出1位 的 "ObO"。
[0394] 圖39是表示插入代碼寄存器組塊743的結(jié)構(gòu)的圖。
[0395] 如圖39所示,插入代碼寄存器組塊743具備保持插入的代碼及插入的地址的代碼 插入用寄存器組88-i (i = 0?η)及邏輯電路0R88、0R89。
[0396] 代碼插入用寄存器組88-i接收從程序計(jì)數(shù)器91輸出的地址和在數(shù)據(jù)總線內(nèi)傳送 的數(shù)據(jù),還從代碼選擇電路14接收代碼寄存器選擇信號(hào)i及地址寄存器選擇信號(hào)i,并輸出 地址完全一致信號(hào)i及代碼寄存器輸出信號(hào)i。
[0397] 邏輯電路0R88將(n+1)個(gè)代碼寄存器輸出信號(hào)0?η的邏輯和作為代碼寄存器 輸出信號(hào)而輸出。即,在(η+1)個(gè)代碼寄存器輸出信號(hào)0?η的至少1個(gè)具有"Η"電平的 位時(shí)(即,輸出了插入代碼時(shí)),代碼寄存器輸出信號(hào)成為插入代碼。即,在(n+1)個(gè)代碼寄 存器輸出信號(hào)〇?η的所有位均為"L"電平時(shí)(即,未輸出插入代碼時(shí)),代碼寄存器輸出 信號(hào)的所有位成為"L"。
[0398] 邏輯電路0R89將(n+1)個(gè)地址完全一致信號(hào)0?η的邏輯和作為地址完全一致 信號(hào)而輸出。即,在(n+1)個(gè)地址完全一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址完全 一致信號(hào)成為"Η"電平。
[0399] 圖40是表示插入代碼寄存器組塊743所包含的代碼插入用寄存器組88-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組88-1?88-η的結(jié)構(gòu)也與圖35的代碼插入用寄存器組88-0的 結(jié)構(gòu)同樣。
[0400] 圖40的代碼插入用寄存器組88-0與圖31的第6實(shí)施方式的代碼插入用寄存器 組71-0的區(qū)別點(diǎn)在于未從地址比較器30向外部輸出地址一致信號(hào)這一點(diǎn)以及邏輯電路 MD88。
[0401] 在從地址比較器30輸出的信號(hào)為"Η"電平且從程序計(jì)數(shù)器91輸出的17位的地 址中的最高位的位(地址[16])為"0"時(shí),邏輯電路AND88將地址完全一致信號(hào)0設(shè)定為 "Η"電平。
[0402] (第8實(shí)施方式的動(dòng)作例)
[0403] 圖41 (a)是表示在代碼插入用寄存器組88-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持有的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持有"0x00106"的低位16位。而且,在代碼插入用寄存器組#0的代碼寄存器 32中保持有插入代碼"Code Reg. 0"。而且,在閃存控制代碼用R0M13的地址"Ox · · · · " 中保持有源代碼"R· · · · "。
[0404] 圖41 (b)是圖41 (a)的條件下的時(shí)序圖。
[0405] 在第0循環(huán)中,從程序計(jì)數(shù)器91輸出的17位的地址(PC值[16 :0]為"0x00102"。 而且,地址"0x00102"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中保持的 地址"0x00106"的低位16位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平,代碼寄存 器輸出信號(hào)成為"0x00000"。從閃存控制代碼用ROM13輸出"0x00102"的地址的源代碼即 "R00102"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R00102" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的源代碼"R00100"。
[0406] 在第1循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器 91的選擇器92輸出"0x02"。其結(jié)果是,程序計(jì)數(shù)器91的輸出地址成為加上了 "0x02"的 "0x00104"。地址"0x00104"的低位16位與在代碼插入用寄存器組#0的地址寄存器31 中保持的地址"0x00106"的低位16位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平, 代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出"0x00104"的地址的 源代碼即"R00104"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R00104"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R00102"。
[0407] 在第2循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"L"電平,因此程序計(jì)數(shù) 器91的選擇器92輸出"0x02"。由此,程序計(jì)數(shù)器91的輸出地址成為加上了 "0x02"的 "0x00106"。地址"0x00106"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中 保持的地址"0x0106"的低位16位一致。而且,地址"0x00106"的最高位的位(第17位: 地址[16])為"0"。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠耆恢?信號(hào)〇成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的插入代 碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址完全一 致信號(hào)為"H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部15的取 得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的源代碼 "R00106"。
[0408] 在第3循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器91 的選擇器92輸出"0x10000"。由此,程序計(jì)數(shù)器91的輸出地址成為加上了 "0x10000"的 "0x10106"。地址"0x10106"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中 保持的地址"0x00106"的低位16位一致,但地址"0x10106"的最高位的位(第17位:地 址[16])為"1"。其結(jié)果是,地址完全一致信號(hào)成為"L"電平(這是因?yàn)榈刂吠耆恢滦盘?hào) 〇成為"L"電平)。而且,代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13 輸出將程序計(jì)數(shù)器91的輸出地址"0x10106"的最高位的位(第17位)設(shè)為"0"而得的 "0x00106"的地址的源代碼即"R00106"。由于地址完全一致信號(hào)為"L"電平,因此代碼選 擇電路14將源代碼"R00106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行 部36執(zhí)行在前一循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 0"。
[0409] 在第4循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"L"電平,因此程序計(jì)數(shù)器 91的選擇器92輸出"0x00002"。而且,由于地址完全一致信號(hào)為"L"電平,因此加法器25 的輸出地址的最高位的位(第17位)成為"0"。其結(jié)果是,程序計(jì)數(shù)器91的輸出地址成 為"0x00108"。地址"0x00108"的低位16位與在代碼插入用寄存器組#0的地址寄存器31 中保持的地址"0x00106"的低位16位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平, 代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出"0x00108"的地址的 源代碼即"R00108"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R00108"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R00106"。
[0410] 在第5循環(huán)以后與第4循環(huán)同樣地進(jìn)行動(dòng)作。
[0411] 如上所述,根據(jù)本實(shí)施方式,與第6實(shí)施方式同樣,通過(guò)程序計(jì)數(shù)器的地址的除了 最高位的位以外的位來(lái)指定源代碼的地址,使用最高位的位來(lái)控制代碼的插入,因此能夠 在兩個(gè)源代碼之間插入1個(gè)以上的代碼,且能夠執(zhí)行多循環(huán)命令。而且,根據(jù)本實(shí)施方式, 在來(lái)自程序計(jì)數(shù)器的地址與地址寄存器的值一致時(shí),與在源代碼之后執(zhí)行插入代碼的執(zhí)行 的第6實(shí)施方式相對(duì),在源代碼之前執(zhí)行插入代碼的執(zhí)行。
[0412] 此外,在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第2位以上且除了最 高位的位之外的位有效,但并不限定于此,也可以是多個(gè)源代碼的地址的從最低位起的第η 位以上且除了最高位的位之外的位有效。其中,η為1以上的自然數(shù)。在該情況下,程序計(jì) 數(shù)器91在未接收到第1信號(hào)時(shí)(地址完全一致信號(hào)為"L"電平時(shí)),能夠?qū)淖畹臀黄鸬?第η位加上" 1",且將最高位的位設(shè)為"0"。
[0413] [第9實(shí)施方式]
[0414] 在本實(shí)施方式中,多個(gè)源代碼的地址的從最低位起的第m位以上的位有效。
[0415] 圖42是表示第9實(shí)施方式的閃存控制部388的結(jié)構(gòu)的圖。
[0416] 圖42的閃存控制部388與圖16的第2實(shí)施方式的閃存控制部102的區(qū)別點(diǎn)在于 插入代碼寄存器組塊389和程序計(jì)數(shù)器94。
[0417] 插入代碼寄存器組塊389最多保持2k_l個(gè)插入代碼和插入代碼的地址。插入代 碼寄存器組塊389在保持的插入代碼的地址的除了從最高位起的k位之外的位與程序計(jì)數(shù) 器94的地址的除了從最高位起的k位之外的位一致、且保持的插入代碼的地址的從最高位 起的k位與程序計(jì)數(shù)器94的地址的從最高位起的k位一致時(shí),輸出第1信號(hào)(將地址完全 一致信號(hào)設(shè)定為"H"電平),并輸出與程序計(jì)數(shù)器94的地址對(duì)應(yīng)的保持的插入代碼。
[0418] 程序計(jì)數(shù)器94在接收到第1信號(hào)時(shí),對(duì)從最高位起的第k位加上" 1",在未接收到 第1信號(hào)時(shí),對(duì)從最低位起的第m位加上" 1",并將從最高位起的k位設(shè)為"0"。
[0419] 以下,在本實(shí)施方式中,設(shè)為m = 2, k = 4進(jìn)行說(shuō)明。
[0420] 圖43是表示程序計(jì)數(shù)器94的結(jié)構(gòu)的圖。
[0421] 圖43的程序計(jì)數(shù)器94與圖34的第7實(shí)施方式的程序計(jì)數(shù)器74的區(qū)別點(diǎn)在于選 擇器92和邏輯電路AND94。
[0422] 選擇器92從插入代碼寄存器組塊389接收地址完全一致信號(hào)。選擇器92在地址 完全一致信號(hào)為"H"電平時(shí),輸出"0x10000"。選擇器92在地址完全一致信號(hào)為"L"時(shí),輸 出 "0x02"。
[0423] 邏輯電路AND94輸出從加法器25輸出的20位中的高位4位(第17位?第19位) 與地址完全一致信號(hào)的邏輯積。即,邏輯電路AND94在地址完全一致信號(hào)為"H"電平時(shí),輸 出從加法器25輸出的20位中的高位4位。邏輯電路AND94在地址完全一致信號(hào)為"L"電 平時(shí),輸出4位的"ObO"。
[0424] 圖44是表示插入代碼寄存器組塊389的結(jié)構(gòu)的圖。
[0425] 如圖44所示,插入代碼寄存器組塊389具備對(duì)插入的代碼及插入的地址進(jìn)行保持 的代碼插入用寄存器組86-i (i = 0?η)及邏輯電路0R88、0R89。
[0426] 代碼插入用寄存器組86-i接收從程序計(jì)數(shù)器94輸出的地址和在數(shù)據(jù)總線內(nèi)傳送 的數(shù)據(jù),而且從代碼選擇電路14接收代碼寄存器選擇信號(hào)i、地址寄存器選擇信號(hào)i及地址 寄存器2選擇信號(hào)i,輸出地址完全一致信號(hào)i及代碼寄存器輸出信號(hào)i。
[0427] 邏輯電路0R88將(n+1)個(gè)代碼寄存器輸出信號(hào)0?η的邏輯和作為代碼寄存器 輸出信號(hào)而輸出。即,在(η+1)個(gè)代碼寄存器輸出信號(hào)0?η的至少1個(gè)具有"Η"電平的 位時(shí)(即,輸出了插入代碼時(shí)),代碼寄存器輸出信號(hào)成為插入代碼。即,在(n+1)個(gè)代碼寄 存器輸出信號(hào)〇?η的所有位都為"L"電平時(shí)(即,未輸出插入代碼時(shí)),代碼寄存器輸出 信號(hào)的所有位成為"L"。
[0428] 邏輯電路0R89將(n+1)個(gè)地址完全一致信號(hào)0?η的邏輯和作為地址完全一致 信號(hào)而輸出。即,在(n+1)個(gè)地址完全一致信號(hào)0?η的至少1個(gè)為"Η"電平時(shí),地址完全 一致信號(hào)成為"Η"電平。
[0429] 圖45是表示插入代碼寄存器組塊389所包含的代碼插入用寄存器組86-0的結(jié)構(gòu) 的圖。代碼插入用寄存器組86-1?86-η的結(jié)構(gòu)也與圖45的代碼插入用寄存器組86-0的 結(jié)構(gòu)同樣。
[0430] 圖45的代碼插入用寄存器組64-0與圖35的第7實(shí)施方式的代碼插入用寄存器 組78-0的區(qū)別點(diǎn)在于未將從地址比較器30輸出的地址一致信號(hào)向外部輸出這一點(diǎn)以及不 包含邏輯電路AND56及插入末端寄存器59這一點(diǎn)。
[0431] (第9實(shí)施方式的動(dòng)作例)
[0432] 圖46 (a)是表示在代碼插入用寄存器組86-i (以下,稱為代碼插入用寄存器組#i) 的地址寄存器31中保持的值的例子的圖。在該例子中,在代碼插入用寄存器組#0的地址 寄存器31中保持有"0x00106"的低位16位,在地址寄存器156中保持有"0x00106"的高 位4位(第17位?第20位)。而且,在代碼插入用寄存器組#0的代碼寄存器32中保持有 插入代碼"Code Reg. 0"。在代碼插入用寄存器組#1的地址寄存器31中保持有"0x10106" 的低位16位,在地址寄存器156中保持有"0x10106"的高位4位(第17位?第20位)。 而且,在代碼插入用寄存器組#1的代碼寄存器32中保持有插入代碼"Code Reg. 1"。而且, 在閃存控制代碼用R0M13的地址"0χ· · · ·"中保持有源代碼"R· · · ·"。
[0433] 圖46(b)是圖46(a)的條件下的時(shí)序圖。
[0434] 在第0循環(huán)中,從程序計(jì)數(shù)器94輸出的20位的地址(PC值[19 :0])為"0x00102"。 地址"0x00102"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中保持的地 址"0x00106"的低位16位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平,代碼寄存器 輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出"0x00102"的地址的源代碼即 "R00102"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R00102" 向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出 到取得部35的源代碼"R00100"。
[0435] 在第1循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"L"電平,因此程序計(jì)數(shù) 器94的選擇器92輸出"0x02"。由此,程序計(jì)數(shù)器94的輸出地址成為加上了 "0x02"的 "0x00104"。地址"0x00104"的低位16位與在代碼插入用寄存器組#0的地址寄存器31 中保持的地址"0x00106"的低位16位不同。其結(jié)果是,地址完全一致信號(hào)成為"L"電平, 代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出"0x00104"的地址的 源代碼即"R00104"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼 "R00104"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán) 中被輸出到取得部35的源代碼"R00102"。
[0436] 在第2循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"L"電平,因此程序計(jì)數(shù) 器94的選擇器92輸出"0x02"。由此,程序計(jì)數(shù)器94的輸出地址成為加上了 "0x02"的 "0x00106"。地址"0x00106"的低位16位與在代碼插入用寄存器組#0的地址寄存器31中 保持的地址"0x00106"的低位16位一致。而且,地址"0x00106"的高位4位(第17位? 第20位地址[16]?[19])與在代碼插入用寄存器組#0的地址寄存器156中保持的地址 "0x0106"的高位4位一致。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂吠?全一致信號(hào)〇成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持的 插入代碼"Code Reg. 0"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 0")。由于地址 完全一致信號(hào)為"H"電平,因此代碼選擇電路14將插入代碼"Code Reg. 0"向命令執(zhí)行部 15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35的 源代碼"R00104"。
[0437] 在第3循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"H"電平,因此程序計(jì)數(shù)器94 的選擇器92輸出"0x10000"。由此,程序計(jì)數(shù)器94的輸出地址成為加上了 "0x10000"的 "0x10106"。地址"0x10106"的低位16位與在代碼插入用寄存器組#1的地址寄存器31中 保持的地址"0x10106"的低位16位一致。而且,地址"0x10106"的高位4位(第17位? 第20位地址[16]?[19])與在代碼插入用寄存器組#1的地址寄存器156中保持的地址 "0x10106"的高位4位一致。其結(jié)果是,地址完全一致信號(hào)成為"H"電平(這是因?yàn)榈刂?完全一致信號(hào)1成為"H"電平)。而且,代碼寄存器輸出信號(hào)成為在代碼寄存器32中保持 的插入代碼"Code Reg. 1"(這是因?yàn)榇a寄存器輸出信號(hào)0成為"Code Reg. 1")。由于 地址完全一致信號(hào)為"Η"電平,因此代碼選擇電路14將插入代碼"Code Reg. 1"向命令執(zhí) 行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部 35的插入代碼"Code Reg. 0"。
[0438] 在第4循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)為"Η"電平,因此程序計(jì)數(shù)器94 的選擇器92輸出"0x10000"。由此,程序計(jì)數(shù)器94的輸出地址成為加上了 "0x10000"的 "0x20106"。地址"0x20106"的低位16位與在代碼插入用寄存器組#0及#1的地址寄存器 31中保持的地址"0χ00106"、"0χ10106"的低位16位一致。然而,地址"0x20106"的高位4 位(第17位?第20位地址[16]?[19])與在代碼插入用寄存器組#0及#1的地址寄存 器156中保持的地址"0x00106"、"0χ10106"的高位4位不同。其結(jié)果是,地址完全一致信 號(hào)成為"L"電平(這是由于地址完全一致信號(hào)0及地址完全一致信號(hào)成為"L"電平)。而 且,代碼寄存器輸出信號(hào)成為"0x00000"。從閃存控制代碼用R0M13輸出將程序計(jì)數(shù)器94 的輸出地址"0x20106"的高位4位(第17位?第20位)設(shè)為"0"而得的"0x00106"的地 址的源代碼即"R00106"。由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代 碼"R00106"向命令執(zhí)行部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一 循環(huán)中被輸出到取得部35的插入代碼"Code Reg. 1"。
[0439] 在第5循環(huán)中,由于前一循環(huán)的地址完全一致信號(hào)成為"L"電平,因此程序計(jì)數(shù)器 94的選擇器92輸出"0x02"。而且,由于地址完全一致信號(hào)為"L"電平,因此加法器25的 輸出地址的高位4位(第17位?第20位)成為"0"。其結(jié)果是,程序計(jì)數(shù)器94的輸出地 址成為"0x00108"。而且,由于地址"0x00108"的低位16位與在地址寄存器31中保持的地 址"0x00106"的低位16位不同,因此地址完全一致信號(hào)成為"L"電平,代碼寄存器輸出信號(hào) 成為"0x00000"。從閃存控制代碼用ROM13輸出"0x00108"的地址的源代碼即"R00108"。 由于地址完全一致信號(hào)為"L"電平,因此代碼選擇電路14將源代碼"R00108"向命令執(zhí)行 部15的取得部35輸出。命令執(zhí)行部15的執(zhí)行部36執(zhí)行在前一循環(huán)中被輸出到取得部35 的源代碼"R00106"。
[0440] 在第6循環(huán)以后與第5循環(huán)同樣地進(jìn)行動(dòng)作。
[0441] 如上所述,根據(jù)本實(shí)施方式,與第7實(shí)施方式同樣地,通過(guò)程序計(jì)數(shù)器的地址的除 了從最高位起的預(yù)定個(gè)數(shù)的位以外的位來(lái)指定源代碼的地址,使用從最高位起的預(yù)定個(gè)數(shù) 的位來(lái)控制代碼的插入,因此能夠在兩個(gè)源代碼之間插入1個(gè)以上的代碼,且能夠執(zhí)行多 循環(huán)命令。而且,根據(jù)本實(shí)施方式,在來(lái)自程序計(jì)數(shù)器的地址與地址寄存器的值一致時(shí),與 在源代碼之后執(zhí)行插入代碼的執(zhí)行的第7實(shí)施方式相對(duì),在源代碼之前執(zhí)行插入代碼的執(zhí) 行。
[0442] (變形例)
[0443] 本發(fā)明并不固定為上述實(shí)施方式。例如,可以將代碼寄存器值固定為特定的值。由 此,雖然可插入的代碼種類受到限定,但能夠縮小寄存器的尺寸。
[0444] 此外,可以將代碼寄存器值存儲(chǔ)于ROM或者存儲(chǔ)于邏輯電路的組合的電路。也可 以僅能夠插入特定指令(例如錯(cuò)誤監(jiān)控用指令)。
[0445] 另外,在本實(shí)施方式中,閃存控制部在通用的處理器中也可以具有同樣的功能。而 且,有時(shí)通過(guò)圖6所示的閃存3和閃存控制部2構(gòu)成在一個(gè)半導(dǎo)體基板(芯片)上形成的 非易失性半導(dǎo)體裝置。
[0446] 應(yīng)考慮到本次公開(kāi)的實(shí)施方式在所有點(diǎn)上為例示而非限制性的內(nèi)容。本發(fā)明的范 圍不是由已經(jīng)進(jìn)行的說(shuō)明而是由權(quán)利要求書(shū)公開(kāi),并包含與權(quán)利要求書(shū)等同的意思及范圍 內(nèi)的全部變更。
[0447] 標(biāo)號(hào)說(shuō)明
[0448] 1微型計(jì)算機(jī);2、102、103、312、395、423、623、742閃存控制部 ;3閃存;扣卩1 5RAM ;6周邊裝置;7A-D轉(zhuǎn)換器;8D-A轉(zhuǎn)換器;9模擬輸入端子;10模擬輸出端子;111/0端 口;12、51、65、72、74、91、94程序計(jì)數(shù)器;13閃存控制代碼用1^ ;14代碼選擇電路;15命令 執(zhí)行部;16接口控制器;17、52、164、396、399、424、624、743插入代碼寄存器組塊;18寄存 器選擇信號(hào)生成電路;21內(nèi)部數(shù)據(jù)總線;22、23內(nèi)部地址總線;24、26、27、33、53、68、73、77、 92 選擇器;25 加法器;28PC 用寄存器;29-0 ?29-n、40-0、54-0 ?54-n、64-0、71-0、78-0、 86-0?86-n、88-0?88-n代碼插入用寄存器組;30、157地址比較器;31、56、156地址寄存 器;32代碼寄存器;34狀態(tài)寄存器;35取得部;36執(zhí)行部;59插入末端寄存器;273主數(shù)據(jù) 總線;0R1、0R2、0R3、0R54、0R68、0R88、0R89、AND1、AND2、AND3、AND4、AND5、AND6、AND54、 八冊(cè)55、4冊(cè)56、4冊(cè)71、4冊(cè)72、4冊(cè)74、4冊(cè)88、4冊(cè)92邏輯電路;冊(cè)(《1-致電路。
【權(quán)利要求】
1. 一種微型計(jì)算機(jī),其特征在于, 具備:ROM,存儲(chǔ)有多個(gè)源代碼; 程序計(jì)數(shù)器,通過(guò)加上第1值或第2值來(lái)更新地址; 寄存器,保持有至少1個(gè)插入代碼和所述插入代碼的地址; 選擇電路,根據(jù)所述程序計(jì)數(shù)器的地址,選擇所述寄存器內(nèi)的由所述程序計(jì)數(shù)器指定 的地址所對(duì)應(yīng)的插入代碼或所述ROM內(nèi)的由所述程序計(jì)數(shù)器指定的地址的源代碼中的某 一個(gè);以及 命令執(zhí)行部,執(zhí)行由所述選擇電路選擇的代碼, 所述多個(gè)源代碼及所述插入代碼中的至少1個(gè)是多循環(huán)命令, 所述程序計(jì)數(shù)器在執(zhí)行多循環(huán)命令時(shí),停止地址的更新。
2. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第2位以上的位有效, 所述寄存器在所述保持的插入代碼的地址的除了最低位的位之外的位與所述程序計(jì) 數(shù)器的地址的除了最低位的位之外的位一致時(shí),輸出第1信號(hào), 所述寄存器在輸出所述第1信號(hào)且所述程序計(jì)數(shù)器的地址的最低位的位為" 1"時(shí),輸 出第2信號(hào),并輸出所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)最低位的位加上"1",在未接收到所述第 1信號(hào)時(shí),對(duì)從最低位起的第2位加上" 1", 所述選擇電路在接收到所述第2信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第2信號(hào) 時(shí),選擇所述源代碼。
3. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第2位以上的位有效, 所述寄存器在所述保持的插入代碼的地址的除了最低位的位之外的位與所述程序計(jì) 數(shù)器的地址的除了最低位的位之外的位一致時(shí),輸出第1信號(hào), 所述寄存器在輸出所述第1信號(hào)且所述保持的插入代碼的地址的最低位的位與所述 程序計(jì)數(shù)器的地址的最低位的位一致時(shí),輸出第2信號(hào),并輸出所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)最低位的位加上"1",在未接收到所述第 1信號(hào)時(shí),對(duì)從最低位起的第2位加上"1", 所述選擇電路在接收到所述第2信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第2信號(hào) 時(shí),選擇所述源代碼。
4. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第η位以上的位有效, 所述寄存器在所述保持的插入代碼的地址的除了最高位的位之外的位與所述程序計(jì) 數(shù)器的地址的除了最高位的位之外的位一致時(shí),輸出第1信號(hào), 所述寄存器在輸出所述第1信號(hào)且所述程序計(jì)數(shù)器的地址的最高位的位為" 1"時(shí),輸 出第2信號(hào),并輸出所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)最高位的位加上"1",在未接收到所述第 1信號(hào)時(shí),對(duì)從最低位起的第η位加上" 1", 所述選擇電路在接收到所述第2信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第2信號(hào) 時(shí),選擇所述源代碼。
5. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第η位以上且除了最高位的位之外的 位有效, 所述寄存器在所述保持的插入代碼的地址的除了最高位的位之外的位與所述程序計(jì) 數(shù)器的地址的除了最高位的位之外的位一致、且所述程序計(jì)數(shù)器的地址的最高位的位為 "1"時(shí),輸出第1信號(hào),并輸出所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)最高位的位加上"1",在未接收到所述第 1信號(hào)時(shí),對(duì)從最低位起的第η位加上" 1",且將最高位的位設(shè)為"0", 所述選擇電路在接收到所述第1信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第1信號(hào) 時(shí),選擇所述源代碼。
6. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第(η+1)位以上的位有效, 所述寄存器最多保持2η-1個(gè)插入代碼和所述插入代碼的地址, 所述寄存器在所述保持的插入代碼的地址的除了從最低位起的η位之外的位與所述 程序計(jì)數(shù)器的地址的除了從最低位起的η位之外的位一致時(shí),輸出第1信號(hào), 所述寄存器在輸出所述第1信號(hào)且所述保持的插入代碼的地址的從最低位起的η位與 所述程序計(jì)數(shù)器的地址的從最低位起的η位一致時(shí),輸出第2信號(hào),并輸出與所述程序計(jì)數(shù) 器的地址對(duì)應(yīng)的所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)最低位的位加上"1",在未接收到所述第 1信號(hào)時(shí),對(duì)從最低位起的第(η+1)位加上"1", 所述選擇電路在接收到所述第2信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第2信號(hào) 時(shí),選擇所述源代碼。
7. 根據(jù)權(quán)利要求6所述的微型計(jì)算機(jī),其中, 當(dāng)連續(xù)地插入多個(gè)插入代碼時(shí),在所述寄存器輸出最后的插入代碼的情況下,所述寄 存器輸出所述第2信號(hào),并且同時(shí)輸出表不插入末端的插入末端信號(hào)。
8. 根據(jù)權(quán)利要求7所述的微型計(jì)算機(jī),其中, 所述程序計(jì)數(shù)器在接收到所述插入末端信號(hào)時(shí),即使在接收到所述第1信號(hào)時(shí),也對(duì) 從最低位起的第(η+1)位加上"1",并將從最低位起的η位設(shè)為"0"。
9. 根據(jù)權(quán)利要求7所述的微型計(jì)算機(jī),其中, 所述程序計(jì)數(shù)器在未接收到所述插入末端信號(hào)時(shí),將從最低位起的η位設(shè)為" 1"。
10. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第m位以上的位有效, 所述寄存器最多保持2n-l個(gè)插入代碼和所述插入代碼的地址, 所述寄存器在所述保持的插入代碼的地址的除了從最高位起的η位之外的位與所述 程序計(jì)數(shù)器的地址的除了從最高位起的η位之外的位一致時(shí),輸出第1信號(hào), 所述寄存器在輸出所述第1信號(hào)且所述保持的插入代碼的地址的從最高位起的η位與 所述程序計(jì)數(shù)器的地址的從最高位起的η位一致時(shí),輸出第2信號(hào),并輸出與所述程序計(jì)數(shù) 器的地址對(duì)應(yīng)的所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)從最高位起的第η位加上" 1",在未接收 到所述第1信號(hào)時(shí),對(duì)從最低位起的第m位加上"1", 所述選擇電路在接收到所述第2信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第2信號(hào) 時(shí),選擇所述源代碼。
11. 根據(jù)權(quán)利要求10所述的微型計(jì)算機(jī),其中, 當(dāng)連續(xù)地插入多個(gè)插入代碼時(shí),在所述寄存器輸出最后的插入代碼的情況下,所述寄 存器輸出所述第2信號(hào),并且同時(shí)輸出表不插入末端的插入末端信號(hào)。
12. 根據(jù)權(quán)利要求11所述的微型計(jì)算機(jī),其中, 所述程序計(jì)數(shù)器在接收到所述插入末端信號(hào)時(shí),即使在接收到所述第1信號(hào)時(shí),也對(duì) 從最低位起的第m位加上" 1",并將從最高位起的η位設(shè)為"0"。
13. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述ROM內(nèi)的多個(gè)源代碼的地址的從最低位起的第m位以上的位有效, 所述寄存器最多保持2n-l個(gè)插入代碼和所述插入代碼的地址, 所述寄存器在所述保持的插入代碼的地址的除了從最高位起的η位之外的位與所述 程序計(jì)數(shù)器的地址的除了從最高位起的η位之外的位一致、且所述保持的插入代碼的地址 的從最高位起的η位與所述程序計(jì)數(shù)器的地址的從最高位起的η位一致時(shí),輸出第1信號(hào), 并輸出與所述程序計(jì)數(shù)器的地址對(duì)應(yīng)的所述保持的插入代碼, 所述程序計(jì)數(shù)器在接收到所述第1信號(hào)時(shí),對(duì)從最高位起的第η位加上" 1",在未接收 到所述第1信號(hào)時(shí),對(duì)從最低位起的第m位加上" 1",且將從最高位起的η位設(shè)為"0", 所述選擇電路在接收到所述第1信號(hào)時(shí),選擇所述插入代碼,在未接收到所述第1信號(hào) 時(shí),選擇所述源代碼。
14. 根據(jù)權(quán)利要求1所述的微型計(jì)算機(jī),其中, 所述寄存器保持狀態(tài)位, 所述選擇電路在所述狀態(tài)位的值為第1值時(shí),無(wú)論所述程序計(jì)數(shù)器的地址如何,都選 擇所述源代碼。
15. -種微型計(jì)算機(jī),其特征在于, 具備能夠向半導(dǎo)體基板電擦除及電寫(xiě)入的非易失性存儲(chǔ)器、能夠訪問(wèn)所述非易失性存 儲(chǔ)器的中央處理裝置以及根據(jù)來(lái)自所述中央處理裝置的訪問(wèn)以預(yù)定的順序進(jìn)行所述非易 失性存儲(chǔ)器的控制的非易失性存儲(chǔ)器控制電路, 所述非易失性存儲(chǔ)器控制電路具備: ROM,將以預(yù)定的順序執(zhí)行的多個(gè)命令代碼存儲(chǔ)在通過(guò)Μ個(gè)有效位指定的地址中; Κ(>Μ)位輸出的程序計(jì)數(shù)器,對(duì)用于選擇存儲(chǔ)于所述ROM的命令代碼的地址進(jìn)行更新; 寄存器電路,保持有向以所述預(yù)定的順序執(zhí)行的多個(gè)命令代碼之間插入的插入代碼和 表示所述插入代碼的插入目的地的地址; 代碼選擇電路,根據(jù)來(lái)自所述程序計(jì)數(shù)器的地址與在所述寄存器電路中保持的表示插 入代碼的插入目的地的地址的一致檢測(cè)結(jié)果,選擇存儲(chǔ)于所述ROM的命令代碼和保持于所 述寄存器電路的插入代碼中的某一個(gè);以及 命令執(zhí)行部,執(zhí)行由所述選擇電路選擇的代碼, 所述程序計(jì)數(shù)器具備相加值選擇電路,該相加值選擇電路在代碼插入時(shí),將向所述Μ 個(gè)有效位中的最低位的位相加1位切換成向所述Μ個(gè)有效位之外的輸出位相加1位, 所述命令執(zhí)行部能夠執(zhí)行至少1個(gè)多循環(huán)命令,在執(zhí)行所述多循環(huán)命令時(shí),向所述程 序計(jì)數(shù)器指示地址的更新停止。
16. 根據(jù)權(quán)利要求15所述的微型計(jì)算機(jī),其中, 保持有表示所述插入代碼的插入目的地的地址的寄存器保持與所述程序計(jì)數(shù)器的輸 出相同位數(shù)(Κ位)的位數(shù)據(jù)。
17. -種非易失性半導(dǎo)體裝置,其特征在于, 具備能夠向半導(dǎo)體基板電擦除及電寫(xiě)入的非易失性存儲(chǔ)器以及以預(yù)定的順序進(jìn)行所 述非易失性存儲(chǔ)器的控制的非易失性存儲(chǔ)器控制電路, 所述非易失性存儲(chǔ)器控制電路具備: ROM,將以預(yù)定的順序執(zhí)行的多個(gè)命令代碼存儲(chǔ)在通過(guò)Μ個(gè)有效位指定的地址中; Κ(>Μ)位輸出的程序計(jì)數(shù)器,對(duì)用于選擇存儲(chǔ)于所述ROM的命令代碼的地址進(jìn)行更新; 寄存器電路,保持有向以所述預(yù)定的順序執(zhí)行的多個(gè)命令代碼之間插入的插入代碼和 表示所述插入代碼的插入目的地的地址; 代碼選擇電路,根據(jù)來(lái)自所述程序計(jì)數(shù)器的地址與在所述寄存器電路中保持的表示插 入代碼的插入目的地的地址的一致檢測(cè)結(jié)果,選擇存儲(chǔ)于所述ROM的命令代碼和保持于所 述寄存器電路的插入代碼中的某一個(gè);以及 命令執(zhí)行部,執(zhí)行由所述選擇電路選擇的代碼, 所述程序計(jì)數(shù)器具備相加值選擇電路,該相加值選擇電路在代碼插入時(shí),將向所述Μ 個(gè)有效位中的最低位的位相加1位切換成向與所述Μ個(gè)有效位不同的輸出位相加1位, 所述命令執(zhí)行部能夠執(zhí)行至少1個(gè)多循環(huán)命令,在執(zhí)行所述多循環(huán)命令時(shí),向所述程 序計(jì)數(shù)器指示地址的更新停止。
【文檔編號(hào)】G06F11/00GK104145247SQ201280071070
【公開(kāi)日】2014年11月12日 申請(qǐng)日期:2012年3月2日 優(yōu)先權(quán)日:2012年3月2日
【發(fā)明者】加藤多實(shí)結(jié), 丸山由紀(jì)子, 和泉伸也, 中木村清, 瀨口禎浩 申請(qǐng)人:瑞薩電子株式會(huì)社