RISC指令集和ALU

RISC處理器

處理器的指令集決定了處理器能做什么沈矿、擅長做什么惜犀,也決定了處理器的復(fù)雜度甲脏。舉個例子貌嫡,當(dāng)指令集中包含了很多特殊數(shù)學(xué)運算指令如舍入,不同精度定點浮點運算狡孔,除法,蝶形運算和比特反轉(zhuǎn)尋址等時,這個處理器一定是針對數(shù)字信號處理而設(shè)計的數(shù)字信號處理器跟衅。
RISC是精簡指令集的縮寫,其包含的指令都是最基本的播歼,如算數(shù)運算伶跷,邏輯運算以及跳轉(zhuǎn)等必須的指令。下圖是一個典型的精簡指令集秘狞。


處理器指令集詳解

這個指令集包含31條指令叭莫,如第三列所示。第一列是每種指令對應(yīng)的操作碼烁试。由于這個指令集僅包含31條指令雇初,操作碼的位數(shù)是5位。為了便于擴充指令集减响,操作碼編碼為6位靖诗,最高位全是零。

操作數(shù)

通常每條指令有兩個操作數(shù)(operand)支示,分別為side_a和side_b刊橘。
有的指令只有一個操作數(shù),如跳轉(zhuǎn)指令颂鸿,其唯一的操作數(shù)就是程序執(zhí)行時要跳轉(zhuǎn)到的地址促绵。同樣所有的移位操作也只有一個操作數(shù),即暫存了待移位數(shù)的寄存器編號。移位后的數(shù)會仍然留在同一個寄存器中败晴。
同樣的浓冒,加一指令(INC)和減一指令(DEC)也只需要一個操作數(shù),因為加減一后的數(shù)也留在原地位衩。
需要注意的是有兩個指令不需要任何操作數(shù)裆蒸,分別是NOP指令和SLEEP指令。

NOP

NOP指令就是no operation的意思糖驴,處理器不干任何事情僚祷。那為什么需要這個指令?這個指令的用處可不小贮缕。程序中為了湊時序辙谜,等待,死循環(huán)等功能就是靠若干個NOP指令來實現(xiàn)的感昼。

SLEEP

SLEEP睡眠指令也很重要装哆,是為了讓處理器臨時進入低功耗狀態(tài)從而實現(xiàn)節(jié)電的效果。SLEEP需要特殊的上電電路來實現(xiàn)定嗓。

指令長度

上表的Words列給出?每種指令包含幾個Words蜕琴。每個Word包含16個bit。
可以看到除了加載立即數(shù)(LOADI)外其他所有指令都只占用一個Word宵溅,即16bit凌简。這16比特中6bit是指令字(最高位為零,方便擴充指令集)恃逻,5bit是操作數(shù)a對應(yīng)的寄存
器的編號雏搂。這表示最大支持的寄存器數(shù)為32。最低5bit對應(yīng)操作數(shù)b對應(yīng)的寄存器寇损。

指令周期

指令周期指一條指令執(zhí)行時需要的時鐘周期數(shù)凸郑。
三個加載和存儲指令,加載立即數(shù)(LOADI)指令矛市,從內(nèi)存加載(LOAD)和存儲(STORE)需要三個時鐘周期來執(zhí)行芙沥。其余所有指令都需要兩個時鐘周期來執(zhí)行。
具體每個時鐘周期處理器對應(yīng)的任務(wù)分解隨后會講到浊吏。

進位標(biāo)志 C-flag

進位標(biāo)志表示當(dāng)前運算是否發(fā)生了進位或者借位而昨。如果發(fā)生了進位或者借位時,進位標(biāo)志被置為1卿捎,否則進位標(biāo)志被置為0配紫。
上表C-flag列中標(biāo)注x的指令被執(zhí)行時會影響進位標(biāo)志。
進位標(biāo)志用來判斷指令執(zhí)行是否發(fā)生溢出午阵,也可以用來級聯(lián)前后操作躺孝,實現(xiàn)對大數(shù)的運算享扔。

零標(biāo)志 Z-flag

零標(biāo)志表示當(dāng)前運算結(jié)果是否為零。如果為零則該標(biāo)志被置為1植袍。
零標(biāo)志可以用來判斷預(yù)設(shè)的計數(shù)器是否減為零惧眠,兩個數(shù)是否相等。

ALU 算術(shù)邏輯運算單元

ALU是處理器中具體完成每條指令運算的功能模塊于个。上表最后三列給出了每條指令執(zhí)行時每個時鐘周期需要完成ALU運算氛魁。
經(jīng)過分析歸納,ALU需要支持的運算包括對操作數(shù)加1厅篓,對操作數(shù)減1秀存,兩個操作數(shù)加和減,兩個數(shù)的與或及異或等按位邏輯運算羽氮,操作數(shù)按位取反或链,左移右移。
ALU 的實現(xiàn)需要包括上面的所有功能档押“难危考慮到面積優(yōu)化,加減1和減法可以全部由加反來實現(xiàn)令宿。

ADD

以加法指令為例叼耙。第一個時鐘周期時,ALU 被用來作程度計數(shù)器(PC program counter)的加1操作粒没,從而使程序指針指向當(dāng)前指令筛婉。第二個時鐘周期完成實際的加法功能。

LOADI

所有指令中最特殊的指令是LOADI指令革娄。由于LOADI是唯一的雙字指令倾贰,第一個時鐘周期時冕碟,ALU執(zhí)行加1操作拦惋,將程序計數(shù)器指向該條指令的第一個16bit word,第二個時鐘周期時安寺,ALU再次執(zhí)行加1操作厕妖,將程序計數(shù)器指向該指令的第二個word,即立即數(shù)。

這個經(jīng)典的16bit精簡指令處理器非常適合用來學(xué)習(xí)處理器設(shè)計挑庶,匯編語言學(xué)習(xí)言秸,以及硬件描述語言學(xué)習(xí)。從理解指令集開始迎捺,到ALU設(shè)計到datapath 設(shè)計举畸,大家會很快收到良好的學(xué)習(xí)效果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凳枝,一起剝皮案震驚了整個濱河市抄沮,隨后出現(xiàn)的幾起案子跋核,更是在濱河造成了極大的恐慌,老刑警劉巖叛买,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砂代,死亡現(xiàn)場離奇詭異,居然都是意外死亡率挣,警方通過查閱死者的電腦和手機刻伊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椒功,“玉大人捶箱,你說我怎么就攤上這事《” “怎么了讼呢?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谦炬。 經(jīng)常有香客問我悦屏,道長,這世上最難降的妖魔是什么键思? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任础爬,我火速辦了婚禮,結(jié)果婚禮上吼鳞,老公的妹妹穿的比我還像新娘看蚜。我一直安慰自己,他們只是感情好赔桌,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布供炎。 她就那樣靜靜地躺著,像睡著了一般疾党。 火紅的嫁衣襯著肌膚如雪音诫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天雪位,我揣著相機與錄音竭钝,去河邊找鬼。 笑死雹洗,一個胖子當(dāng)著我的面吹牛香罐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播时肿,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼庇茫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了螃成?” 一聲冷哼從身側(cè)響起旦签,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤啥容,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后顷霹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咪惠,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年淋淀,在試婚紗的時候發(fā)現(xiàn)自己被綠了遥昧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡朵纷,死狀恐怖炭臭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袍辞,我是刑警寧澤鞋仍,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站搅吁,受9級特大地震影響威创,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谎懦,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一肚豺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧界拦,春花似錦吸申、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛉威,卻和暖如春日丹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓷翻。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工聚凹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留割坠,地道東北人齐帚。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像彼哼,于是被迫代替她去往敵國和親对妄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容