在MCU開發(fā)方面,以架構(gòu)而言,可分為兩大主流;RISC(Reduced Instruction Set Computer)與CISC(Complex Instruction Set Computer), RISC代表MCU的所有指令都是利用些簡(jiǎn)單的指令組成的,簡(jiǎn)單的指令代表 MCU 的線路可以盡量做到最佳化,而提高執(zhí)行速率,相對(duì)的使得一個(gè)指令所需的時(shí)間減到最短。HOLTEK的一系列MCU便是采用 RISC 結(jié)構(gòu)來設(shè)計(jì)。
RISC指令集精簡(jiǎn),許多工作都必須組合簡(jiǎn)單的指令,而針對(duì)較復(fù)雜組合的工作便需要由“編譯程式”(compiler)來執(zhí)行,而 CISC MCU因?yàn)橛搀w所提供的指令集較多,所以許多工作都能夠以一個(gè)或是數(shù)個(gè)指令來代替,compiler 的工作因而減少許多。
以一個(gè)數(shù)值運(yùn)算程式來說,使用 CISC 指令集的MCU運(yùn)算對(duì)于一個(gè)積分運(yùn)算式可能只需要十個(gè)機(jī)器指令,而 RISC MCU在執(zhí)行相同的程式時(shí),卻因?yàn)镃PU 本身不提供浮點(diǎn)數(shù)乘法的指令,所以可能需要執(zhí)行上百個(gè)機(jī)器指令(但每一個(gè)指令可能只需要 CISC 指令十分之一的時(shí)間),而由程式語(yǔ)言轉(zhuǎn)換成機(jī)器指令的動(dòng)作是由程式語(yǔ)言的 Compiler 來執(zhí)行,所以在 RISC MCU的Compiler 便會(huì)較復(fù)雜。因?yàn)橥瑯右粋(gè)高階語(yǔ)言 A=B*C 的運(yùn)算,在 RISC MCU轉(zhuǎn)換為機(jī)器指令可能有許多種組合,而每一種組合的“時(shí)間/空間”組合都不盡相同。所以 RISC 與 CISC 的取舍之間,似乎也是MCU硬體架構(gòu)與軟體(Compiler)的平衡之爭(zhēng),應(yīng)該沒有絕對(duì)優(yōu)勢(shì)的一方,只能說因應(yīng)不同的需求而有不同的產(chǎn)品,例如工作單純的印表機(jī)核心 MCU,便適合使用效能穩(wěn)定,但單位指令效率較佳的RISC MCU。
對(duì)單片機(jī)處理方式而言,目前單片機(jī)的系統(tǒng)結(jié)構(gòu)有兩種類型:一種是將程式和資料記憶體分開使用,即哈佛(Harvard)結(jié)構(gòu),當(dāng)前的單片機(jī)大都是這種結(jié)構(gòu)。另一種是采用和PC機(jī)的馮。諾依曼(Von Neumann)類似的原理,對(duì)程式和資料記憶體不作邏輯上的區(qū)分,即普林斯頓(Princeton)結(jié)構(gòu)。