存儲程序控制概述
存儲程序控制即為存儲程序和程序控制,程序輸入到計(jì)算機(jī)中,存儲在內(nèi)存儲器中(存儲原理),在運(yùn)行時,控制器按地址順序取出存放在內(nèi)存儲器中的指令(按地址順序訪問指令),然后分析指令,執(zhí)行指令的功能,遇到轉(zhuǎn)移指令時,則轉(zhuǎn)移到轉(zhuǎn)移地址,再按地址順序訪問指令(程序控制)。
雖然計(jì)算機(jī)技術(shù)發(fā)展很快,但存儲程序原理至今仍然是計(jì)算機(jī)內(nèi)在的基本工作原理。自計(jì)算機(jī)誕生的那一天起,這一原理就決定了人們使用計(jì)算機(jī)的主要方式——編寫程序和運(yùn)行程序??茖W(xué)家們一直致力于提高程序設(shè)計(jì)的自動化水平,改進(jìn)用戶的操作界面,提供各種開發(fā)工具、環(huán)境與平臺,其目的都是為了讓人們更加方便地使用計(jì)算機(jī),可以少編程甚至不編程來使用計(jì)算機(jī),因?yàn)橛?jì)算機(jī)編程畢竟是一項(xiàng)復(fù)雜的腦力勞動。但不管用戶的開發(fā)與使用界面如何演變,存儲程序控制原理沒有變,它仍然是我們理解計(jì)算機(jī)系統(tǒng)功能與特征的基礎(chǔ)。20世紀(jì)30年代中期, 馮·諾依曼大膽的提出,拋棄十進(jìn)制,采用二進(jìn)制作為數(shù)字計(jì)算機(jī)的數(shù)制基礎(chǔ)。同時,他還說預(yù)先編制計(jì)算程序,然后由計(jì)算機(jī)來按照人們事前制定的計(jì)算順序來執(zhí)行數(shù)值計(jì)算工作。馮·諾依曼和同事們設(shè)計(jì)出了一個完整的現(xiàn)代計(jì)算機(jī)雛形,并確定了存儲程序計(jì)算機(jī)的五大組成部分和基本工作方法。馮·諾依曼的這一設(shè)計(jì)思想被譽(yù)為計(jì)算機(jī)發(fā)展史上的里程碑,標(biāo)志著計(jì)算機(jī)時代的真正開始。馮·諾依曼成功將其理論運(yùn)用在計(jì)算機(jī)的設(shè)計(jì)之中,根據(jù)這一原理制造的計(jì)算機(jī)被稱為馮·諾依曼結(jié)構(gòu)計(jì)算機(jī),世界上第一臺馮·諾依曼式計(jì)算機(jī)是吸收了馮·諾依曼設(shè)計(jì)思想的劍橋大學(xué)于1949年研制的EDSAC,由于他對現(xiàn)代計(jì)算機(jī)技術(shù)的突出貢獻(xiàn),因此馮·諾依曼又被稱為“計(jì)算機(jī)之父”,存儲程序控制原理又稱馮·諾依曼原理。
首先,把程序和數(shù)據(jù)通過輸入輸出設(shè)備送入內(nèi)存。一般的內(nèi)存都是劃分為很多存儲單元,每個存儲單元都有地址編號,這樣按一定順序把程序和數(shù)據(jù)存起來,而且還把內(nèi)存分為若干個區(qū)域,比如有專門存放程序區(qū)和專門存放數(shù)據(jù)的數(shù)據(jù)區(qū)。其次,執(zhí)行程序,必須從第一條指令開始,以后一條一條地執(zhí)行。一般情況下按存放地址號的順序,由小到大依次執(zhí)行,當(dāng)遇到條件轉(zhuǎn)移指令時,才改變執(zhí)行的順序。每執(zhí)行一條指令,都要經(jīng)過三個步驟:第一步,把指令從內(nèi)存中送往譯碼器,稱為取指;第二步,譯碼器把指令分解成操作碼和操作數(shù),產(chǎn)生相應(yīng)的各種控制信號送往各電器部件;第三步,執(zhí)行相應(yīng)的操作。這一過程是由電子路線來控制,從而實(shí)現(xiàn)自動連續(xù)的工作。在運(yùn)行時,控制器按地址順序取出存放在內(nèi)存儲器中的指令(按地址順序訪問指令),然后分析指令,執(zhí)行指令的功能,遇到轉(zhuǎn)移指令時,則轉(zhuǎn)移到轉(zhuǎn)移地址,再按地址順序訪問指令。
存儲程序的思想——把計(jì)算過程描述為由許多命令按一定順序組成的程序,然后把程序和數(shù)據(jù)一起輸入計(jì)算機(jī),計(jì)算機(jī)對已存入的程序和數(shù)據(jù)處理后,輸出結(jié)果。存儲程序控制的要點(diǎn)是:數(shù)字計(jì)算機(jī)的數(shù)制采用二進(jìn)制;計(jì)算機(jī)應(yīng)該按照程序順序執(zhí)行。根據(jù)存儲程序控制結(jié)構(gòu)構(gòu)成的計(jì)算機(jī),必須具有如下功能:1、把需要的程序和數(shù)據(jù)送至計(jì)算機(jī)中;2、必須具有長期記憶程序、數(shù)據(jù)、中間結(jié)果及最終運(yùn)算結(jié)果的能力;3、能夠完成各種算術(shù)、邏輯運(yùn)算和數(shù)據(jù)傳送等數(shù)據(jù)加工處理的能力;4、能夠根據(jù)需要控制程序走向,并能根據(jù)指令控制機(jī)器的各部件協(xié)調(diào)操作;5、能夠按照要求將處理結(jié)果輸出給用戶。為了完成上述的功能,計(jì)算機(jī)必須具備五大基本組成部件,包括:1、 輸入數(shù)據(jù)和程序的輸入設(shè)備;2、 記憶程序和數(shù)據(jù)的存儲器;3、完成數(shù)據(jù)加工處理的運(yùn)算器;4、控制程序執(zhí)行的控制器;5、 輸出處理結(jié)果的輸出設(shè)備。