專利名稱:可編程序控制器的制作方法
本發(fā)明涉及一個可編程序控制器,更具體地說是涉及一個適用于要求高速處理和高效功能設(shè)備控制的可編程序控制器。
為了控制各種設(shè)備,可編程序控制器包括有定序器功能,它執(zhí)行邏輯操作以便邏輯控制一個設(shè)備;同時還包括一個用于執(zhí)行數(shù)字計算的運算裝置?!翱删幊绦颉边@個術(shù)語旨意諸用戶可以改變在控制器中的處理程序(例如,設(shè)備控制的程序)。
這種可編程序控制器對諸設(shè)備的接口由一個過程輸入/輸出部件構(gòu)成(以后稱作“PI/O”)。在許多情況下,從可編程序控制器的處理單元的角度來看,在PI/O里的地址表示一個被控制的設(shè)備,比如,在設(shè)備中的一個發(fā)動機。因此,當處理單元從存貯器中讀出一個控制指令去控制設(shè)備的時候,常常把該指令的地址部分表示的地址無修改地用作PI/O中的地址。在計算機執(zhí)行的不是設(shè)備控制而是一般的數(shù)據(jù)處理的情況下,通常把從存貯器中讀出指令的地址部分所表示的地址進行修改,去獲得一個所要求的地址。例如,當執(zhí)行控制器的操作系統(tǒng)時,地址修改就是在可編程序控制器中執(zhí)行的?!暗刂沸薷摹边@個術(shù)語表示不是直接地把指令(或命令)的地址部分用作要求的地址,要求的地址是根據(jù)指令(或命令)的修改部分表示的變址來修改指令的地址部分而形成的。一般地說,地址修改就是把變址內(nèi)容加到地址部分的處理。
在慣用的可編程序控制器中,為了統(tǒng)一指令的處理,把要求地址修改的指令(即,采取寄存器變址尋址方式的指令)和能夠執(zhí)行直接尋址的指令(即,采取直接尋址方式的指令)二者都作為寄存器變址尋址方式的指令來對待。也就是說,把不要求地址修改的指令看作是一個把寫入值為“0”的寄存器作為變址寄存器的指令,其要求的地址是通過把“0”加到該指令的地址部分而形成的。
在美國582,541號專利申請中提出了一個根據(jù)程序控制一個過程的數(shù)字控制器。在這個控制器中,操作數(shù)地址是通過一個以間接尋址方式的指令來確定的。也就是說,操作數(shù)的地址是從操作數(shù)地址存貯器中在一個確定的地址上讀出的,這個確定的地址是由指令寄存器中讀出指令的地址部分表示的,操作數(shù)是由操作數(shù)地址存貯器中讀出的地址來確定的。
在美國4228,497號專利中,提出了一個裝備有多極的,用來實行流水線處理,以便提高吞吐量的微程序數(shù)據(jù)處理機。在這個處理機中,在每一級上用于寫入和傳輸數(shù)據(jù)的地址是從一個不同于指令的源中給出的,并且是以間接尋址方式來確定的。如果把上面的數(shù)據(jù)處理機用在設(shè)備控制上,那么對于PI/O所有的寫入和讀出指令都將以間接尋址方式處理。
如上面的一些例子所示,在已有技術(shù)中,即便當可以用直接尋址方式對PI/O作寫入及讀出指令的處理時,也要執(zhí)行用于地址修改的算術(shù)運算,從而使得在處理機上的處理時間加長了。因此,這里就產(chǎn)生了一個處理單元或可變程序控制器的處理速度降低的問題。產(chǎn)生的另一個問題,是把沉重的負擔加到了處理單元的運算電路上。
本發(fā)明的目的是提供一個能解決上述已有技術(shù)中的問題并改善處理速度的可編程序控制器。
在本發(fā)明的可編程序控制器里,從存貯器里讀出的指令是屬要求地址修改的指令(即,采取寄存器變址尋址方式的指令),或者是一個不要求地址修改地能夠執(zhí)行直接尋址的指令(即,一個采取直接尋址方式的指令),是由處理單元來確定的;并且當讀出指令是屬直接尋址方式時,不把指令的地址部分表示的地址送到運算電路上去,而是直接用作確定在PI/O里接收信息或傳送信息的地址。
在大多數(shù)過程控制操作之中,可以運用直接尋址方式。因此,通過本發(fā)明可以提高可編程序控制器的處理速度。更詳細地說,上述在處理速度上的改進是通過另外設(shè)置的一些用來決定指令的尋址方式并執(zhí)行一些與此相關(guān)聯(lián)的操作的電路部分來實現(xiàn)的。
本發(fā)明的其它特征和優(yōu)點從結(jié)合附圖的下面的描述中將會是顯然的,在這里圖1是一個說明慣用的可編程序控制器的方框圖;
圖2是本發(fā)明的可編程序控制器的一個實施方案的方框圖;
圖3a和3b是用于解釋圖2所示實施方案如何工作的時間圖;
圖4是本發(fā)明的可編程序控制器的另一個實施方案的部分方框圖;
圖5是本發(fā)明的可編程序控制器的一個進一步實施方案的方框圖;
圖6是用于解釋圖5所示的實施方案如何工作的時間圖。
在解釋本發(fā)明的實施方案以前,將把慣用的可編程序控制器解釋如下。圖1以框圖表示一個慣用的可編程序控制器結(jié)構(gòu)。圖1所示的可編程序控制器是由一個中央處理單元(以下稱為“CPU”)1,一個用于存貯程序的存貯器13和一個用于連接CPU1到一個過程上去的PI/O 14構(gòu)成的。CPU1包含一個振蕩電路2,一個控制電路3一個程序計數(shù)器4,變址寄存器5,開關(guān)6、7和8,一個算術(shù)和邏輯單元(以下稱為“ALU”)9,一個地址寄存器10,一個累加器11,和一個指令寄存器12。
振蕩電路2產(chǎn)生一個用于決定各種定時的基本時鐘信號??刂齐娐?主要通過對程序進行譯碼來執(zhí)行各種控制操作。
程序計數(shù)器4接收來自控制電路3的遞增計數(shù)(或遞減計數(shù))信號,并計數(shù)來確定下一步要用的在程序中的地址。換句話說,程序計數(shù)器4的內(nèi)容指示出包含在程序中的所要求 指令的地址。當運用程序計數(shù)器4來確定在程序存貯器13中的地址時,可以直接通過程序計數(shù)器4的內(nèi)容來確定該地址(即,以直接尋址方式尋址)或者將程序計數(shù)器4的內(nèi)容譯碼,再把譯碼的結(jié)果作為地址(即,以間接尋址方式尋址)。
程序存貯器13存貯了一個用于控制一個過程的程序,并且在程序計數(shù)器4所確定的地址上將一個指令送到CPU1的指令寄存器12上去。
指令寄存器12暫時存貯一個按照程序計數(shù)器4的內(nèi)容從程序存貯器13中讀出的指令。這個指令有一個操作碼部分(即,OP部分),一個變址部分(即,IX部分),和一個地址部分(即,ADDR部分),它們分別地存貯在指令寄存器12的OP、IX和ADDR各部分之中。
把指令的OP部分從寄存器12送到控制電路3,并在那里被譯碼。根據(jù)譯碼的結(jié)果控制電路3執(zhí)行一個所要求的控制操作。在控制電路3的控制之下,把開關(guān)6和8分別置向6a一邊和8a一邊,或者分別置向6b和8b一邊。當把開關(guān)6置向6a一邊時,累加器11的內(nèi)容被選擇地加到了ALU9上。當把開關(guān)6置向6b一邊時,一個確定的變址寄存器5的內(nèi)容被選擇地加到了ALU9上。當把開關(guān)8置向8a一邊時,PI/O 14的輸出(即,操作數(shù))被選擇地加到了ALU9。當把開關(guān)8置向8b一邊時,指令寄存器12的ADDR部分的內(nèi)容被選擇地加到ALU9。
變址寄存器5是一個其地址由指令的IX部分確定的寄存器組,而且在其中存貯著用于地址修改的值。
將ALU9與來自開關(guān)6和8的輸出端相連接,在控制電路3的控制之下執(zhí)行各種算術(shù)運算。這些算術(shù)運算包括加法、減法、和其它運算。
在控制電路3的控制之下將開關(guān)7置向7a或7b一邊。當從PI/O14讀出一個操作數(shù)時,將開關(guān)7置向7a一邊。當把一個控制信號送到PI/O14上去時,將開關(guān)7置向7b一邊。
當是在CPU1和PI/O14之間傳送信息的指令時,ALU9把指令寄存器12的ADDR部分的內(nèi)容加到由指令寄存器12的IX部分所確定的變址寄存器5的內(nèi)容上去,并把這個加法結(jié)果作為在PI/O14中的一個地址送到地址寄存器10中。然而,在ALU9執(zhí)行用來形成數(shù)據(jù)的算術(shù)運算的情況時,要把算術(shù)運算的結(jié)果送到累加器11。當要求僅僅通過指令的ADDR部分來確定操作數(shù)的地址時,那么由指令寄存器12的IX部分所確定的變址寄存器5之中要預(yù)先寫入“0”值。當需要操作數(shù)的情況時,則在地址寄存器10所確定的地址上把操作數(shù)從PI/O14之中讀出來;而后,通過開關(guān)8送到ALU9。而當把控制信息輸出的情況下,則要通過ALU9和開關(guān)7把累加器11的內(nèi)容送到由地址寄存器10確定的在PI/O14中的地址上去。
由此可見,在慣用的可編程序控制器中,既便可以把指令的ADDR部分用作為地址,也要通過修改指令的ADDR部分來確定PI/O之中的地址,因此,CPU的處理時間變長了,而且還把沉重的負擔加給了ALU。
現(xiàn)在,來解釋本發(fā)明的可編程序控制器。
圖2表示根據(jù)本發(fā)明的一個可編程序控制器實施方案的結(jié)構(gòu)。我們以圖1中同樣的標識數(shù)字來標明從圖2到圖6之中的相同部分和元件。圖2所示的實施方案與已有技術(shù)是不同的。在這里,用在本實施方案中的指令具有一個用于確定這個指令是采取直接尋址方式還是采取間接尋址方式的一個POF部分,而且該指令寄存器具有一個用于存貯該指令的POF部分的一個區(qū)間。在圖2中,CPU1除了包含指令寄存器12以外還包含有以點劃線包圍起來的指令寄存器18。然而,指令寄存器18是可以省略掉的。圖2所示的結(jié)構(gòu)與圖1所示的結(jié)構(gòu)進一步的不同是在那里另外設(shè)有一個數(shù)據(jù)寄存器26,一個實際上是起或門(OR)作用的與非門(NAND)23,一個或門(OR)25,一個微分電路24,和一個開關(guān)27。除了電路元件23,24,25,26和27以外,在圖2中所示的所有電路元件都是與圖1中所示那些元件相同的。
每個指令寄存器的POF部分包含一個單一的比特。當POF部分具有“1”值時,表示這個指令是采取直接尋址方式;當POF部分具有“O”值時,則這個指令采取寄存器變址尋址方式。
至此由于參照圖1我們已經(jīng)解釋了程序計數(shù)器4、變址寄存器5、及其它部件,所以這些部件的解釋以下將予以省略。
現(xiàn)在,參照圖3a所示的時間圖來解釋省略了指令寄存器18時其圖2實施方案是如何工作的。上面的工作是首先基于來自振蕩電路2的基本時鐘信號100?,F(xiàn)在讓我們假設(shè)把第K個地址置入了程序計數(shù)器4。當指示一個算術(shù)運算完成的信號104(以下稱為“計算完成信號”)從控制電路3中送出來時,在程序存貯器13中的第K個地址上的指令I(lǐng)K就被送入指令寄存器12中。
在指令I(lǐng)K是直接尋址方式的情況下,指令的POF部分取“1”電平。這個電平出現(xiàn)在信號線17上,并且被與非門(NAND)23倒相。于是將“0”電平作為控制信號加到開關(guān)27上去,并且把開關(guān)27置向27a一邊。注意,當指令采取直接尋址方式時,從控制電路3加到與非門(NAND)23的寄存器修正指令信號102取“1”電平;因此,與非門(NAND)23對信號102和來自指令寄存器12的POF部分的輸出信號的反相形式取邏輯和。當把開關(guān)27置向27a一邊時,指令寄存器12的ADDR部分的內(nèi)容作為PI/O地址101(即,在PI/O14里的一個地址)被送到PI/O14。在PI/O14里把這樣一個地址信號加到連接每個設(shè)備的公共總線上去。當來自設(shè)備的狀態(tài)信息,也就是說從PI/O14中讀出一個操作數(shù)時,把來自PI/O地址101所確定的設(shè)備的信息,經(jīng)過PI/O14里的總線送入寄存器26之中。通過開關(guān)8把寄存器26的內(nèi)容送到ALU9,通過開關(guān)6把累加器11的內(nèi)容送到ALU9,于是對這些內(nèi)容執(zhí)行算術(shù)運算。把運算的結(jié)果再置入累加器11,或者通過開關(guān)7送到控制電路3。應(yīng)當指出在控制電路3的控制之下,開關(guān)6、7和8已經(jīng)被分別置向6a、7a和8a一邊。
當指令I(lǐng)K是一個用于給出一個控制信號到PI/O14上的指令時,則在控制電路3的控制下,將開關(guān)7置向7b一邊,而且將ALU9對累加器11的內(nèi)容執(zhí)行的算術(shù)運算結(jié)果,通過開關(guān)7送到PI/O14里由PI/O地址101確定的位置上。
現(xiàn)在,讓我們假設(shè)下一個指令I(lǐng)K+1是寄存器變址尋址方式的情況。通過指令I(lǐng)K的計算完成信號104把指令I(lǐng)K+1送入指令寄存器12中,于是寄存器12的POF部分為“0”電平。這個電平出現(xiàn)在信號線17上,并被與非門(NAND)23倒相,因而與非門(NAND)23的輸出信號為“1”電平,而且把開關(guān)27置向27b一邊??刂齐娐?對指令寄存器12的OP和POF部分進行譯碼,并給出一個地址計算命令105到信號線105,分別把開關(guān)6和8置向6b和8b一邊。這樣一來,ALU9把指令寄存器12的ADDR部分的內(nèi)容加到通過指令寄存器12的IX部分從變址寄存器5中選擇的一個寄存器的內(nèi)容上去。在地址計算命令105的下降沿上,把這個相加結(jié)果送入地址寄存器10中。待到下一個時鐘脈沖到來時把該寄存器10的內(nèi)容作為PI/O地址送到PI/O14。當指令I(lǐng)K+1是一個用于從PI/O14中讀出操作數(shù)的指令時,其操作數(shù)在上述的地址上從PI/O14中被讀出。根據(jù)指令寄存器12的POF部分的“0”電平,從控制電路3輸出的寄存器修正指令信號102,經(jīng)過與非門(NAND)23被送到微分電路24。在相應(yīng)于基本時鐘信號100的兩個時鐘脈沖信號的一段時間里,寄存器修正指令信號102為“0”電平。在這段時間里,與非門(NAND)23的輸出信號106為“1”電平。當上面的這段時間終止時,信號102為“1”電平,輸出信號106的電平從“1”變?yōu)椤?”。于是,微分電路24產(chǎn)生出一個反向的微分信號107,通過或(OR)門25把它給到寄存器26,再把從PI/O14中讀出的操作數(shù)置入寄存器26。根據(jù)來自控制電路3的命令,開關(guān)6和8已被分別置到了6a和8a一邊。因此,通過ALU9把寄存器26的內(nèi)容加到了累加器11的內(nèi)容中。這樣,就完成了指令I(lǐng)K+1的處理。
當指令I(lǐng)K+1是一個用于送出一個控制信號到PI/O14的指令時,PI/O地址101被送到PI/O14;并且,通過ALU9和開關(guān)7把累加器11的內(nèi)容送到PI/O14。
從圖3a所示的時間圖來看,很明顯,在處理一個從PI/O14中讀出操作數(shù)的指令時,把能夠執(zhí)行直接尋址的指令從其它的指令中區(qū)分開來,而且不執(zhí)行任何地址計算地從PI/O14中存取。也就是說,在對應(yīng)于基本鐘信號100的兩個時鐘脈沖的一段時間間隔里完成該指令的處理。而對于要求地址修正的指令的處理需要時鐘信號100的三個時鐘脈沖的時間。也就是說,能夠執(zhí)行直接尋址的指令的處理時間為要求地址修正的指令的處理時間的三分之二,況且通過直接尋址也減輕了加到ALU9上的負擔。
接下去,用圖3b所示的時間圖為參考來解釋為了實現(xiàn)流水線處理附加上指令寄存器18時的圖2實施方案。在裝備指令寄存器18的情況下,如下的處理將在本實施方案中執(zhí)行。當置入到指令寄存器12的指令是直接尋址方式的指令時,把由指令的ADDR部分確定的地址作為PI/O14地址101送到PI/O14,去指定在PI/O14中的一個地址。當置入到指令寄存器18里的先前的指令的算術(shù)運算完成時,把操作數(shù)從PI/O14取到寄存器26。另外,在這時,置入指令寄存器12的指令被傳送到指令寄存器18,而把從程序存貯器13中讀出的下一個指令置入指令寄存器12。在對置入指令寄存器18的指令執(zhí)行算術(shù)運算的同時,如果下一個指令是直接尋址方式的指令的話,就把由置入指令寄存器12里的下一個指令的ADDR部分確定的地址送到PI/O14。也就是指定出PI/O14里的地址,從而準備一旦把這下一個指令傳送到指令寄存器18后就進行算術(shù)運算。如上所述,把能夠執(zhí)行直接尋址的指令的處理與其它的區(qū)分開來,PI/O14被直接地尋址,而且是以流水線的方式實現(xiàn)的。因此,與省略指令寄存器18的情況相比,CPU1的處理時間進一步縮短了。
現(xiàn)在,讓我們假設(shè)程序計數(shù)器4從存貯器13的第K個地址上讀出一個指令I(lǐng)K。當計算完成信號104發(fā)出時,指令寄存器12就把讀出指令I(lǐng)K鎖定了。在指令I(lǐng)K是直接尋址方式的情況下,指令I(lǐng)K的ADDR部分作為PI/O地址101被送到PI/O14,從那里讀出一個操作數(shù)。更詳細地說,由于指令I(lǐng)K是直接尋址方式的指令,指令寄存器12的POF部分取“1”電平,因此開關(guān)27被置向27a一邊。于是通過開關(guān)27把指令寄存器12的ADDR部分送到PI/O14,去讀出操作數(shù)。當下一個計算完成信號104發(fā)出時,寄存器26把從PI/O14里讀出的操作數(shù)鎖存。在上述操作的同時,把置入到指令寄存器12的指令I(lǐng)K傳送到指令寄存器18。
把指令寄存器18的OP部分和POF部分送到控制電路3,該控制電路對上述部分進行譯碼并送出一個算術(shù)運算命令103到ALU9。根據(jù)命令103,ALU9在寄存器26的內(nèi)容和累加器11的內(nèi)容之間進行預(yù)定的算術(shù)運算。當下一個計算完成信號104發(fā)出時,累加器11把這個算術(shù)運算的結(jié)果鎖存。
在指令I(lǐng)K從指令寄存器12傳送到指令寄存器18的同時,把來自程序存貯器13的下一個指令I(lǐng)K+1置入指令寄存器12。
當指令I(lǐng)K是用于對PI/O14給出一個控制信息的指令時,通過ALU9和開關(guān)7把累加器11的內(nèi)容送到由PI/O地址101所確定的PI/O14里的位置上。
參見圖3b,指令I(lǐng)K-2、IK-1和IK的每一個都是直接尋址方式的指令,而且對于這些指令的算術(shù)運算是在對應(yīng)于一個時鐘脈沖的時間間隔里完成的,因為這種流水線處理是通過運用指令寄存器12和18來執(zhí)行的。換句話說,在一個流程中,這些指令是在對應(yīng)于一個時鐘脈沖的時間間隔里處理的。ALU9對于這些指令的每一個執(zhí)行一個單一的算術(shù)運算。
現(xiàn)在,讓我們假設(shè)置入指令寄存器12的指令I(lǐng)K+1是寄存器變址尋址方式的指令。那么,寄存器12的POF部分為“0”電平,而且開關(guān)27被置向27b一邊。當下一個計算完成信號104在基本時鐘信號100的基礎(chǔ)上產(chǎn)生時,把指令I(lǐng)K+1傳送到指令寄存器18,同時控制電路3把寄存器18的OP部分和POF部分(放入“0”電平)譯碼。根據(jù)譯碼結(jié)果,控制電路3給出一個地址計算命令105,把開關(guān)6和8分別置向6b和8b一邊,于是,為了執(zhí)行地址計算,ALU9把指令寄存器18的ADDR部分的內(nèi)容加到由寄存器18的IX部分所確定的寄存器5的內(nèi)容上去。在地址計算命令105的下降沿上,把這個相加的結(jié)果鎖存到地址寄存器10中。當基本時鐘信號100的下一個時鐘脈沖產(chǎn)生時,把由地址寄存器10確定的PI/O14中的地址里的操作數(shù)讀出來。對于地址計算命令105的下降沿和產(chǎn)生以上時鐘脈沖的時間之間的期間里,ALU9是不工作的。由于指令I(lǐng)K+1的譯碼結(jié)果,在地址計算期間和ALU9的休止期間,也就是對應(yīng)于兩個時鐘脈沖的時間間隔內(nèi),寄存器修正指令信號102保持在“0”電平上。此后,信號102取“1”電平。把寄存器修正指令信號102加到與非門(NAND)23上,該與非門(NAND)23給出輸出信號106。在信號106的下降沿上微分電路24產(chǎn)生微分信號107。通過或門25把信號107加到寄存器26上,于是把由PI/O14讀出的操作數(shù)鎖存到寄存器26中。當基本時鐘信號100的下一個時鐘脈沖產(chǎn)生時,執(zhí)行按照指令I(lǐng)K+1的OP部分的算術(shù)運算,于是完成了指令I(lǐng)K+1的處理。在處理指令I(lǐng)K+1的期間里(也就是,對應(yīng)于三個時鐘脈沖的期間)不產(chǎn)生計算完成信號104,因此,為了準備下一個處理,在上述期間,程序計數(shù)器4及操作碼寄存器12和18的停止工作。當指令I(lǐng)K+1是一個用于對PI/O14送出一個控制信息的指令時,通過ALU9和開關(guān)7,把累加器11的內(nèi)容送到由地址寄存器10的內(nèi)容確定的PI/O14里的地址上去。
如圖3b所示,在指令I(lǐng)K的算術(shù)運算完成和指令I(lǐng)K+1的算術(shù)運算完成之間要經(jīng)過相應(yīng)于三個時鐘脈沖的一段時間期間。而在能夠進行直接尋址的指令的情況下,就與其它情況完全不同了;通過直接尋址方式把操作數(shù)從PI/O14中讀出來,如前所述,能夠在相應(yīng)于一個時鐘脈沖的時間期間里完成該指令的處理。也就是說,與要求地址修正的指令相比,采取直接尋址方式的指令能夠在一個短得多的時間內(nèi)處理并且減輕了對ALU9的負擔。
圖4表示根據(jù)本發(fā)明的可編程序控制器的另一個實施方案的一部分。在此實施方案中,指令不具有POF部分,但是實際上把POF部分包含在指令的IX部分里了。因此,另外設(shè)置了對IX部分進行譯碼的譯碼器28,并把譯碼器28的輸出加到與非門(NAND)23。本實施方案具有一個優(yōu)點,就是在程序中所包含的每個指令里不要求POF部分。
圖5用框圖說明根據(jù)本發(fā)明的可編程序控制器的又一個實施方案。在該實施方案中,通過公共總線把CPU1連接到用來在其中存貯一個程序的存貯器13和PI/O14上。
參見圖5,將存貯器13和PI/O14連接到公共總線37和38上。公共總線37是地址總線,而公共總線38是數(shù)據(jù)總線。另外在CPU1中設(shè)置了開關(guān)29和30?;蛘甙殉绦蛴嫈?shù)器4的輸出或者是把開關(guān)27的輸出通過開關(guān)29送到地址總線37,并且,不是把指令寄存器12就是把寄存器26的每位和開關(guān)7通過開關(guān)30連接到數(shù)據(jù)總線38??刂齐娐?控制開關(guān)29和30的每組位置。存貯器13除了有一個基本的存貯器13A以外,還有一個地址符合電路31和開關(guān)32。PI/O14除了有一個基本的PI/O14A以外,還有一個地址符合電路33和開關(guān)34。地址符合電路31和33辨別來自地址總線37的地址究竟是在存貯器13A中的地址還是在PI/O14A中的地址。當?shù)刂贩想娐?1和33的任何一個接收到一個合適的地址時,存貯器13或PI/O14就被訪問,并且打開開關(guān)32和34中相對應(yīng)的一個開關(guān)。
圖6是用于解釋圖5所示實施方案的工作時間圖。參見圖6,通過總線轉(zhuǎn)換信號108把地址總線37和數(shù)據(jù)總線38交替地置于工作狀態(tài)。更進一步來說,因為指令和操作數(shù)是交替地讀出的,所以對程序計數(shù)器4,指令寄存器12和18,和寄存器26的每一個上的處理都是在對應(yīng)于基本時鐘信號100的兩個時鐘脈沖的時間間隔里實現(xiàn)的。圖6中所示的其它操作與圖3b中所示的完全相同。圖6僅只說明處理直接尋址方式指令(即指令的POF部分的值為“1”)的情況。然而,在處理寄存器變址尋址方式的指令時,除了每一個處理或算術(shù)運算是在對應(yīng)于基本時鐘信號的兩個時鐘脈沖的時間間隔里執(zhí)行的以外,本實施方案將以圖3b所示的用于處理要求地址修正的指令的情況的同樣方式工作。
與圖2所示的實施方案相比,雖然本實施方案的處理速度較低,但它仍然是慣用的可編程序控制器的1.5倍。另外,根據(jù)本實施方案,用于命令在CPU1與存貯器13和PI/O14之中的每一個之間進行信號傳送的控制信號里所包含的字的總數(shù)可以大大減少。
權(quán)利要求
1.一種根據(jù)存貯程序控制一個設(shè)備的可編程序控制器,其特征在于一個用于在其中存貯程序的存貯器,這程序包括以寄存器變址尋址方式作為操作數(shù)尋址方式的指令以及以直接尋址方式作為操作數(shù)尋址方式的指令,每個上述指令都是按照所指定的相應(yīng)地址從上述的存貯器里讀出的;裝備有一個控制電路和一個運算電路的處理單元,這個運算電路是用于確定在上述存貯器中的地址以便從中讀出一個指令,同時用于根據(jù)讀出的指令執(zhí)行算術(shù)運算去控制一個過程,上述的處理單元中還裝備有用于存貯從上述存貯器中讀出的指令的指令寄存器和一個裝置;這個裝置根據(jù)在上述的指令寄存器中存貯的指令的內(nèi)容來確定這個指令是一個采取寄存器變址尋址方式的指令或是一個采取直接尋址方式的指令;上述的處理單元是以這樣的方式提供地址的,即當存貯在上述指令寄存器里的指令是寄存器變址尋址方式時,通過上述的運算電路,把由上述指令的變址部分所指定的寄存器的內(nèi)容加到由上述指令的地址部分所指示的地址上去,并把這個相加的結(jié)果作為控制一個設(shè)備的地址信息給出;而當上述的指令是直接尋址方式時,則把由上述指令的地址部分所指示的地址作為控制上述設(shè)備的地址信息直接給出。上述的控制電路,根據(jù)從上述存貯器中讀出指令的操作碼部分的命令,執(zhí)行一些對上述處理單元必要的控制操作;在上述處理單元和設(shè)備之間設(shè)置了一個過程輸入/輸出單元,用于從上述的處理單元中接收上述設(shè)備的控制地址信息,以便把由處理單元輸出的控制信息送到由上述地址信息所指定的設(shè)備上,同時用于接收從上述設(shè)備輸入到上述處理單元的狀態(tài)信息。
2.根據(jù)權(quán)項1的可編程序控制器,其特征在于,上述處理單元的指令寄存器包括有用于存貯從上述存貯器中讀出的指令的第一指令寄存器,和與上述第一指令寄存器相連的用于接收從上述第一指令寄存器轉(zhuǎn)移來的上述指令的第二指令寄存器,并且當從存貯器中讀出并置入到第一個指令寄存器的指令是直接尋址方式時,則上述的處理單元把指令的地址部分指示的地址作為地址信息給出,然后把上述指令從第一指令寄存器傳送到第二指令寄存器,根據(jù)上述指令去執(zhí)行一個算術(shù)運算,同時從存貯器中讀出下一個指令并把它置入第一指令寄存器。
3.根據(jù)權(quán)項1的可編程序控制器,其特征在于,從存貯器中讀出的每個指令,在其中的一個部分上具有一個代碼(POF),用來指示這個指令是采取寄存器變址尋址方式還是直接尋址方式,同時上述的處理單元包含有一個根據(jù)上述的代碼來確定指令的尋址方式的裝置。
4.根據(jù)權(quán)項1的可編程序控制器,其特征在于,借助于從存貯器中讀出的每個指令的變址部分(IX),指出該指令究竟是采取寄存器變址尋址方式還是直接尋址方式;同時上述的處理單元包含有一個根據(jù)指令的變址部分來確定指令尋址方式的裝置。
5.根據(jù)權(quán)項1的可編程序控制器,其特征在于,在上述的處理單元與上述的存貯器和過程輸入/輸出單元中每一個之間的信息傳輸是通過公共總線完成的。
專利摘要
一個根據(jù)存貯程序去控制設(shè)備的可編程序控制器包括一個用于從程序存貯器中讀出指令再去處理的處理單元。在該處理單元中,確定從存貯器中讀出的指令是采取寄存器變址尋址方式的指令還是采取直接尋址方式的指令。當讀出的指令是采取直接尋址方式的指令時,通過指令的地址部分直接地尋址設(shè)備。然后,運用從編址的設(shè)備中讀出的狀態(tài)信息執(zhí)行算術(shù)運算,或者從處理單元中給出一個設(shè)備的控制信息到被編址的設(shè)備上。
文檔編號G06F9/38GK85101287SQ85101287
公開日1987年1月17日 申請日期1985年4月1日
發(fā)明者岡本正, 下山和彥, 山岡弘昌, 高倉滿郎 申請人:株式會社日立制作所導(dǎo)出引文BiBTeX, EndNote, RefMan