專利名稱:適應(yīng)性強(qiáng)的通用輸入/輸出系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及處理裝置,特別涉及通用輸入/輸出子系統(tǒng)。
可以包括微處理單元(MPU)、數(shù)字信號(hào)處理器(DPS)和其它裝置的通用處理裝置,允許在許多不同的應(yīng)用中使用單個(gè)裝置。按所要求的應(yīng)用通過(guò)編程定制處理裝置。可以使用單個(gè)處理裝置分別地或同時(shí)地執(zhí)行多個(gè)程序。在處理裝置的操作期間可以動(dòng)態(tài)地變化所執(zhí)行的應(yīng)用的次序。
許多處理裝置包括通用輸入/輸出(I/O)引腳,編程員可以使用這些引腳把處理裝置連接到其它裝置??梢宰鳛樘厥鈶?yīng)用的需要而使用這些I/O引腳。例如,在蜂窩電話中使用的處理裝置可以指定第一組引腳連接到調(diào)制和解調(diào)電路并指定第二組引腳連接到LCD屏幕控制器。在另外的應(yīng)用中,這些相同的引腳可以用于極其不同的用途。
在現(xiàn)有技術(shù)中,已經(jīng)把通用I/O引腳耦合到I/O寄存器,所述寄存器在寄存器的相應(yīng)位位置上存儲(chǔ)與每個(gè)引腳相關(guān)聯(lián)的值。對(duì)于讀出特定功能的引腳信號(hào),處理器讀出寄存器的值,而處理裝置對(duì)于與該功能不相關(guān)聯(lián)的位進(jìn)行屏蔽。對(duì)于把信號(hào)發(fā)送到特定功能的引腳,為了防止與該功能不相關(guān)聯(lián)的位的變化,處理器必需執(zhí)行讀-修改-寫操作。處理器讀出與通用I/O引腳相關(guān)聯(lián)的輸出緩沖器的值,僅修改已取得的與所述功能相關(guān)聯(lián)的這些位,并把經(jīng)修改的值再-寫入輸出緩沖器。提供通用I/O引腳的方案可以使用大量的處理時(shí)間和功率,并要求冗長(zhǎng)的和細(xì)心的編程以正確地操作I/O引腳。
其它重要的的考慮包括通用I/O引腳在多任務(wù)環(huán)境中的使用,在所述多任務(wù)環(huán)境中,多個(gè)獨(dú)立的任務(wù)訪問(wèn)I/O寄存器。既然是這樣,讀-修改-寫操作必須是原子的(atomic),即,必須在另一個(gè)操作開(kāi)始之前完成整個(gè)操作。否則,會(huì)發(fā)生下列情況(1)為了把數(shù)據(jù)寫入通用I/O引腳的引腳0-3,第一任務(wù)執(zhí)行讀-修改-寫;(2)在讀之后但是在寫之前,第二任務(wù)中斷第一任務(wù),并執(zhí)行對(duì)通用I/O引腳的引腳4-6的讀-修改-寫;以及(3)在完成第二任務(wù)的讀-修改-寫之后,第一任務(wù)再得到控制并完成它的讀-修改-寫。既然是這樣,第一任務(wù)的讀-修改-寫操作將重寫驅(qū)動(dòng)引腳4-6的數(shù)據(jù)。為了防止這種情況發(fā)生,在讀-修改-寫期間必須對(duì)處理核心禁止所有的中斷,對(duì)處理核心禁止所有的中斷會(huì)在裝置的操作中產(chǎn)生不需要的等待時(shí)間。
相應(yīng)地,已經(jīng)產(chǎn)生對(duì)于一種可以容易地編程和不妨礙處理器性能的處理裝置的一般輸入/輸出引腳的需求。
在本發(fā)明中,處理裝置包括多個(gè)屏蔽寄存器,每個(gè)屏蔽寄存器具有多個(gè)位。多個(gè)輸入/輸出引腳相應(yīng)于每個(gè)屏蔽寄存器的相應(yīng)的位。把一個(gè)或多個(gè)數(shù)據(jù)寄存器耦合到輸入/輸出引腳,每個(gè)數(shù)據(jù)寄存器具有相應(yīng)于每個(gè)屏蔽寄存器的相應(yīng)位的多個(gè)位。僅在所選擇的一個(gè)所述屏蔽寄存器確定的位置處,邏輯電路才訪問(wèn)數(shù)據(jù)寄存器。
本發(fā)明具有比現(xiàn)有技術(shù)明顯的優(yōu)點(diǎn)。屏蔽寄存器和邏輯允許處理核心用簡(jiǎn)單的讀或?qū)懨顚?duì)與通用I/O引腳相關(guān)聯(lián)的數(shù)據(jù)寄存器讀和寫信息,而不包括在執(zhí)行讀-修改-寫操作中。此外,本發(fā)明消除了由于中斷讀-修改-寫而產(chǎn)生差錯(cuò)的可能性。還有,對(duì)引腳讀和寫數(shù)據(jù)的編程比現(xiàn)有技術(shù)大大地簡(jiǎn)化而且較不容易產(chǎn)生差錯(cuò)。
為了更完整地理解本發(fā)明和本發(fā)明的優(yōu)點(diǎn),下面,參照附圖進(jìn)行下述說(shuō)明。
圖1表示結(jié)合通用輸入/輸出電路的處理裝置的方框圖;圖2表示圖1的處理裝置的存儲(chǔ)映象示例;圖3a表示從物理觀點(diǎn)來(lái)說(shuō)明通用輸入/輸出電路的方框圖;圖3b表示從邏輯觀點(diǎn)來(lái)說(shuō)明通用輸入/輸出電路的方框圖;圖4表示描述通用輸入/輸出電路的操作的流程圖;圖5a到5d分別表示屏蔽寄存器、數(shù)據(jù)輸入寄存器、數(shù)據(jù)輸出寄存器和輸出使能寄存器的詳圖。
參照?qǐng)D1-5,可以較佳地理解本發(fā)明,在各附圖中,用相同的標(biāo)號(hào)表示相同的元件。
圖1示出了處理裝置10的方框圖,所述處理裝置使用本發(fā)明的適應(yīng)性強(qiáng)的通用輸入/輸出結(jié)構(gòu)。應(yīng)注意,為了示意的目的,處理裝置10的方框圖是DSP的特定的實(shí)施,而且本發(fā)明可以與圖1所示的處理器結(jié)構(gòu)有顯著不同的處理器結(jié)構(gòu)一起使用??梢栽O(shè)想在任何提供通用引腳的處理裝置的設(shè)計(jì)中可以使用本發(fā)明,包括,但是不限于,微處理器、數(shù)字信號(hào)處理器、混合的模/數(shù)信號(hào)處理器和協(xié)處理器。
在圖1的例子中,處理裝置10包括耦合到1級(jí)(L1I)指令高速緩沖存儲(chǔ)器14和1級(jí)(L1D)數(shù)據(jù)高速緩沖存儲(chǔ)器16的CPU(處理)核心12。把L1I高速緩沖存儲(chǔ)器14和L1D高速緩沖存儲(chǔ)器16耦合到2級(jí)(L2)高速緩沖存儲(chǔ)器18。把L2高速緩沖存儲(chǔ)器18耦合到傳遞控制器20、配置總線22和傳遞請(qǐng)求總線24。還把傳遞控制器20耦合到EMIF(外部存儲(chǔ)器接口)26和緩沖管理器28。把配置總線22耦合到EMIF26、監(jiān)視定時(shí)器30、XDMA(外部直接存儲(chǔ)器存取)控制器31、定時(shí)器0 32、定時(shí)器1 34、中斷選擇器35、GPIO(通用輸入/輸出)電路36、URAT(通用異步接收/發(fā)送)38、McBSP(多信道緩沖串行端口)40以及緩沖管理器28。緩沖管理器28還耦合到UART38、McBPS40、HDLC(高級(jí)數(shù)據(jù)鏈)控制器42以及MAC(媒體訪問(wèn)控制器)44以及MDIO(串行MII管理直接輸入/輸出)控制器46。把傳遞請(qǐng)求總線24耦合到L2高速緩沖存儲(chǔ)器18、傳遞控制器20、緩沖管理器28和XDMA控制器31。
在操作中,可以把裝置分開(kāi)成一組數(shù)據(jù)輸入/輸出單元(MAC44、McBPS40、UART38、HDLC控制器42、GPIO36、MDIO46)、數(shù)據(jù)運(yùn)算和處理單元(CPU核心12)、數(shù)據(jù)位移和存儲(chǔ)單元(L1和L2高速緩沖存儲(chǔ)器14-18、傳遞控制器20、緩沖管理器28、EMIF26)以及支持單元(XDMA控制器31、中斷選擇器35、定時(shí)器032、定時(shí)器134、監(jiān)視定時(shí)器30)。眾所周知,傳遞控制器20和XDMA控制器31的組合為增強(qiáng)DMA(EDMA)。
在這里所描述的實(shí)施例中,所有裝置元件都共享通過(guò)32位地址總線訪問(wèn)的存儲(chǔ)器空間。把該空間的上半部,地址區(qū)域0x80000000-0xFFFFFFFF,分成4個(gè)直到128兆位的分立的空間,每個(gè)空間通過(guò)EMIF26訪問(wèn)的外部存儲(chǔ)器裝置而執(zhí)行。內(nèi)部安排下半部分,地址區(qū)域0x00000000-0x7FFFFFFF。地址區(qū)域還分開(kāi)成許多空間。把裝置接口和支持元件內(nèi)存映象到這些內(nèi)部地址空間。隨著在傳遞請(qǐng)求總線24上接收到的來(lái)自緩沖管理器28、L2高速緩沖存儲(chǔ)器18和/或XDMA控制器31的請(qǐng)求,通過(guò)傳遞控制器21進(jìn)行在整個(gè)存儲(chǔ)器空間上的任何位置之間的數(shù)據(jù)移位。此外,由CPU核心12經(jīng)由配置總線22訪問(wèn)超出地址區(qū)域0x01800000-0x01FFFFFF的存儲(chǔ)器區(qū)域。該配置總線空間主要用于訪問(wèn)系統(tǒng)控制和配置所使用的寄存器。通過(guò)兩級(jí)高速緩沖存儲(chǔ)器裝置對(duì)CPU核心12的數(shù)據(jù)和指令的需要起作用,所述兩級(jí)高速緩沖存儲(chǔ)器包括分立的第一級(jí)指令和數(shù)據(jù)高速緩沖存儲(chǔ)器(分別為L(zhǎng)1指令高速緩沖存儲(chǔ)器14和L1數(shù)據(jù)高速緩沖存儲(chǔ)器16)以及一致的第二級(jí)高速緩沖存儲(chǔ)器(L2高速緩沖存儲(chǔ)器)18。
處理裝置10提供許多外部接口,包括能夠工作于10或100Mbps的以太網(wǎng)MAC接口、可以設(shè)置到高達(dá)167k的所有公共波特率(baud rates)的通用異步接收/發(fā)送(UART)接口38、多信道緩沖串行端口(McBPS)接口40、高級(jí)數(shù)據(jù)鏈控制(HDLC)接口42、串行MII管理(MDIO)接口46、用于連接包括外部處理器核心中斷源的其它外部裝置的16個(gè)通用輸入/輸出(GPIO)引腳、以及兩個(gè)內(nèi)部定時(shí)器32和34的控制信號(hào)。
內(nèi)部資源包括可以用于多種計(jì)數(shù)和定時(shí)用途的兩個(gè)32位定時(shí)器32和34;中斷選擇器35,該中斷選擇器處理引起CPU中斷的所有的裝置事件;XDMA控制器31,由輸入事件激勵(lì)該XDMA控制器,以相似于CPU對(duì)中斷事件反應(yīng)的方式,但是不是轉(zhuǎn)移到中斷服務(wù)程序,而是通過(guò)指派一個(gè)所選擇的預(yù)定義數(shù)據(jù)傳遞請(qǐng)求到傳遞控制器20而使XDMA控制器起反應(yīng)。此外,緩沖管理器28構(gòu)成主要的內(nèi)部資源。該單元是一種手段,MAC44、HDLC控制器42、McBSP40以及UART38通過(guò)這種手段把分組的數(shù)據(jù)傳遞入和出裝置存儲(chǔ)器空間。它提供專用的硬件,用于在它本身和它服務(wù)的外圍設(shè)備之間傳遞數(shù)據(jù),把數(shù)據(jù)建立到分組清單(已知為數(shù)據(jù)隊(duì)列),以及用于使用傳遞控制器20把數(shù)據(jù)隊(duì)列傳遞到/自CPU核心12可以訪問(wèn)的外部存儲(chǔ)器并按要求通過(guò)應(yīng)用程序運(yùn)算數(shù)據(jù)。
如下較詳細(xì)的描述,提供許多(在示例實(shí)施例中為16個(gè))通用輸入/輸出(I/O)引腳??梢元?dú)立地設(shè)置每個(gè)GPIO引腳作為輸入或輸出。通過(guò)對(duì)一組存儲(chǔ)映象寄存器讀和寫來(lái)驅(qū)動(dòng)和監(jiān)視GPIO引腳。在示例實(shí)施例中,使GPIO寄存器存儲(chǔ)映象到配置總線22的地址空間。
圖2示出了用于處理裝置10的存儲(chǔ)映象示例。在示例實(shí)施例中,處理裝置使用單個(gè)統(tǒng)一的存儲(chǔ)映象,然而,這對(duì)實(shí)現(xiàn)本發(fā)明不是必須的。在所示的實(shí)施例中,配置總線地址空間具有從0x01800000(所有地址都是以16進(jìn)制)到0x01FFFFFF的地址空間。然而,可以把GPIO地址空間存儲(chǔ)映象到處理裝置10的地址空間的任何方便的部分。
圖3a示出了GPIO電路的基本物理方框圖。邏輯50接收來(lái)自0x01B81000到0x001B81FFF區(qū)域到GPIO36的讀和寫請(qǐng)求(在圖2的示例實(shí)施例中)。一般在圖3a中用BBBBBMMR來(lái)表示該地址,其中,BBBBB是“基本”字段,MM是“屏蔽”字段,而R是“寄存器”字段。因此,邏輯50接收對(duì)于基本地址BBBBB=01B81的地址處的讀和寫請(qǐng)求。對(duì)于提供16個(gè)通用I/O引腳52的配置,GPIO硬件36包括16-位數(shù)據(jù)輸入寄存器54(每個(gè)引腳一位)、16-位數(shù)據(jù)輸出寄存器56、16-位數(shù)據(jù)使能寄存器58以及,在示例實(shí)施例中,32個(gè)16位屏蔽寄存器60(分別以屏蔽寄存器600-601F表示)。把數(shù)據(jù)輸入寄存器54的16位的每一位耦合到相應(yīng)的引腳52。把輸出使能寄存器58的每一位耦合到相應(yīng)的三態(tài)緩沖器62的控制門。把數(shù)據(jù)輸出寄存器56的每一位耦合到相應(yīng)的緩沖器62的輸入。把三態(tài)緩沖器62的輸出耦合到引腳52。對(duì)于屏蔽寄存器60、數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56和輸出使能寄存器58,在寄存器位和引腳52之間存在直接的通信。在GPIO引腳52的最后取樣點(diǎn)處數(shù)據(jù)輸入寄存器54存儲(chǔ)GPIO引腳52的狀態(tài)。數(shù)據(jù)輸出寄存器56確定待驅(qū)動(dòng)到這些引腳52的數(shù)據(jù),在輸出使能寄存器58中把所述這些引腳設(shè)置成輸出使能寄存器位。數(shù)據(jù)輸出寄存器56控制三態(tài)緩沖器,因此確定把哪些數(shù)據(jù)從數(shù)據(jù)輸出寄存器56輸出到引腳52。
為了方便起見(jiàn),用32位寄存器來(lái)實(shí)施這里所描述的每個(gè)寄存器,而僅使用較低的16位。通過(guò)使用寄存器中的另外的位可以容易地標(biāo)定這里所示的實(shí)施以提供另外的GPIO引腳。
圖3b示出了GPIO電路36的邏輯圖。使每個(gè)寄存器54、56、58和60存儲(chǔ)映象到GPIO地址空間。同時(shí),在較佳實(shí)施例中,把屏蔽寄存器60唯一地存儲(chǔ)映象到地址空間(即,通過(guò)單個(gè)地址訪問(wèn)每個(gè)屏蔽寄存器60),把數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56和輸出使能寄存器58存儲(chǔ)映象到地址空間32次(對(duì)每個(gè)屏蔽寄存器一次)。因此,通過(guò)訪問(wèn)多個(gè)地址的任何一個(gè)可以讀出數(shù)據(jù)輸入寄存器54,通過(guò)訪問(wèn)多個(gè)地址的任何一個(gè)可以寫入數(shù)據(jù)輸出寄存器56,以及通過(guò)訪問(wèn)多個(gè)地址的任何一個(gè)可以讀出或?qū)懭胼敵鍪鼓芗拇嫫?8。在示例實(shí)施例示出使用32個(gè)屏蔽寄存器60的實(shí)施時(shí),可以使用任何數(shù)目的屏蔽寄存器,而數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56和輸出使能寄存器58的邏輯存儲(chǔ)映象數(shù)目等于屏蔽寄存器的數(shù)目。
在示例實(shí)施例中,地址(MM)的屏蔽字段唯一地確定一組與給定屏蔽相關(guān)聯(lián)的(邏輯)寄存器。因此,對(duì)于MM=00,R=0相應(yīng)于屏蔽寄存器0 600,R=4相應(yīng)于邏輯數(shù)據(jù)輸入寄存器0,R=8相應(yīng)于邏輯數(shù)據(jù)輸出寄存器0以及R=C相應(yīng)于邏輯輸出使能寄存器0。相似地,對(duì)于MM=1F,R=0相應(yīng)于屏蔽寄存器1F 601F,R=4相應(yīng)于邏輯數(shù)據(jù)輸入寄存器1F,R=8相應(yīng)于邏輯數(shù)據(jù)輸出寄存器1F以及R=C相應(yīng)于邏輯輸出使能寄存器1F。例如,如在圖3a中所示,邏輯數(shù)據(jù)輸入寄存器0和邏輯數(shù)據(jù)輸入寄存器1F是相同的物理數(shù)據(jù)輸入寄存器54,然而,通過(guò)識(shí)別相關(guān)聯(lián)的屏蔽寄存器60,用于訪問(wèn)多個(gè)存儲(chǔ)映象寄存器54、56和58的每一個(gè)寄存器的地址確定如何訪問(wèn)寄存器。
在操作中,當(dāng)訪問(wèn)多個(gè)存儲(chǔ)映象寄存器時(shí),僅使對(duì)應(yīng)于受到操作影響的相關(guān)聯(lián)的屏蔽寄存器60的位的哪些位使能。每個(gè)屏蔽寄存器60和它的相關(guān)聯(lián)的(邏輯)數(shù)據(jù)輸入54、數(shù)據(jù)輸出56和輸出使能58寄存器構(gòu)成GPIO屏蔽寄存器組。當(dāng)訪問(wèn)特定的數(shù)據(jù)輸入、數(shù)據(jù)輸出或輸出使能寄存器位置時(shí),在所訪問(wèn)位置的相同組中的屏蔽寄存器60確定在受訪問(wèn)影響的相應(yīng)的硬件寄存器內(nèi)的位。當(dāng)所訪問(wèn)的寄存器是數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56或輸出使能寄存器58時(shí),根據(jù)相應(yīng)于用于訪問(wèn)寄存器的地址的屏蔽寄存器60的狀態(tài),邏輯50讀出訪問(wèn)寄存器。訪問(wèn)數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56或輸出使能寄存器58,致使僅影響適當(dāng)?shù)奈?對(duì)應(yīng)于在相關(guān)聯(lián)的屏蔽寄存器60中設(shè)置的位)。對(duì)于通過(guò)處理核心112的讀出操作,邏輯50僅對(duì)哪些位恢復(fù)正確的硬件寄存器值,所述哪些位對(duì)應(yīng)于所設(shè)置的屏蔽寄存器位;其它位將恢復(fù)到“0”。對(duì)于通過(guò)處理核心12的寫入操作,邏輯50直接寫入在寄存器中對(duì)應(yīng)于設(shè)置屏蔽位的哪些位;寫入操作不影響在寄存器中不對(duì)應(yīng)于設(shè)置屏蔽位的位。
訪問(wèn)寄存器的裝置允許配置GPIO接口,以致多個(gè)軟件程序可以彼此獨(dú)立地訪問(wèn)不同的GPIO引腳52。使用一個(gè)或多個(gè)GPIO引腳52的任務(wù)僅需要設(shè)置一個(gè)確定使用哪個(gè)引腳的屏蔽寄存器;此后,它可以使用對(duì)適當(dāng)?shù)刂?根據(jù)所訪問(wèn)的數(shù)據(jù)寄存器和相關(guān)聯(lián)的屏蔽寄存器)的簡(jiǎn)單的讀和寫命令訪問(wèn)引腳。因此大大地簡(jiǎn)化了編程。此外,由于邏輯50經(jīng)由硬件寫入數(shù)據(jù)寄存器而不是CPU經(jīng)由軟件寫入數(shù)據(jù)寄存器,即使邏輯50正在執(zhí)行寫入也可以中斷核心12而不會(huì)造成從不同的任務(wù)重復(fù)寫入數(shù)據(jù)的危險(xiǎn)。
圖4表示在圖3a和3b中示出的GPIO電路的操作流程圖。在方框80中,邏輯50接收到連同讀或?qū)懻?qǐng)求的地址。只有具有基本地址BBBBB=01B81的那些地址才針對(duì)GPIO電路36(對(duì)于示例實(shí)施例)。如果屏蔽字段在0和1F之間(即,0≤MM≤1F),則在判定方框82中,請(qǐng)求針對(duì)在屏蔽寄存器組中的一個(gè)寄存器。一般在方框84中處理對(duì)在該屏蔽字段區(qū)域之外的地址的訪問(wèn)。如果對(duì)在屏蔽組中的數(shù)據(jù)寄存器進(jìn)行訪問(wèn),則在方框86中確定寄存器。一般處理對(duì)于屏蔽寄存器60的訪問(wèn);在方框84中,從屏蔽寄存器讀出數(shù)據(jù)或把數(shù)據(jù)寫入屏蔽寄存器。
在方框88中,如果所訪問(wèn)的寄存器是數(shù)據(jù)輸入寄存器54(R=4),則只有設(shè)置相關(guān)聯(lián)的屏蔽寄存器位的那些位恢復(fù)正確的硬件寄存器值,其它位將恢復(fù)0。數(shù)據(jù)輸入寄存器54是只讀的。在方框90中,如果所訪問(wèn)的寄存器是數(shù)據(jù)輸出寄存器56(R=8),并且訪問(wèn)是讀出,則只恢復(fù)具有相應(yīng)的屏蔽寄存器位設(shè)置的那些位的數(shù)據(jù),其它位將恢復(fù)到“0”。對(duì)于數(shù)據(jù)輸出寄存器56的寫入操作,只對(duì)設(shè)置相應(yīng)屏蔽位的硬件寄存器位寫入數(shù)據(jù),將保持不影響數(shù)據(jù)輸出寄存器56的其它位。在方框92中,如果所訪問(wèn)的數(shù)據(jù)寄存器是輸出使能寄存器58(R=C),則只從該寄存器中具有相應(yīng)屏蔽位設(shè)置的那些位讀出數(shù)據(jù),其它位將恢復(fù)“0”。對(duì)應(yīng)輸出使能寄存器58的寫入操作,只把數(shù)據(jù)寫入設(shè)置相應(yīng)屏蔽位的硬件寄存器位,將保持不影響其它位。
圖5a到5d示出了屏蔽寄存器60、數(shù)據(jù)輸入寄存器54、數(shù)據(jù)輸出寄存器56以及輸出使能寄存器58的詳細(xì)組成。在表Ⅰ到表Ⅳ中分別表示每個(gè)寄存器的操作。
表Ⅰ屏蔽寄存器定義
表Ⅱ數(shù)據(jù)輸入寄存器定義
表Ⅲ數(shù)據(jù)輸出寄存器定義
表Ⅳ數(shù)據(jù)輸出寄存器定義
在操作中,處理器10執(zhí)行的每個(gè)軟件程序可以設(shè)置一個(gè)或多個(gè)屏蔽寄存器60,以確定通過(guò)程序監(jiān)視的或驅(qū)動(dòng)的引腳52。例如,如果程序訪問(wèn)作為某個(gè)裝置的輸入/輸出端口的引腳3-0,則可以把一個(gè)“0…01111”的值寫入屏蔽0。使用通過(guò)地址0x1B81004訪問(wèn)的數(shù)據(jù)輸入寄存器54以及通過(guò)地址0x1B8100C訪問(wèn)的輸出使能寄存器可以進(jìn)行對(duì)該端口的所有的訪問(wèn)。在設(shè)置屏蔽寄存器600之后,使用其它通用引腳不必考慮軟件程序,因?yàn)閷懭肫帘嗡x的引腳不影響使用屏蔽寄存器所禁止的引腳。
本發(fā)明具有比現(xiàn)有技術(shù)顯著的優(yōu)點(diǎn)。因此,處理核心的簡(jiǎn)單寫入命令啟動(dòng)邏輯50的硬件寫入所訪問(wèn)的寄存器的指定位,在由寫地址定義的相關(guān)聯(lián)的屏蔽寄存器60中規(guī)定所述指定位。對(duì)于核心12,邏輯50的寫入是透明的,從而簡(jiǎn)化了對(duì)任務(wù)的編碼,而且不會(huì)由于中斷而引起差錯(cuò)。
雖然已經(jīng)針對(duì)某個(gè)示例實(shí)施例進(jìn)行本發(fā)明的詳細(xì)描述,但是將對(duì)熟悉本技術(shù)領(lǐng)域的人員建議這些實(shí)施例和另外的實(shí)施例的各種修改。例如,這里所示出的地址、寄存器的大小、屏蔽寄存器(以及邏輯數(shù)據(jù)輸入、數(shù)據(jù)輸出和輸出使能寄存器)的數(shù)目、以及引腳的數(shù)目是為了說(shuō)明特定的實(shí)施例;熟悉本領(lǐng)域技術(shù)的人員會(huì)理解,可以容易地對(duì)這些因素作出改變。同樣,這里所示出的屏蔽裝置包括4個(gè)寄存器(屏蔽、數(shù)據(jù)輸入、數(shù)據(jù)輸出和使能);然而,當(dāng)必須提供所要求的功能時(shí),某些實(shí)施可以增加或減少在每個(gè)屏蔽裝置中的寄存器數(shù)目。本發(fā)明包括屬于權(quán)利要求范圍內(nèi)的任何修改或另外的實(shí)施例。
權(quán)利要求
1.一種處理裝置,其特征在于,包括多個(gè)屏蔽寄存器,每個(gè)屏蔽寄存器具有多個(gè)位;相應(yīng)于每個(gè)屏蔽寄存器的各個(gè)位的多個(gè)輸入/輸出引腳;耦合到所述輸入/輸出引腳的一個(gè)或多個(gè)數(shù)據(jù)寄存器,每個(gè)所述數(shù)據(jù)寄存器具有相應(yīng)于每個(gè)屏蔽寄存器的各個(gè)位的多個(gè)位;以及邏輯電路,所述邏輯電路用于僅在所選擇的一個(gè)所述屏蔽寄存器確定的位置處訪問(wèn)所述數(shù)據(jù)寄存器。
2.如權(quán)利要求1所述的處理裝置,其特征在于,所述一個(gè)或多個(gè)數(shù)據(jù)寄存器包括用于存儲(chǔ)相應(yīng)于施加到所述輸入/輸出引腳的信號(hào)值的數(shù)據(jù)輸入寄存器。
3.如權(quán)利要求1所述的處理裝置,其特征在于,所述一個(gè)或多個(gè)數(shù)據(jù)寄存器包括用于存儲(chǔ)施加到所述輸入/輸出引腳的值的數(shù)據(jù)輸出寄存器。
4.如權(quán)利要求3所述的處理裝置,其特征在于,所述一個(gè)或多個(gè)數(shù)據(jù)寄存器包括用于存儲(chǔ)相應(yīng)于施加到緩沖器的信號(hào)值的輸出使能寄存器,所述緩沖器耦合在所述數(shù)據(jù)輸出寄存器和所述輸入/輸出引腳之間。
5.如權(quán)利要求1所述的處理裝置,其特征在于,所述數(shù)據(jù)寄存器是存儲(chǔ)映象的。
6.如權(quán)利要求5所述的處理裝置,其特征在于,通過(guò)用于訪問(wèn)數(shù)據(jù)寄存器的地址確定所述選擇的屏蔽寄存器。
7.一種在處理裝置中控制一組輸入/輸出引腳的方法,所述處理裝置包括處理核心和一個(gè)或多個(gè)數(shù)據(jù)寄存器,所述數(shù)據(jù)寄存器具有耦合到各個(gè)引腳的多個(gè)位,其特征在于,所述方法包括下列步驟接收針對(duì)一個(gè)所述數(shù)據(jù)寄存器的來(lái)自邏輯電路中處理核心的訪問(wèn)請(qǐng)求;識(shí)別多個(gè)屏蔽寄存器中相關(guān)聯(lián)的一個(gè)屏蔽寄存器;僅在由所述相關(guān)聯(lián)的屏蔽寄存器的狀態(tài)確定的位的位置處訪問(wèn)所述一個(gè)數(shù)據(jù)寄存器。
8.如權(quán)利要求7所述的在處理裝置中控制一組輸入/輸出引腳的方法,其特征在于,所述接收步驟包括接收針對(duì)數(shù)據(jù)輸入寄存器的訪問(wèn)請(qǐng)求的步驟,所述數(shù)據(jù)輸入寄存器用于存儲(chǔ)相應(yīng)于施加到所述輸入/輸出引腳的信號(hào)值。
9.如權(quán)利要求7所述的在處理裝置中控制一組輸入/輸出引腳的方法,其特征在于,所述接收步驟包括接收針對(duì)數(shù)據(jù)輸出寄存器的訪問(wèn)請(qǐng)求的步驟,所述數(shù)據(jù)輸出寄存器用于存儲(chǔ)施加到所述輸入/輸出引腳的信號(hào)值。
10.如權(quán)利要求7所述的在處理裝置中控制一組輸入/輸出引腳的方法,其特征在于,所述接收步驟包括接收針對(duì)輸出使能寄存器的訪問(wèn)請(qǐng)求的步驟,所述輸出使能寄存器用于存儲(chǔ)相應(yīng)于施加到緩沖器的信號(hào)值,所述緩沖器耦合在所述數(shù)據(jù)輸出寄存器和所述輸入/輸出引腳之間。
11.如權(quán)利要求7所述的在處理裝置中控制一組輸入/輸出引腳的方法,其特征在于,所述數(shù)據(jù)寄存器是存儲(chǔ)映象的。
12.如權(quán)利要求11所述的在處理裝置中控制一組輸入/輸出引腳的方法,其特征在于,所述識(shí)別步驟包括根據(jù)用于訪問(wèn)數(shù)據(jù)寄存器的地址,識(shí)別相關(guān)聯(lián)的屏蔽寄存器的步驟。
13.一種處理裝置,其特征在于,包括一組輸入/輸出引腳;處理核心;一個(gè)或多個(gè)數(shù)據(jù)寄存器,所述數(shù)據(jù)寄存器具有耦合到各個(gè)引腳的多個(gè)位;多個(gè)屏蔽寄存器;用于接收針對(duì)一個(gè)所述數(shù)據(jù)寄存器的來(lái)自邏輯電路中處理核心的訪問(wèn)請(qǐng)求的邏輯電路;識(shí)別相關(guān)聯(lián)的一個(gè)屏蔽寄存器;僅在由所述相關(guān)聯(lián)的屏蔽寄存器的狀態(tài)確定的位的位置處訪問(wèn)所述一個(gè)數(shù)據(jù)寄存器。
14.如權(quán)利要求13所述的處理裝置,其特征在于,所述數(shù)據(jù)寄存器包括用于存儲(chǔ)相應(yīng)于施加到所述輸入/輸出引腳的信號(hào)值的數(shù)據(jù)輸入寄存器。
15.如權(quán)利要求13所述的處理裝置,其特征在于,所述數(shù)據(jù)寄存器包括用于存儲(chǔ)施加到所述輸入/輸出引腳的值的數(shù)據(jù)輸出寄存器。
16.如權(quán)利要求13所述的處理裝置,其特征在于,所述數(shù)據(jù)寄存器包括用于存儲(chǔ)相應(yīng)于施加到緩沖器的信號(hào)值的輸出使能寄存器,所述緩沖器耦合在所述數(shù)據(jù)輸出寄存器和所述輸入/輸出引腳之間。
17.如權(quán)利要求13所述的處理裝置,其特征在于,所述數(shù)據(jù)寄存器是存儲(chǔ)映象的。
18.如權(quán)利要求17所述的處理裝置,其特征在于,邏輯電路根據(jù)用于訪問(wèn)數(shù)據(jù)寄存器的地址,識(shí)別相關(guān)聯(lián)的屏蔽寄存器。
全文摘要
本發(fā)明揭示一種處理裝置(10),包括通用輸入/輸出引腳(52)。數(shù)據(jù)輸入寄存器(54)具有相應(yīng)于每個(gè)引腳(52)的用于存儲(chǔ)在引腳上的信號(hào)的值的定位。數(shù)據(jù)輸出寄存器(56)具有相應(yīng)于每個(gè)引腳(52)的用于驅(qū)動(dòng)在引腳(52)上的信號(hào)到所要求的值的位。輸出使能寄存器(58)控制耦合在輸出寄存器(56)和引腳(52)之間的輸出緩沖器(62)??梢苑謩e設(shè)置多個(gè)屏蔽寄存器(60)以確定一組與屏蔽相關(guān)聯(lián)的引腳。通過(guò)多個(gè)地址訪問(wèn)每個(gè)數(shù)據(jù)寄存器、數(shù)據(jù)輸入寄存器(56)、數(shù)據(jù)輸出寄存器(58)以及輸出使能寄存器(60),其中地址指定正被訪問(wèn)的數(shù)據(jù)寄存器和相關(guān)聯(lián)的屏蔽寄存器(60)兩者。邏輯(50)按照相關(guān)聯(lián)的屏蔽寄存器(60)的狀態(tài)而訪問(wèn)數(shù)據(jù)寄存器。
文檔編號(hào)G06F9/30GK1305133SQ0013520
公開(kāi)日2001年7月25日 申請(qǐng)日期2000年11月29日 優(yōu)先權(quán)日1999年11月29日
發(fā)明者A·S·班達(dá)爾, G·肖特, R·辛普森 申請(qǐng)人:德克薩斯儀器股份有限公司