專(zhuān)利名稱(chēng):擴(kuò)展的處理器重置的制作方法
背景本發(fā)明關(guān)于可編程處理器。
一個(gè)可編程處理器(如用于計(jì)算機(jī)或數(shù)字信號(hào)處理系統(tǒng)的微處理器)一般包含保存可由處理器執(zhí)行的指令的存儲(chǔ)器。而且,該處理器一般支持重置操作,即處理器被初始化成某種已知狀態(tài)。例如,當(dāng)處理器被加電時(shí),就使用了一次重置。在重置操作中,該保存指令的存儲(chǔ)器一般被重置成某種已知狀態(tài),導(dǎo)致存儲(chǔ)在該存儲(chǔ)器內(nèi)指令的丟失。
附圖描述
圖1是一幅圖解一個(gè)流水線可編程處理器的實(shí)例的框表。
圖2是一幅信號(hào)時(shí)間安排圖表。
圖3是一幅重置邏輯的圖表。
圖4是一幅圖解一個(gè)執(zhí)行流水線的實(shí)例示意圖。
圖5是一幅圖解一個(gè)用于擴(kuò)展重置的處理器流程圖。
發(fā)明詳細(xì)描述圖1是一幅圖解一個(gè)可編程處理器10的框圖,該處理器有一個(gè)執(zhí)行流水線14、一個(gè)控制單元12和指令存儲(chǔ)器16。指令存儲(chǔ)器16保存將由流水線14所執(zhí)行的指令。指令存儲(chǔ)器16(在圖1中示出成包含在處理器10內(nèi))也可以是處理器10外部的??刂茊卧?2控制通過(guò)流水線14的指令和數(shù)據(jù)流。例如,在一個(gè)指令的處理中,控制單位12可以控制流水線14的多個(gè)部件解碼指令并正確地執(zhí)行相應(yīng)的操作??刂茊卧?2還可以管理指令存儲(chǔ)器16,并一般還可以執(zhí)行其他功能。
指令存儲(chǔ)器16一般包含易失存儲(chǔ)器,如靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)。在圖1中示出為處理器10外部的存儲(chǔ)器20可以包括非易失存儲(chǔ)器元件,如閃存、只讀存儲(chǔ)器或軟盤(pán)。存儲(chǔ)器20也可以包含在處理器10之內(nèi)。流水線14直接存取26指令存儲(chǔ)器16,使指令從指令存儲(chǔ)器16直接發(fā)送到流水線14,而無(wú)須控制單元12干涉。當(dāng)流水線14讀取一個(gè)指令時(shí),流水線14嘗試在指令存儲(chǔ)器16中找到該指令。下面所描述的技術(shù)允許指令存儲(chǔ)器16在指令讀取開(kāi)始前加載指令。
有時(shí),處理器10經(jīng)歷一次重置。重置將流水線14設(shè)置成某個(gè)規(guī)定的狀態(tài)。當(dāng)處理器10經(jīng)歷一次重置時(shí),指令存儲(chǔ)器16同樣經(jīng)歷一次重置。重置可能導(dǎo)致存儲(chǔ)在指令存儲(chǔ)器16中的指令的丟失。指令可以通過(guò)將指令從存儲(chǔ)器20加載到指令存儲(chǔ)器16中而恢復(fù)到指令存儲(chǔ)器16中。通常指令通過(guò)直接存儲(chǔ)器存取(DMA)28的方式從存儲(chǔ)器20加載到指令存儲(chǔ)器16。流水線14在重置時(shí)不從指令存儲(chǔ)器16中讀取新的指令,但可以在重置之后準(zhǔn)備好從指令存儲(chǔ)器16中讀取指令。但是,在重置之后讀取指令可能是沒(méi)有效率的,因?yàn)橹噶畈⒉晃挥谧钚轮刂玫闹噶畲鎯?chǔ)器16中,而這些指令必須從存儲(chǔ)器20獲取。下面所描述的技術(shù)通過(guò)暫停指令讀取直至指令存儲(chǔ)器16加載完成,提高了效率。
在圖1中,控制單元12包含重置邏輯18。重置邏輯18也可以是與控制單元12分離的。當(dāng)處理器10進(jìn)入一次重置時(shí),就設(shè)置了一個(gè)指示重置正在進(jìn)行的標(biāo)志位,并將其存儲(chǔ)在一個(gè)存儲(chǔ)器元件(如一個(gè)寄存器)中。這個(gè)標(biāo)志位(將在下面以“Reset_Signal”50來(lái)更詳細(xì)地討論)在處理器10的重置終止時(shí)清除。如在圖1中所示,Reset_Signal 50是一個(gè)處理器10外部生成的重置信號(hào),并可能來(lái)自如某個(gè)事件控制器或與處理器10合作的另一處理器。Reset_Signal 50可能產(chǎn)生自如某個(gè)與處理器10合作的系統(tǒng)的一般重置。雖然在圖1中未示出,但Reset_Signal 50可以有別于提供給處理器10的重置信號(hào)(這將啟動(dòng)一個(gè)重置服務(wù)過(guò)程)。Reset_Signal 50是由重置邏輯18接收的。重置邏輯18還接收一個(gè)信號(hào)30,指示將加載入指令存儲(chǔ)器16的指令。信號(hào)30將在下面以“IM_Init”信號(hào)30來(lái)討論。重置邏輯18的輸出是一個(gè)下面以“Ext_Reset_Signal”24來(lái)討論的擴(kuò)展重置信號(hào),該信號(hào)控制通過(guò)流水線14對(duì)指令存儲(chǔ)器16的讀取請(qǐng)求。當(dāng)設(shè)置Ext_Reset_Signal 24時(shí),讀取請(qǐng)求被掛起,而當(dāng)清除Ext_Reset_Signal 24時(shí),讀取請(qǐng)求開(kāi)始。
圖2示出了一幅時(shí)間安排圖表。當(dāng)處理器10放置在普通重置模式中時(shí),如參照行52所指出的那樣,聲明Reset_Signal 50,指示處理器10是在普通重置模式。當(dāng)處理器10完成重置操作時(shí),如參照行54所指出的那樣,清除Reset_Signal 50。如果指令存儲(chǔ)器16將加載,則設(shè)置IM_Init 30。當(dāng)重置操作完成(54)后,加載指令存儲(chǔ)器16(55)。IM_Init 30保持設(shè)置,直至指令存儲(chǔ)器16的加載完成,而后如參照行56所指出的那樣,清除IM_Init 30。
平常,流水線14準(zhǔn)備在重置操作完成(54)后立即讀取指令。當(dāng)流水線14準(zhǔn)備讀取指令時(shí),通常指令存儲(chǔ)器16還未準(zhǔn)備好,并將始終未準(zhǔn)備好,直至指令從存儲(chǔ)器20加載。例如,當(dāng)指令存儲(chǔ)器16由SRAM組成時(shí),一般不能由流水線14讀取指令,直至該指令加載入指令存儲(chǔ)器16。通過(guò)以擴(kuò)展了的重置信號(hào)Ext_Reset_Signal 24控制對(duì)指令存儲(chǔ)器16的讀取請(qǐng)求,在處理器10正重置且指令存儲(chǔ)器16正加載時(shí),掛起讀取請(qǐng)求。當(dāng)設(shè)置Reset_Signal 50時(shí),設(shè)置Ext_Reset_Signal 24(52),而當(dāng)清除IM_Init 30時(shí),清除Ext_Reset_Signal24(56)。當(dāng)清除Ext_Reset_Signal 24(56)時(shí),開(kāi)始對(duì)指令存儲(chǔ)器16的讀取請(qǐng)求。
圖3圖解了重置邏輯18的一個(gè)實(shí)施例。在圖3中所示的邏輯是示例性的,并非意圖限制本發(fā)明的范圍。重置邏輯18的輸出Ext_Reset_Signal 24通過(guò)按聲明Ext_Reset_Signal 24的時(shí)間長(zhǎng)短掛起讀取請(qǐng)求來(lái)控制流水線14的讀取請(qǐng)求。重置邏輯18的輸入是Reset_Signal 50和IM_Init 30。
當(dāng)處理器10開(kāi)始重置操作時(shí),聲明Reset_Signal 50。Reset_Signal 50存儲(chǔ)在一個(gè)存儲(chǔ)器元件(如寄存器60)中。按處理器10在普通重置模式中的時(shí)間長(zhǎng)短,聲明Reset_Signal 50。當(dāng)處理器10完成重置操作且普通重置模式結(jié)束時(shí),清除Reset_Signal 50?!盎颉遍T(mén)62確保將聲明Ext_Reset_Signal 24,而流水線14將不讀取指令,至少直至Reset_Signal 50清除。
“或”門(mén)62進(jìn)一步確保當(dāng)指令存儲(chǔ)器16在普通模式后加載時(shí),仍將聲明Ext_Reset_Signal 24,直至加載完成。當(dāng)不希望指令存儲(chǔ)器16加載(即未聲明IM_Init 30)時(shí),Ext_Reset_Signal 24接著Reset_Signal 50,因而流水線14不進(jìn)入某個(gè)擴(kuò)展了的重置狀態(tài)。但是,當(dāng)聲明IM_Init 30且聲明Reset_Signal 50時(shí),在清除Reset_Signal 50前,Ext_Reset_Signal 24并不接著Reset_Signal 50,并將不清除,直至IM_Init 30清除。
當(dāng)聲明IM_Init 30且聲明Reset_Signal 50時(shí),IM_Init 30對(duì)Ext Reset_Signal24沒(méi)有直接影響。下沿檢測(cè)器64感知Reset_Signal 50,并且生成一個(gè)低電壓輸出74,直至清除Reset_Signal 50。當(dāng)清除Reset_Signal 50時(shí),下沿檢測(cè)器64為一個(gè)時(shí)鐘周期產(chǎn)生一個(gè)高電壓信號(hào)74。高電壓信號(hào)74和已聲明的IM_Init信號(hào)30引起來(lái)自“與”門(mén)76的一個(gè)高電壓信號(hào)70,該信號(hào)又依次引起“或”門(mén)80的輸出82升高?!盎颉遍T(mén)80的高電壓輸出82應(yīng)用于“或”門(mén)62,保持Ext_Reset_Signal 24為高,即使Reset_Signal 50已被清除。而且,“或”門(mén)80的高電壓輸出82由寄存器84捕捉,由寄存器84延遲一個(gè)時(shí)鐘周期,并反饋給“與”門(mén)78?!芭c”門(mén)78的輸出72隨聲明IM_Init 30的時(shí)間長(zhǎng)短而保持為高。當(dāng)清除IM_Init 30時(shí),“與”門(mén)78的輸出72和“或”門(mén)80的輸出82變低。因此,向“或”門(mén)62的輸入都是低的,這又導(dǎo)致Ext_Reset_Signal24被清除。
圖4示出了一個(gè)示例性的流水線14。流水線14有五個(gè)階段指令讀取(IF)、指令解碼(DEC)、地址計(jì)算(AC)、執(zhí)行(EX)和寫(xiě)回(WB)。指令在第一階段(IF)由讀取單元90從指令存儲(chǔ)器16讀取,并在第二階段(DEC)被解碼92。在下一個(gè)時(shí)鐘周期,其結(jié)果被傳遞給第三階段(AC),在其中數(shù)據(jù)地址生成器96計(jì)算執(zhí)行該操作的存儲(chǔ)器地址。在執(zhí)行階段(EX),執(zhí)行單元98執(zhí)行特定的操作,如將兩個(gè)數(shù)相加或相乘。在最后階段(WB),其結(jié)果可以被寫(xiě)回存儲(chǔ)器20或?qū)懙綌?shù)據(jù)寄存器100。
重置邏輯18將Ext_Reset_Signal 24提供給讀取單元90。Ext_Reset_Signal24調(diào)節(jié)從指令存儲(chǔ)器16的指令讀取。典型的讀取單元可以包括由Ext_Reset_Signal 24調(diào)節(jié)的一個(gè)或多個(gè)元件。例如,Ext_Reset_Signal 24可以激活或禁止使指令從指令存儲(chǔ)器16讀取的請(qǐng)求邏輯,或可以激活或禁止指令寄存器。
圖5是一幅圖解上面所述的技術(shù)的一個(gè)實(shí)施例的流程圖。當(dāng)處理器10放置在重置模式中(90)時(shí),處理器10聲明Reset_Signal 50(92)。聲明Reset_Signal50又引起聲明Ext_Reset_Signal 24(92)。當(dāng)重置操作完成后,清除Reset_Signal50(94)。當(dāng)清除Reset_Signal 50時(shí),重置邏輯18感知IM_Init 30是否被聲明(96)。當(dāng)未聲明IM_Init 30時(shí),清除Ext_Reset_Signal 50(108),并且開(kāi)始指令讀取(110)。但是,當(dāng)聲明IM_Init 30時(shí),禁止指令讀取(98)。處理器10可選擇地可以禁止中斷(100),以防止中斷句柄在指令存儲(chǔ)器16加載(102)完成之前啟動(dòng)讀取。當(dāng)指令存儲(chǔ)器16加載(102)完成后,清除IM_Init 30(104)。中斷如果已被禁止(100),則重新激活(106)。清除Ext_Reset_Signal 50(108),這將激活指令讀取請(qǐng)求,并開(kāi)始指令讀取(110)。例如,第一個(gè)讀取的指令可能是重置服務(wù)過(guò)程的第一個(gè)指令。
已描述了本發(fā)明的多個(gè)實(shí)施例。例如,描述了重置處理器的一種方法,其中在處理器經(jīng)歷重置時(shí)禁止讀取請(qǐng)求,并在加載指令存儲(chǔ)器時(shí)仍禁止讀取請(qǐng)求。該處理器可以多種系統(tǒng)來(lái)實(shí)現(xiàn),包括通用計(jì)算系統(tǒng)、數(shù)字處理系統(tǒng)、膝上計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)和蜂窩電話。在這一環(huán)境中,上面所討論的重置技術(shù)可以容易地用于提高處理器性能。在這樣的系統(tǒng)中,處理器可以連接到某個(gè)存儲(chǔ)著操作系統(tǒng)和其它軟件應(yīng)用的存儲(chǔ)器設(shè)備,如FLASH存儲(chǔ)器設(shè)備或SRAM設(shè)備。這些以及其它的實(shí)施例都在下面權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于重置處理器的方法,其特征在于,包括進(jìn)入某種重置模式;加載與該處理器相關(guān)聯(lián)的指令存儲(chǔ)器;以及掛起指令讀取,直至該指令存儲(chǔ)器加載完成。
2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括接收一個(gè)指令存儲(chǔ)器加載信號(hào);以及在聲明了該指令存儲(chǔ)器加載信號(hào)時(shí)加載該指令存儲(chǔ)器。
3.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包含聲明一個(gè)擴(kuò)展的重置信號(hào);以及在聲明了該擴(kuò)展的重置信號(hào)時(shí)掛起指令讀取。
4.如權(quán)利要求3所述的方法,其特征在于,進(jìn)一步包含接收一個(gè)重置信號(hào);以及接收一個(gè)指令存儲(chǔ)器加載信號(hào);其中在接收到該重置信號(hào)和接收到該指令存儲(chǔ)器加載信號(hào)時(shí)聲明該擴(kuò)展的重置信號(hào)。
5.如權(quán)利要求4所述的方法,其特征在于,在清除該重置信號(hào)和清除該指令存儲(chǔ)器加載信號(hào)時(shí)清除該擴(kuò)展的重置信號(hào)。
6.如權(quán)利要求1所述的方法,其特征在于,掛起指令讀取包含禁止指令請(qǐng)求邏輯。
7.如權(quán)利要求1所述的方法,其特征在于,掛起指令讀取包含禁止一個(gè)指令寄存器。
8.一種方法,其特征在于,包括進(jìn)入某種重置模式;接收一個(gè)指示正以指令加載一個(gè)指令存儲(chǔ)器的信號(hào);以及禁止從該指令存儲(chǔ)器讀取指令。
9.如權(quán)利要求8所述的方法,其特征在于,該信號(hào)是第一個(gè)信號(hào),該方法進(jìn)一步包含接收第二個(gè)指示該指令存儲(chǔ)器不再加載的信號(hào);以及激活從該指令存儲(chǔ)器讀取指令。
10.如權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包含以指令加載指令存儲(chǔ)器。
11.如權(quán)利要求8所述的方法,其特征在于,禁止讀取指令包含禁止指令請(qǐng)求邏輯。
12.如權(quán)利要求8所述的方法,其特征在于,禁止讀取指令包含禁止一個(gè)指令寄存器。
13.一種方法,其特征在于,包含接收一個(gè)重置信號(hào);接收一個(gè)指令存儲(chǔ)器加載信號(hào);以及生成一個(gè)擴(kuò)展的重置信號(hào),作為該重置信號(hào)和該指令存儲(chǔ)器加載信號(hào)的結(jié)果。
14.如權(quán)利要求13所述的方法,其特征在于,在接收到該重置信號(hào)時(shí)聲明該擴(kuò)展的重置信號(hào)。
15.如權(quán)利要求13所述的方法,其特征在于,在清除了該指令存儲(chǔ)器加載信號(hào)時(shí)清除該擴(kuò)展的重置信號(hào)。
16.如權(quán)利要求13所述的方法,其特征在于,進(jìn)一步包含在聲明該擴(kuò)展的重置信號(hào)時(shí)掛起指令讀取。
17.如權(quán)利要求16所述的方法,其特征在于,掛起指令讀取包含禁止指令請(qǐng)求邏輯。
18.如權(quán)利要求16所述的方法,其特征在于,掛起指令讀取包含禁止一個(gè)指令寄存器。
19.如權(quán)利要求13所述的方法,其特征在于,進(jìn)一步包含在接收到該指令存儲(chǔ)器加載信號(hào)時(shí)加載該指令存儲(chǔ)器。
20.一種設(shè)備,其特征在于,包括適于接收一個(gè)重置信號(hào)的第一個(gè)輸入;適于接收一個(gè)指令存儲(chǔ)器加載信號(hào)的第二個(gè)輸入;一個(gè)輸出;以及一個(gè)連接到第一個(gè)輸入、第二個(gè)輸入和輸出的,適于根據(jù)該重置信號(hào)和該指令存儲(chǔ)器加載信號(hào)而向該輸出提供一個(gè)擴(kuò)展的重置信號(hào)的電路。
21.如權(quán)利要求20所述的設(shè)備,其特征在于,該電路在接收到該重置信號(hào)時(shí)聲明該擴(kuò)展的重置信號(hào)。
22.如權(quán)利要求20所述的設(shè)備,其特征在于,該電路在清除了該指令存儲(chǔ)器加載信號(hào)時(shí)清除該擴(kuò)展的重置信號(hào)。
23.一種系統(tǒng),其特征在于,包括一個(gè)靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器設(shè)備;一個(gè)連接到該靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器設(shè)備的數(shù)字處理器,該數(shù)字處理器被配置來(lái)從一個(gè)指令存儲(chǔ)器讀取指令;其中該數(shù)字處理器包括適于在該指令存儲(chǔ)器經(jīng)歷指令加載時(shí)禁止由該數(shù)字處理器讀取的重置邏輯。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,進(jìn)一步包含連接到該指令存儲(chǔ)器的適于加載該指令存儲(chǔ)器的不易失存儲(chǔ)器;其中的該重置邏輯適于在指令從該不易失存儲(chǔ)器加載到該指令存儲(chǔ)器時(shí)禁止由該數(shù)字處理器讀取。
25.如權(quán)利要求24所述的系統(tǒng),其特征在于,該重置邏輯適于在指令加載到該指令存儲(chǔ)器后激活由該數(shù)字處理器讀取。
26.如權(quán)利要求23所述的系統(tǒng),其特征在于,該重置邏輯是安排來(lái)生成一個(gè)信號(hào),而其中的禁止讀取是該信號(hào)的結(jié)果。
27.如權(quán)利要求23所述的系統(tǒng),其特征在于,該指令存儲(chǔ)器包含靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器。
28.如權(quán)利要求23所述的系統(tǒng),其特征在于,該數(shù)字處理器包含一個(gè)流水線處理器。
29.如權(quán)利要求23所述的系統(tǒng),其特征在于,該數(shù)字處理器包含一個(gè)控制單元。
全文摘要
在某一實(shí)施例中,披露了一種用于在一個(gè)擴(kuò)展的重置中保持處理器的指令讀取請(qǐng)求的方法。在該處理器經(jīng)歷重置時(shí),禁止讀取請(qǐng)求。在重置完成后,在加載指令存儲(chǔ)器時(shí)仍保持禁止讀取請(qǐng)求。在加載指令存儲(chǔ)器完成后,激活讀取請(qǐng)求。
文檔編號(hào)G06F9/38GK1481528SQ01820701
公開(kāi)日2004年3月10日 申請(qǐng)日期2001年12月10日 優(yōu)先權(quán)日2000年12月15日
發(fā)明者R·P·辛格, C·P·羅思, R·科拉戈特拉, J·G·雷維利亞, R P 辛格, 晏乩, 羅思, 雷維利亞 申請(qǐng)人:英特爾公司, 模擬設(shè)備股份有限公司