簡要構(gòu)成的框圖。
[0033]圖2是示意性地說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的存儲器模塊中儲存的指令組的圖。
[0034]圖3是表示本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的功能構(gòu)成的一例的框圖。
[0035]圖4是用于說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的存儲器I/F的運(yùn)行的流程圖。
[0036]圖5是用于說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的程序計(jì)數(shù)器監(jiān)視部的操作的流程圖。
[0037]圖6是表示說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的切換操作的一例的時(shí)序圖的一例的圖。
[0038]符號說明
[0039]100:半導(dǎo)體裝置
[0040]110-CPU
[0041]111:運(yùn)算電路
[0042]112:指令寄存器
[0043]113:解碼器
[0044]114:通用寄存器
[0045]115:程序計(jì)數(shù)器
[0046]120:存儲器模塊
[0047]120A:第一閃存器
[0048]120B:第二閃存器
[0049]130:存儲器接口
[0050]131:切換控制部
[0051]132:分支指令檢測部
[0052]140:訪問控制部
[0053]150:程序計(jì)數(shù)器監(jiān)視部
[0054]160:中斷控制部
【具體實(shí)施方式】
[0055]以下,參照附圖對本發(fā)明的實(shí)施方式進(jìn)行說明。但以下說明的實(shí)施方式終宄只是示例,并無意排除以下未明示的各種變形和/或技術(shù)的適用。本發(fā)明在不脫離其主旨范圍內(nèi)能夠進(jìn)行各種變形(例如,組合各個(gè)實(shí)施方式等)并實(shí)施。并且,在以下的附圖的記載中,對相同或類似的部分標(biāo)注相同或類似的符號來表示。附圖為模式化的圖,并非與實(shí)際尺寸和/或比例等一致。在圖與圖之間有時(shí)還包括相互的尺寸關(guān)系和/或比例不同的部分。
[0056](第一實(shí)施方式)
[0057]圖1是用于說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的概況的框圖。如該圖所示,半導(dǎo)體裝置100例如包括CPU 110、存儲器模塊120、存儲器接口(以下稱為“存儲器I/F”)130、訪問控制部140、程序計(jì)數(shù)器監(jiān)視部(以下稱為“PC監(jiān)視部”)150、中斷控制器160而構(gòu)成。半導(dǎo)體裝置100是使這些各種部件一體封裝化而成的系統(tǒng)級封裝(SIP)。
[0058]CPU 110是通過解釋作為程序而記述的指令代碼(以下稱為“指令”)來執(zhí)行處理的部件。在此,“CPU”這一術(shù)語作為與表示處理裝置的處理器和/或MPU、主處理器、微控制器等同義的術(shù)語來使用,并且,也可以表示多核處理器。CPU 110例如包括運(yùn)算電路、解碼器、各種寄存器和程序計(jì)數(shù)器而構(gòu)成(參照圖3)。CPU 110還可以包括高速緩沖存儲器。CPU 110可以為通用寄存器方式,也可以為累加器方式,還可以為它們以外的方式。CPU 110經(jīng)由指令總線和數(shù)據(jù)總線與存儲器I/F130連接。
[0059]存儲器模塊120由包括能夠相互獨(dú)立工作的至少兩個(gè)以上的可改寫的非揮發(fā)性存儲器而構(gòu)成。本實(shí)施方式的存儲器模塊120的一個(gè)例子是NOR型閃存器,更具體來說,是NOR型串行閃存器。在本例中,存儲器模塊120包括第一 NOR型串行閃存器(以下稱為“第一閃存器”)120A和第二 NOR型串行閃存器(以下稱為“第二閃存器”)120B而構(gòu)成。第一閃存器120A和第二閃存器120B儲存由CPU 110執(zhí)行的指令組。具體來說,在本實(shí)施方式中,第一閃存器120A儲存構(gòu)成主程序的第一指令組,第二閃存器120B儲存構(gòu)成分支程序的第二指令組,該分支程序根據(jù)包含在第一指令組中的與分支相關(guān)的控制指令而執(zhí)行。圖2是示意性地說明分別儲存在第一閃存器120A以及第二閃存器120B中的指令組的圖。第一閃存器120A以及第二閃存器120B根據(jù)預(yù)定的啟動信號,處于能夠從預(yù)定的地址讀取數(shù)據(jù)的狀態(tài)。
[0060]其中,存儲器模塊120除了可以包括NOR型串行閃存器以外,還可以包括NAND型閃存器,另外,也可以包括揮發(fā)性存儲器(例如DRAM)。
[0061]存儲器I/F130是CPU 110與存取器模塊120的接口電路。具體來說,存儲器I/F130在按照預(yù)定的時(shí)鐘將從存儲器模塊120讀取的指令儲存于FIFO緩沖(預(yù)取緩沖)之后,將該指令變換為適合于CPU 110的指令總線的數(shù)據(jù)形式,提供給CPU 110。S卩,在該例中,因?yàn)榈谝婚W存器120A以及第二閃存器120B為串行類型,所以存儲器I/F130將構(gòu)成以串行形式輸出的指令的數(shù)據(jù)列變換為并行形式的數(shù)據(jù)列并提供給CPU 110。在這種情況下,指令能夠典型地以流水線方式輸出。雖然沒有圖示,但構(gòu)成“程序數(shù)據(jù)”的數(shù)據(jù)列被變換為預(yù)定的數(shù)據(jù)形式,經(jīng)由數(shù)據(jù)總線提供給CPU 110。本實(shí)施方式的存儲器I/F130如后所述,在將指令儲存到預(yù)取緩沖區(qū)的階段,對該指令進(jìn)行預(yù)解碼,檢測是否有分支指令。并且,本實(shí)施方式的存儲器I/F130如后所述,基于該檢測結(jié)果,在預(yù)定的時(shí)刻切換I/O信號線,以便選擇第一閃存器120A以及第二閃存器120B中的任一方。
[0062]訪問控制部140是控制對存儲器模塊120進(jìn)行訪問的電路。即,訪問控制部140利用表示指定的預(yù)定地址的值控制為使第一閃存器120A以及第二閃存器120B中的至少一方處于能夠讀取的狀態(tài)。并且,訪問控制部140控制為可以從處于能夠讀取狀態(tài)的第一閃存器120A以及第二閃存器120B中的至少一方讀取數(shù)據(jù)列(指令)。
[0063]PC監(jiān)視部150監(jiān)視CPU 110的程序計(jì)數(shù)器115(參照圖3),在程序計(jì)數(shù)器115的值隨著分支指令等而發(fā)生變化的情況下,將表示被存儲器I/F130檢測出的分支指令表示的分支目標(biāo)地址(跳轉(zhuǎn)目標(biāo)地址)的值(以下稱為“分支目標(biāo)地址值”)與程序計(jì)數(shù)器115的值進(jìn)行比較,當(dāng)兩者一致時(shí),輸出預(yù)定的觸發(fā)信號。所輸出的預(yù)定的觸發(fā)信號例如被輸入到存儲器I/F130以及訪問控制部140。
[0064]中斷控制器160是接收由未圖示的外圍電路或者裝置發(fā)送的中斷請求信號,并對CPU 110施加預(yù)定的中斷的電路。即,中斷控制器160與中斷信號的內(nèi)容對應(yīng)地配合CPU110的運(yùn)行時(shí)刻,以指定的中斷地址值改寫CPU 110的程序計(jì)數(shù)器,由此,使CPU 110的控制跳轉(zhuǎn)到該中斷地址。并且,本實(shí)施方式的中斷控制器160在接收到中斷請求信號時(shí),向訪問控制部140輸出表示與該中斷請求信號對應(yīng)的跳轉(zhuǎn)目標(biāo)地址的值(以下稱為“跳轉(zhuǎn)目標(biāo)地址值”)。在該情況下,中斷控制器160在對CPU 110進(jìn)行中斷的時(shí)刻之前向訪問控制部140輸出跳轉(zhuǎn)目標(biāo)地址值。訪問控制部140按照該跳轉(zhuǎn)目標(biāo)地址值控制為使第一閃存器120A以及第二閃存器120B中的至少一方處于能夠讀取的狀態(tài)。
[0065]應(yīng)予說明,在本實(shí)施方式中,中斷控制器160以向訪問控制部140輸出跳轉(zhuǎn)目標(biāo)地址值,然后對CPU 110施加中斷的方式構(gòu)成,但與對CPU 110施加中斷的現(xiàn)有的中斷控制器不同,可以設(shè)置檢測從外圍電路等發(fā)送的中斷請求信號,并向訪問控制部140輸出跳轉(zhuǎn)目標(biāo)地址值的中斷檢測電路。即,中斷檢測電路接收到中斷請求信號時(shí),首先在預(yù)定的運(yùn)行時(shí)鐘所示的第一時(shí)刻向訪問控制部140輸出跳轉(zhuǎn)目標(biāo)地址值,然后,中斷控制器160在該預(yù)定的運(yùn)行時(shí)鐘所示的第二時(shí)刻對CPU 110施加中斷。如此,通過使中斷檢測電路和中斷控制器110共用運(yùn)行時(shí)鐘,從而在中斷控制器110對CPU 110施加中斷之前的時(shí)刻,中斷檢測電路能夠向訪問控制部140通知基于中斷請求的跳轉(zhuǎn)目標(biāo)地址。
[0066]圖3是表示本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的功能構(gòu)成的一例的框圖。在該圖中,為了說明圖1所示的半導(dǎo)體裝置的更詳細(xì)的功能方面的構(gòu)成,使存儲器I/F130的構(gòu)成更加詳細(xì)。即,如該圖所示,本實(shí)施方式的存儲器I/F130包括例如切換控制部131和分支指令檢測部132而構(gòu)成。并且,在CPU 110中還特別圖示有運(yùn)算電路111、指令寄存器112、解碼器113、通用寄存器114和程序計(jì)數(shù)器115。
[0067]切換控制部131是用于切換該I/O信號線的電路,以便選擇第一閃存器120A以及第二閃存器120B中的任一方。切換控制例如基于從PC監(jiān)視部150輸出的預(yù)定的觸發(fā)信號而進(jìn)行。將從所選的閃存器中以串行形式讀取的數(shù)據(jù)列提供給分支指令檢測部132。
[0068]分支指令檢測部132例如具備未圖示的預(yù)取緩沖區(qū),一邊將從所選的閃存器中讀取的數(shù)據(jù)列緩沖到該預(yù)取緩沖區(qū),一邊將數(shù)據(jù)列變換為平行形式的數(shù)據(jù)(指令),并向CPU110的指令總線輸出。從分支指令檢測部132輸出的指令被讀入到CPU 110的指令寄存器中。另外,在緩沖過程中,分支指令檢測部132對該緩沖后的數(shù)據(jù)列進(jìn)行預(yù)解碼,判斷是否含有特定的指令(例如,分支指令、子程序指令等),例如當(dāng)判斷為含有分支指令時(shí),獲取該分支指令所表示的分支目標(biāo)地址值,將其分別輸出至訪問控制部140以及PC監(jiān)視部150。
[0069]應(yīng)予說明,分支指令檢測部132在從第一閃存器120A依次讀取數(shù)據(jù)列的過程中,如上所述,進(jìn)行用于從主程序向分支程序進(jìn)行分支控制的分支指令的檢測,然而在切換為第二閃存器120B、從第二閃存器120B依次讀取數(shù)據(jù)列的過程中,進(jìn)行用于從分支程序向主程序進(jìn)行返回控制的預(yù)定的指令的檢測。即,分支指令檢測部132將用于對主程序進(jìn)行返回控制的預(yù)定的指令輸出至地址控制部140以及PC監(jiān)視部150。
[0070]圖4是用于說明本發(fā)明的一個(gè)實(shí)施方式的半導(dǎo)體裝置的存儲器Ι/F的操作的流程圖。
[0071]首先,半導(dǎo)體裝置100被啟動時(shí),作為初始化處理,在確認(rèn)各部件的操作之后,切換控制部131選擇第一閃存器120A的I/O信號線(S401)。在該狀態(tài)下,因?yàn)槟軌驈牡谝婚W存器120A進(jìn)行讀取,所以CPU 110以根據(jù)程序計(jì)數(shù)器115的值從第一閃存器120A依次開始讀取數(shù)據(jù)列的方式進(jìn)行控制。
[0072]存儲器I/F130在從第一閃存器120A讀取數(shù)據(jù)列時(shí),將該數(shù)據(jù)列緩沖到預(yù)取緩沖區(qū)(S402)。分支