專利名稱:基于指令雙發(fā)射的高性能低功耗嵌入式處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式處理器,尤其是一種高性能低功耗嵌入式 處理器。
背景技術(shù):
嵌入式系統(tǒng)指面向特定應(yīng)用領(lǐng)域和執(zhí)行特定任務(wù)的計(jì)算機(jī)系統(tǒng), 通常由嵌入式處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng) 用程序等四個(gè)部分組成。嵌入式系統(tǒng)無所不在,并已經(jīng)滲透到國名經(jīng)
濟(jì)的各個(gè)角落在消費(fèi)類電子產(chǎn)品中,如數(shù)碼相機(jī)、DVD播放器和打 印機(jī)等;在醫(yī)療設(shè)備中,如強(qiáng)心劑無節(jié)律監(jiān)視器和強(qiáng)心劑心律調(diào)整器 等;在汽車設(shè)計(jì)中,如燃料加注系統(tǒng)和自動(dòng)剎閘系統(tǒng)等。嵌入式系統(tǒng) 將在國家信息化戰(zhàn)略中起到至關(guān)重要的作用。
嵌入式處理器是嵌入式系統(tǒng)的核心部件。嵌入式處理器負(fù)責(zé)運(yùn)行 操作系統(tǒng)以及用戶的應(yīng)用程序,調(diào)度和管理外圍硬件設(shè)備,是系統(tǒng)正 常高效運(yùn)行的硬件基礎(chǔ)。按照數(shù)據(jù)位的寬度,嵌入式處理器可分為8 位,16位和32位微處理器。目前,8位嵌入式處理器以8051為代表, 主要應(yīng)用于低端嵌入式應(yīng)用領(lǐng)域;16位和32位嵌入式處理器應(yīng)用于 對(duì)性能有較高要求的高端嵌入式系統(tǒng)中,包括信息安全、消費(fèi)類電子、 通信等領(lǐng)域。高端32位嵌入式處理器是未來高性能嵌入式系統(tǒng)發(fā)展的 必然要求,并逐漸代替8位、16位嵌入式處理器成為嵌入式領(lǐng)域的主 流處理器。
過去嵌入式處理器性能提高主要依賴運(yùn)行頻率的提升,流水線技術(shù)是處理器頻率提升的核心技術(shù)。流水線技術(shù)通過將指令運(yùn)行劃分成 若干的步驟,并將這些步驟分別分配到不同的時(shí)鐘周期,這樣每個(gè)時(shí) 鐘周期僅需完成總工作量的若干分支一,使得硬件電路的時(shí)鐘頻率有 極大的提升。流水線每個(gè)執(zhí)行節(jié)拍將當(dāng)前完成的指令送入下個(gè)執(zhí)行節(jié) 拍,每個(gè)節(jié)拍均有指令完成,從而提升了處理器整體吞吐量。過去io 多年,嵌入式處理器的頻率從幾兆赫茲提升到幾百兆赫茲,總體處理 能力有了突飛猛進(jìn)。但是頻率的提升意味著增加硬件成本和系統(tǒng)功耗, 這對(duì)于成本功耗敏感的嵌入式系統(tǒng)往往是不可接受的。因此,僅通過 提升處理器頻率來提高性能無法滿足高端嵌入式應(yīng)用對(duì)于處理器性 能、功耗和成本等多方面的需求。
發(fā)明內(nèi)容
為了克服已有的嵌入式處理器不能兼顧性能和功耗、成本高的不 足,本發(fā)明提供一種在低功耗的前提下提高性能、成本低的基于指令 雙發(fā)射的高性能低功耗嵌入式處理器。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
一種基于指令雙發(fā)射的高性能低功耗嵌入式處理器,包括 取指單元,用于在單時(shí)鐘周期內(nèi)從所述片上指令存儲(chǔ)器或片外指令存 儲(chǔ)器中預(yù)取兩條指令,并送入流水線;
雙路譯碼單元,用于在流水線中設(shè)置兩個(gè)相同的譯碼單元,在單時(shí)鐘
周期內(nèi)并行譯碼兩條指令;
發(fā)射單元,用于將譯碼后的兩條指令存放到流水線寄存器,單時(shí)鐘周 期并行發(fā)射兩條指令,如參與運(yùn)算的操作數(shù)準(zhǔn)備完畢,在下一時(shí)鐘周
期將其送入執(zhí)行單元開始執(zhí)行;如參與運(yùn)算的操作數(shù)未準(zhǔn)備完畢,將
操作數(shù)未就緒的指令暫時(shí)保存至保留站寄存器中并釋放發(fā)射窗口,下
6一個(gè)時(shí)鐘周期,后續(xù)指令通過發(fā)射窗口進(jìn)行正常發(fā)射; 指令分發(fā)執(zhí)行控制單元,用于根據(jù)運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā),指令 分配邏輯實(shí)時(shí)監(jiān)測各執(zhí)行單元的工作情況,并根據(jù)各指令執(zhí)行單元返
回的信息將當(dāng)前發(fā)射的指令動(dòng)態(tài)分配至空閑的執(zhí)行單元中; 指令執(zhí)行單元,用于進(jìn)行指令的結(jié)果的運(yùn)算;
載入/存儲(chǔ)單元,用于當(dāng)指令發(fā)生載入/存儲(chǔ)操作缺失時(shí),當(dāng)前載入/ 存儲(chǔ)指令臨時(shí)釋放流水線,在專用的回填緩沖區(qū)中等待結(jié)果從片外載 入,后續(xù)載入/存儲(chǔ)指令成功占用流水線并順利訪問片上數(shù)據(jù)存儲(chǔ)器和 片外數(shù)據(jù)存儲(chǔ)器。
作為優(yōu)選的一種方案在所述指令發(fā)射單元中,當(dāng)前序指令由于
操作數(shù)未就緒而暫停執(zhí)行時(shí),后續(xù)發(fā)射的指令若操作數(shù)準(zhǔn)備就緒,先 于前續(xù)指令迸入執(zhí)行單元并開始執(zhí)行。
作為優(yōu)選的另一種方案所述嵌入式處理器還包括通用協(xié)處理
器接口,用于支持面向各種應(yīng)用領(lǐng)域的擴(kuò)展;所述通用協(xié)處理器器接
口連接協(xié)處理器總線。
進(jìn)一步,所述片上指令存儲(chǔ)器包括指令高速緩存器,用于實(shí)現(xiàn)
對(duì)指令讀取的片上高速緩沖;指令高速暫存器,用于提供軟件可配置
的指令緩沖區(qū);片上數(shù)據(jù)存儲(chǔ)器包括數(shù)據(jù)高速緩存器,用于實(shí)現(xiàn)對(duì) 數(shù)據(jù)讀取的片上高速緩沖;數(shù)據(jù)高速暫存器,用于提供軟件可配置的 片上數(shù)據(jù)臨時(shí)保存空間。
更進(jìn)一步,所述嵌入式處理器還包括功耗管理單元,用于實(shí)現(xiàn)
從正常模式到待機(jī)、關(guān)機(jī)和休眠三種低功耗模式轉(zhuǎn)換。
再進(jìn)一步,在所述指令執(zhí)行單元中,根據(jù)處理器性能的需求的高低,增加或減少相應(yīng)的執(zhí)行單元個(gè)數(shù)。執(zhí)行單元的接口實(shí)現(xiàn)標(biāo)準(zhǔn)化。 本發(fā)明的技術(shù)構(gòu)思為提升處理器性能的另一個(gè)重要途徑是在保
持頻率不變的情況下,提升處理器并行處理能力,增加處理器每個(gè)時(shí)
鐘周期能夠處理指令的數(shù)目。通過對(duì)處理器流水線的改進(jìn),允許每個(gè)
時(shí)鐘周期并行發(fā)射多條指令,提高指令級(jí)的并行性提升處理器的綜合
處理能力。挖掘處理器并行性提升處理器性能是目前嵌入式處理器創(chuàng)
新的主流思想。流水線的多發(fā)射機(jī)制是提高處理器性能,同時(shí)降低處
理器功耗的重要途徑,也是未來面向高性能嵌入式計(jì)算的嵌入式處理
器發(fā)展的主要方向。
本發(fā)明提出了單周期并行發(fā)射和執(zhí)行兩條指令的嵌入式處理器硬 件架構(gòu),創(chuàng)新了流水線多種工作機(jī)制,極大的提升了嵌入式處理器的 并行處理能力,實(shí)現(xiàn)了嵌入式處理器在性能上的跨越式發(fā)展。
本發(fā)明的有益效果主要表現(xiàn)在1、在低功耗的前提下提高性能 通過各種高效流水線執(zhí)行機(jī)制的有機(jī)組合,基于指令雙發(fā)射的高性能 低功耗嵌入式處理器與相同指令集系統(tǒng)的單發(fā)射處理器相比,極限性 能提升100°/。,平均性能提升60%左右,可滿足高性能嵌入式計(jì)算的
基本需求。通過有效的功耗管理機(jī)制,功耗控制在0.4mW/MHz以內(nèi); 2、降低了成本。
圖1是指令雙發(fā)射嵌入式處理器總體結(jié)構(gòu)框圖。
圖2是取指單元從片上或片外存儲(chǔ)器取指邏輯框圖。 圖3是非阻塞的發(fā)射機(jī)制的示意圖。 圖4是指令動(dòng)態(tài)分配策略的示意圖。 圖5是處理器工作模式轉(zhuǎn)換的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照圖1 圖5,一種基于指令雙發(fā)射的高性能低功耗嵌入式處理 器,包括
取指單元,用于在單時(shí)鐘周期內(nèi)從所述片上指令存儲(chǔ)器或片外指 令存儲(chǔ)器中預(yù)取兩條指令,并送入流水線;
雙路譯碼單元,用于在流水線中設(shè)置兩個(gè)相同的譯碼單元,在單
時(shí)鐘周期內(nèi)并行譯碼兩條指令;
發(fā)射單元,用于將譯碼后的兩條指令存放到流水線寄存器,單時(shí) 鐘周期并行發(fā)射兩條指令,如參與運(yùn)算的操作數(shù)準(zhǔn)備完畢,在下一時(shí)
鐘周期將其送入執(zhí)行單元開始執(zhí)行;如參與運(yùn)算的操作數(shù)未準(zhǔn)備完畢, 將操作數(shù)未就緒的指令暫時(shí)保存至保留站寄存器中并釋放發(fā)射窗口, 下一個(gè)時(shí)鐘周期,后續(xù)指令通過發(fā)射窗口進(jìn)行正常發(fā)射;
指令分發(fā)執(zhí)行控制單元,用于根據(jù)運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā), 指令分配邏輯實(shí)時(shí)監(jiān)測各執(zhí)行單元的工作情況,并根據(jù)各指令執(zhí)行單 元返回的信息將當(dāng)前發(fā)射的指令動(dòng)態(tài)分配至空閑的執(zhí)行單元中;
指令執(zhí)行單元,用于進(jìn)行指令的結(jié)果的運(yùn)算,執(zhí)行單元的接口實(shí) 現(xiàn)標(biāo)準(zhǔn)化,可根據(jù)處理器性能的需求的高低,增加或減少相應(yīng)的執(zhí)行 單元個(gè)數(shù);
載入/存儲(chǔ)單元,用于當(dāng)指令發(fā)生載入/存儲(chǔ)操作缺失時(shí),當(dāng)前載 入/存儲(chǔ)指令臨時(shí)釋放流水線,在專用的回填緩沖區(qū)中等待結(jié)果從片外 載入,后續(xù)載入/存儲(chǔ)指令成功占用流水線并順利訪問片上數(shù)據(jù)存儲(chǔ)器 和片外數(shù)據(jù)存儲(chǔ)器。在所述指令發(fā)射單元中,當(dāng)前序指令由于操作數(shù)未就緒而暫停執(zhí) 行時(shí),后續(xù)發(fā)射的指令若操作數(shù)準(zhǔn)備就緒,先于前續(xù)指令進(jìn)入執(zhí)行單 元并開始執(zhí)行。
本實(shí)施例的嵌入式處理器的總體邏輯框圖如附圖1所示,其具體 需實(shí)施主要包括以下步驟
1) 取指單元實(shí)現(xiàn)單時(shí)鐘周期預(yù)取兩條指令,送入流水線;
2) 采用雙路譯碼單元,單時(shí)鐘周期并行譯碼兩條指令;
3) 采用非阻塞發(fā)射機(jī)制,單時(shí)鐘周期并行發(fā)射兩條指令
4) 指令動(dòng)態(tài)分配機(jī)制可根據(jù)執(zhí)行單元運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā);
5) 采用亂序執(zhí)行機(jī)制,完成發(fā)射的指令只要操作數(shù)準(zhǔn)備完畢即可進(jìn) 入指令執(zhí)行單元執(zhí)行,其執(zhí)行順序與程序順序無關(guān);
6) 采用非阻塞載入/存儲(chǔ)機(jī)制,在前續(xù)指令出現(xiàn)高速緩存缺失情況 下,后續(xù)指令可以繼續(xù)進(jìn)入載入/存儲(chǔ)單元,并訪問高速緩存器或高速 暫存器;
7) 通用協(xié)處理器接口實(shí)現(xiàn)嵌入式處理器面向特定應(yīng)用領(lǐng)域的擴(kuò)展;
8) 高速緩存器與高速暫存器共同構(gòu)成豐富的片上存儲(chǔ)資源;
9) 功耗管理單元實(shí)現(xiàn)處理器從正常模式到待機(jī)、關(guān)機(jī)和休眠三種低 功耗模式轉(zhuǎn)換。
其中,取指單元實(shí)現(xiàn)單時(shí)鐘周期預(yù)取兩條指令,送入流水線。雙 發(fā)射嵌入式處理器的取指單元處于流水線的最前級(jí),其主要工作任務(wù) 是每個(gè)時(shí)鐘周期取兩條指令,并送入流水線。指令通常保存在片上高 速緩存器或高速暫存器,或者片外存儲(chǔ)器中。片上存儲(chǔ)器或者片外存 儲(chǔ)器按照兩條指令寬度組織存儲(chǔ)結(jié)構(gòu)(區(qū)塊1存儲(chǔ)指令1,區(qū)塊0存 儲(chǔ)指令0),保證每個(gè)時(shí)鐘周期能夠提供兩條指令,如圖2所示。當(dāng)目標(biāo)取指地址命中片上高速緩存器或高速暫存器時(shí),每個(gè)時(shí)鐘周期可以 從這些片上存儲(chǔ)器中取到兩條指令。當(dāng)目標(biāo)取指地址出現(xiàn)片上高速緩 存器或高速暫存器缺失時(shí),需通過系統(tǒng)總線接口從片外存儲(chǔ)器獲得指
采用雙路譯碼單元,單時(shí)鐘周期并行譯碼兩條指令。支持指令雙 發(fā)射的高性能流水線每個(gè)時(shí)鐘周期需并行處理兩條指令,因此需要設(shè) 計(jì)兩個(gè)功能相同的譯碼單元分別對(duì)兩條指令進(jìn)行獨(dú)立譯碼。當(dāng)前級(jí)流 水線僅送一條指令進(jìn)入譯碼單元時(shí),其中一個(gè)譯碼單元會(huì)進(jìn)入休眠狀 態(tài),實(shí)現(xiàn)譯碼過程的低功耗。
在發(fā)射單元中,采用非阻塞發(fā)射機(jī)制,單時(shí)鐘周期并行發(fā)射兩條 指令。指令經(jīng)過譯碼后進(jìn)入發(fā)射階段,根據(jù)譯碼獲得的操作數(shù)相關(guān)信 息首先査找操作數(shù)是否就緒。若操作數(shù)準(zhǔn)備就緒,指令可送入執(zhí)行單
元開始執(zhí)行;若操作數(shù)暫時(shí)未就緒,則當(dāng)前指令暫時(shí)不能送入執(zhí)行單
元,需要等待操作數(shù)就緒后方能發(fā)射。采用傳統(tǒng)發(fā)射機(jī)制,由于當(dāng)前 指令需要等待操作數(shù)就緒后方能實(shí)施反射,后續(xù)指令由于不能占用反
射窗口而被阻塞在前級(jí)流水線。本發(fā)明提出的非阻塞發(fā)射機(jī)制如圖3 所示,當(dāng)指令出現(xiàn)操作數(shù)未就緒時(shí),將當(dāng)前指令發(fā)射至專用的保留站 寄存器中,由保留站負(fù)責(zé)操作數(shù)的等待。此時(shí)發(fā)射窗口被釋放,后續(xù) 指令可以繼續(xù)占用發(fā)射窗口,實(shí)施發(fā)射。這種機(jī)制通過將需要進(jìn)行操 作數(shù)等待的指令暫時(shí)移出主流水線,將發(fā)射窗口資源釋放給后續(xù)指令 的方法,解決了發(fā)射窗口的阻塞問題,提升處理器發(fā)射效率。
指令分發(fā)執(zhí)行控制單元實(shí)現(xiàn)指令動(dòng)態(tài)分配機(jī)制,可根據(jù)執(zhí)行單元 運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā)。為了提升流水線的并行執(zhí)行能力,雙發(fā) 射嵌入式處理器的執(zhí)行單元的資源比較豐富,相同類型的指令配備兩個(gè)相同的執(zhí)行單元,從而實(shí)現(xiàn)兩條相同類型指令的并行執(zhí)行。而相對(duì) 豐富的執(zhí)行單元硬件資源對(duì)指令分配提出了更高了要求。固定的指令 分配策略在很大程度上不能發(fā)揮執(zhí)行單元資源的優(yōu)勢。雙發(fā)射流水線 采用動(dòng)態(tài)分配策略,結(jié)合執(zhí)行單元反饋的信息實(shí)施分配指令。對(duì)于同 種類型的指令通常對(duì)應(yīng)兩個(gè)相同的執(zhí)行單元,在默認(rèn)情況下,出現(xiàn)指 令0上的指令被發(fā)送到執(zhí)行單元0,出現(xiàn)在指令1上的指令被發(fā)送至 執(zhí)行單元1。若執(zhí)行單元0正忙而執(zhí)行單元1空閑,則指令0可發(fā)送 至執(zhí)行單元1進(jìn)行執(zhí)行,如圖4所示。這種可動(dòng)態(tài)調(diào)整的分配策略雖 然邏輯設(shè)計(jì)相對(duì)復(fù)雜,但可有效提升執(zhí)行單元的利用效率,從而提高 處理器的綜合性能。
采用亂序執(zhí)行機(jī)制,完成發(fā)射的指令只要操作數(shù)準(zhǔn)備完畢即可進(jìn) 入執(zhí)行單元執(zhí)行,其執(zhí)行順序與程序順序無關(guān)。指令進(jìn)入執(zhí)行單元執(zhí) 行的前提是參與運(yùn)算的操作數(shù)準(zhǔn)備完畢,若操作數(shù)由于數(shù)據(jù)相關(guān)性暫 時(shí)還沒有準(zhǔn)備就緒,此時(shí)指令需要等待操作數(shù)。若按照程序的順序執(zhí) 行指令,則后續(xù)的指令會(huì)由于當(dāng)前指令的等待而無法執(zhí)行,從而導(dǎo)致 流水線的整體停頓。在支持亂序執(zhí)行的流水線中,操作數(shù)未準(zhǔn)備完畢
的指令會(huì)被發(fā)射至保留站中臨時(shí)保存,如圖3所示,后續(xù)指令仍可繼
續(xù)發(fā)射至執(zhí)行單元中。后續(xù)指令,特別是多周期才能執(zhí)行完畢的指令, 由于執(zhí)行時(shí)間提前,因此其完成運(yùn)算的時(shí)間也被提前,從而提高了處 理器的整體處理能力。通過保留站技術(shù),使后續(xù)指令提前進(jìn)入流水線 亂序執(zhí)行的機(jī)制是提升處理器運(yùn)算能力的關(guān)鍵技術(shù)。
在存儲(chǔ)/載入單元中,采用非阻塞載入/存儲(chǔ)機(jī)制,在前續(xù)存儲(chǔ)/載 入指令出現(xiàn)高速緩存缺失情況下,后續(xù)存儲(chǔ)/載入指令仍可以繼續(xù)進(jìn)入 載入/存儲(chǔ)單元,訪問存儲(chǔ)器。載入/存儲(chǔ)單元主要負(fù)責(zé)數(shù)據(jù)從片上或者片外存儲(chǔ)器中載入。由于在流水線中設(shè)計(jì)了片上存儲(chǔ)器和片上暫存 器,通常數(shù)據(jù)從片上獲得,從而提高數(shù)據(jù)載入速度。若出現(xiàn)片上存儲(chǔ) 器訪問缺失時(shí),數(shù)據(jù)需要從片外存儲(chǔ)器中載入。傳統(tǒng)處理器會(huì)堵塞流 水線,直到當(dāng)前數(shù)據(jù)重新載入為止。本發(fā)明公布的非阻塞載入/存儲(chǔ)機(jī) 制,在出現(xiàn)數(shù)據(jù)片上緩存器訪問缺失時(shí),將引起缺失的指令及其重新 載入請求保存至流水線以外的專用回填緩沖區(qū)中等待數(shù)據(jù)結(jié)果從片外 載入,釋放流水線資源,這樣后續(xù)指令仍然可以成功占用流水線并順 利訪問高速存儲(chǔ)器或高速暫存器資源,提高載入/存儲(chǔ)單元的訪問效 率。由于后續(xù)指令仍可按照正常的方式提前進(jìn)入載入/存儲(chǔ)單元,所以 處理器綜合性能有一定的提升。
通用協(xié)處理器接口實(shí)現(xiàn)嵌入式處理器面向各種應(yīng)用的擴(kuò)展。嵌入 式處理器通常面向特定的應(yīng)用領(lǐng)域,不同的應(yīng)用領(lǐng)域?qū)τ跀?shù)據(jù)處理的 形式和性能需求差異較大。因此提供一個(gè)有效的處理器擴(kuò)展機(jī)制,面 向不同應(yīng)用設(shè)計(jì)不同的加速單元是目前解決應(yīng)用復(fù)雜性的重要方法。 本發(fā)明通過在處理器流水線中,設(shè)計(jì)一個(gè)協(xié)處理器接口單元,如圖1 所示,支持用戶通過協(xié)處理器的方式實(shí)現(xiàn)功能擴(kuò)展。通用協(xié)處理器接 口定義了標(biāo)準(zhǔn)的數(shù)據(jù)的讀寫操作協(xié)議,實(shí)現(xiàn)了擴(kuò)展運(yùn)算單元與處理器 內(nèi)核的高速通信。
高速緩存器與高速暫存器共同構(gòu)成豐富的片上存儲(chǔ)資源。與處理 器運(yùn)行速度相比,片外存儲(chǔ)器的運(yùn)行速度相對(duì)較慢,處理器訪問外部 存儲(chǔ)器的造成很大的性能損失。為了降低訪問片外存儲(chǔ)器而引起的性 能損失,高性能嵌入式處理器通常設(shè)置對(duì)于軟件透明的高速緩存器。 本發(fā)明設(shè)計(jì)采用哈佛結(jié)構(gòu)的指令高速緩存和數(shù)據(jù)高速緩存,取指單元 從指令高速緩存中預(yù)取指令,載入/存儲(chǔ)單元從數(shù)據(jù)高速緩沖中載入數(shù)據(jù)。高速緩存對(duì)于軟件完全透明,無需軟件干預(yù),硬件控制邏輯通過 重新載入機(jī)制自動(dòng)從片外載入。對(duì)于一些特殊的嵌入式應(yīng)用,軟件往 往需要控制數(shù)據(jù)在片上的保存與替換,僅設(shè)計(jì)片上高速緩存無法滿足 應(yīng)用的多種需求。在這樣的背景下,設(shè)計(jì)了片上高速暫存器作為片上 緩存的重要補(bǔ)充。片上高速暫存器分為指令片上暫存器和數(shù)據(jù)片上暫 存器,構(gòu)成哈佛結(jié)構(gòu)的片上存儲(chǔ)器。片上暫存器需要軟件顯式的進(jìn)行 管理,從而適應(yīng)特定應(yīng)用對(duì)于片上存儲(chǔ)器的需求。片上高速緩存和高 速暫存作為片上一級(jí)緩存資源供用戶結(jié)合具體的應(yīng)用進(jìn)行選擇與配 置。
功耗管理單元實(shí)現(xiàn)處理器從正常模式到待機(jī)、關(guān)機(jī)和休眠三種低 功耗模式轉(zhuǎn)換。為雙發(fā)射嵌入式處理設(shè)置四種工作模式,分別為正常、 待機(jī)、關(guān)機(jī)和休眠。正常工作模式為處理器全速運(yùn)行的模式,處理器 所有功能。待機(jī)、關(guān)機(jī)和休眠三種模式均為低功耗模式。在待機(jī)模式 下,處理器的工作時(shí)鐘被關(guān)閉,處理器流水線處于非活躍狀態(tài),所有 寄存器信息不再更新,從而降低功耗。處理器的狀態(tài)信息在待機(jī)模式 下全部保存,僅需恢復(fù)時(shí)鐘便可使處理器從新開始執(zhí)行。關(guān)機(jī)模式下, 處理器的電源被關(guān)閉,流水線和片上存儲(chǔ)器信息完全丟失。休眠模式 下,處理器內(nèi)核電源被關(guān)閉,流水線信息丟失,但片上存儲(chǔ)器的電源 仍然保持。因此休眠模式下,僅有存儲(chǔ)器的現(xiàn)場被保存。用戶可以根 據(jù)應(yīng)用的不同需求,選擇不同的模式進(jìn)入低功耗狀態(tài)。功耗管理單元 同時(shí)負(fù)責(zé)從各個(gè)低功耗狀態(tài)恢復(fù),外設(shè)可通過中斷激活處理器回到正
常工作狀態(tài)。低功耗狀態(tài)轉(zhuǎn)換關(guān)系如圖5所示。通過WAIT指令,STOP 指令和DOZE指令分別進(jìn)入待機(jī)、關(guān)機(jī)和休眠三種模式;通過中斷從 低功耗模式中喚醒。
權(quán)利要求
1、一種基于指令雙發(fā)射的高性能低功耗嵌入式處理器,其特征在于所述嵌入式處理器包括取指單元,用于在單時(shí)鐘周期內(nèi)從所述片上指令存儲(chǔ)器或片外指令存儲(chǔ)器中預(yù)取兩條指令,并送入流水線;雙路譯碼單元,用于在流水線中設(shè)置兩個(gè)相同的譯碼單元,在單時(shí)鐘周期內(nèi)并行譯碼兩條指令;發(fā)射單元,用于將譯碼后的兩條指令存放到流水線寄存器,單時(shí)鐘周期并行發(fā)射兩條指令,如參與運(yùn)算的操作數(shù)準(zhǔn)備完畢,在下一時(shí)鐘周期將其送入執(zhí)行單元開始執(zhí)行;如參與運(yùn)算的操作數(shù)未準(zhǔn)備完畢,將操作數(shù)未就緒的指令暫時(shí)保存至保留站寄存器中并釋放發(fā)射窗口,下一個(gè)時(shí)鐘周期,后續(xù)指令通過發(fā)射窗口進(jìn)行正常發(fā)射;指令分發(fā)執(zhí)行控制單元,用于根據(jù)運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā),指令分配邏輯實(shí)時(shí)監(jiān)測各執(zhí)行單元的工作情況,并根據(jù)各指令執(zhí)行單元返回的信息將當(dāng)前發(fā)射的指令動(dòng)態(tài)分配至空閑的執(zhí)行單元中;指令執(zhí)行單元,用于進(jìn)行指令的結(jié)果的運(yùn)算;載入/存儲(chǔ)單元,用于當(dāng)指令發(fā)生載入/存儲(chǔ)操作缺失時(shí),當(dāng)前載入/存儲(chǔ)指令臨時(shí)釋放流水線,在專用的回填緩沖區(qū)中等待結(jié)果從片外載入,后續(xù)載入/存儲(chǔ)指令成功占用流水線并順利訪問片上數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。
2、 如權(quán)利要求1所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理 器,其特征在于在所述指令發(fā)射單元中,當(dāng)前序指令由于操作數(shù)未 就緒而暫停執(zhí)行時(shí),后續(xù)發(fā)射的指令若操作數(shù)準(zhǔn)備就緒,先于前續(xù)指令進(jìn)入執(zhí)行單元并開始執(zhí)行。
3、 如權(quán)利要求1或2所述的基于指令雙發(fā)射的高性能低功耗嵌入式處 理器,其特征在于所述嵌入式處理器還包括 通用協(xié)處理器接口,用于支持面向各種應(yīng)用領(lǐng)域的擴(kuò)展;所述通用協(xié)處理器接口連接協(xié)處理器總線。
4、 如權(quán)利要求1或2所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理器,其特征在于所述片上指令存儲(chǔ)器包括-指令高速緩存器,用于實(shí)現(xiàn)對(duì)指令讀取的片上高速緩沖; 指令高速暫存器,用于提供軟件可配置的指令緩沖區(qū); 片上數(shù)據(jù)存儲(chǔ)器包括數(shù)據(jù)高速緩存器,用于實(shí)現(xiàn)對(duì)數(shù)據(jù)讀取的片上高速緩沖; 數(shù)據(jù)高速暫存器,用于提供軟件可配置的片上數(shù)據(jù)臨時(shí)保存空間。
5、 如權(quán)利要求3所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理 器,其特征在于所述片上指令存儲(chǔ)器包括指令高速緩存器,用于實(shí)現(xiàn)對(duì)指令讀取的片上高速緩沖; 指令高速暫存器,用于提供軟件可配置的指令緩沖區(qū); 片上數(shù)據(jù)存儲(chǔ)器包括數(shù)據(jù)高速緩存器,用于實(shí)現(xiàn)對(duì)數(shù)據(jù)讀取的片上高速緩沖; 數(shù)據(jù)高速暫存器,用于提供軟件可配置的片上數(shù)據(jù)臨時(shí)保存空間。
6、 如權(quán)利要求1或2所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理器,其特征在于所述嵌入式處理器還包括功耗管理單元,用于實(shí)現(xiàn)從正常模式到待機(jī)、關(guān)機(jī)和休眠三種低功耗 模式轉(zhuǎn)換。
7、 如權(quán)利要求5所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理 器,其特征在于所述嵌入式處理器還包括功耗管理單元,用于實(shí)現(xiàn)從正常模式到待機(jī)、關(guān)機(jī)和休眠三種低功耗 模式轉(zhuǎn)換。
8、 如權(quán)利要求1或2所述的基于指令雙發(fā)射的高性能低功耗嵌入式處 理器,其特征在于在所述指令執(zhí)行單元中,根據(jù)處理器性能的需求 的高低,增加或減少相應(yīng)的執(zhí)行單元個(gè)數(shù)。
9、 如權(quán)利要求5所述的基于指令雙發(fā)射的高性能低功耗嵌入式處理 器,其特征在于在所述指令執(zhí)行單元中,根據(jù)處理器性能的需求的 高低,增加或減少相應(yīng)的執(zhí)行單元個(gè)數(shù)。
全文摘要
一種基于指令雙發(fā)射的高性能低功耗嵌入式處理器,包括取指單元,用于在單時(shí)鐘周期內(nèi)預(yù)取兩條指令,并送入流水線;雙路譯碼單元,用于在單時(shí)鐘周期內(nèi)并行譯碼兩條指令;發(fā)射單元,用于單時(shí)鐘周期并行發(fā)射兩條指令;指令分發(fā)執(zhí)行控制單元,用于根據(jù)運(yùn)算負(fù)荷動(dòng)態(tài)調(diào)整指令分發(fā),依照亂序執(zhí)行機(jī)制控制執(zhí)行;指令執(zhí)行單元,用于進(jìn)行指令的結(jié)果的運(yùn)算;載入/存儲(chǔ)單元,用于在當(dāng)指令發(fā)生缺失時(shí),后續(xù)指令成功占用流水線并順利訪問片上數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。本發(fā)明在低功耗的前提下提高嵌入式處理器的性能、降低成本。
文檔編號(hào)G06F9/38GK101526895SQ20091009558
公開日2009年9月9日 申請日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者嚴(yán)曉浪, 孟建熠, 葛海通 申請人:杭州中天微系統(tǒng)有限公司