ARM硬件RISC與軟件設(shè)計(jì)簡(jiǎn)單化
CISC使用豐富的指令集,指令功能多,可以訪問(wèn)寄存器/內(nèi)存等,CPU強(qiáng)大,成就了x86的Intel等。
RISC使用精簡(jiǎn)的指令集,指令盡可能使用相同的長(zhǎng)度簡(jiǎn)化執(zhí)行,計(jì)算在寄存器內(nèi),只使用LOAD/STORE與內(nèi)存交換數(shù)據(jù)。CPU能耗低,成就了ARM等在嵌入式系統(tǒng)和手機(jī)CPU。
如果把CISC/RISC與軟件行業(yè)比較,比較像數(shù)據(jù)庫(kù)的關(guān)系數(shù)據(jù)庫(kù)(RDBMS)和鍵值數(shù)據(jù)庫(kù)(KVDB/NoSQL)。
關(guān)系數(shù)據(jù)庫(kù)和鍵值數(shù)據(jù)庫(kù)很久以來(lái)一直并存。
關(guān)系數(shù)據(jù)庫(kù)接口豐富,功能強(qiáng)大,Oracle/IBM/MS都有重量級(jí)的產(chǎn)品。
鍵值數(shù)據(jù)庫(kù)最簡(jiǎn)單的就Get/Set兩個(gè)接口,類似于LOAD/STORE,現(xiàn)在互聯(lián)網(wǎng)公司也用的很多,如BerkeleyDB/MongoDB/CouchDB/等。
CISC和關(guān)系數(shù)據(jù)庫(kù)的需求,在于有許多的用戶需要豐富的接口,使用方便,簡(jiǎn)化上層的編程。
RICS和鍵值數(shù)據(jù)庫(kù)的需求,在于許多對(duì)性能要求很高的場(chǎng)合,比如高負(fù)載,高并發(fā),大數(shù)據(jù)量,或者高實(shí)時(shí)性。在這種情況下,設(shè)計(jì)肯定要盡量簡(jiǎn)單,指令要少,把一切復(fù)雜的東西都交到上層處理。
小結(jié):對(duì)軟件設(shè)計(jì),在設(shè)計(jì)的時(shí)候,需要把性能要求高的地方,盡量簡(jiǎn)化,比如盡量把多線程并發(fā)處理,數(shù)據(jù)庫(kù)訪問(wèn)等,放在核心的幾個(gè)類中,把這幾個(gè)類認(rèn)真調(diào)試給其它類使用,其它類不要處理多線程等,但是可以把這些服務(wù)類“Service”做豐富,方便處理客戶的復(fù)雜需求。相當(dāng)于后臺(tái)是RISC設(shè)計(jì),前臺(tái)是CISC設(shè)計(jì)。性能穩(wěn)定,功能強(qiáng)大,童叟無(wú)欺。
后記:記得以前MySQL數(shù)據(jù)庫(kù)后臺(tái)是用鍵值數(shù)據(jù)庫(kù),且可以切換不同的鍵值數(shù)據(jù)庫(kù)?,F(xiàn)在Intel在PC的CPU很強(qiáng)大,也許以后會(huì)出PC的CPU,后臺(tái)是類似ARM的RISC設(shè)計(jì),前面包裝成一個(gè)CISC處理器。
評(píng)論