具有可編程虛擬端口的處理器,包括用于發送和接收數據的多個輸入/輸出(IO)引腳。該IO引腳被分組成為多個預定義端口,其中的每一個具有存儲于存儲器映射的存儲位置之一中的物理地址。該IO引腳可被重新映射到一個或多個虛擬端口上。
【技術實現步驟摘要】
處理器、對處理器編程的方法以及電子設備
本專利技術總體涉及處理器,更具體而言涉及具有可編程虛擬端口的處理器。
技術介紹
在當前的MCU(微控制單元)GPIO(通用輸入/輸出)和IOMUX(輸入/輸出復用器)設計中,多個IO引腳通常被定義成具有諸如8位、16位或32位寬度的多個端口,其可作為功能引腳(例如:sci、spi等)或者通用IO引腳,或者用于功能驗證和測試目的。由于不同的系統需求、引腳復用和封裝配置,幾乎在所有MCU芯片中這些可尋址的端口/引腳是分立的。分立的端口/引腳有很多缺點。例如,其需要另外努力來配置端口程序。此外,當端口/引腳分立時,數據傳輸性能會降低。如果端口地址是分立的,數據程序必須是位模式,當使用用于模式(pattern)正確性檢查的端口時,會降低應用性能并增加了驗證和生產測試時間。另外,如果端口總線寬度在芯片之間有改變,則測試軟件可能不是可重復使用的。因此,具有可編程非分立的8位(或16位或32位)寬度的虛擬端口是所期望的,其理想地具有和芯片總線同樣的寬度,其消除了上面提及的低引腳數量封裝中分立端口或非可用端口的缺點。
技術實現思路
本專利技術針對一種具有用于發送和接收數據的多個輸入/輸出(IO)引腳的處理器。該IO引腳被分組成多個預定義端口。處理器還包括具有多個存儲位置的存儲器映射,其中每個預定義端口具有存儲于存儲位置之一中的物理地址。處理器還包括具有存儲于存儲位置之一中的虛擬地址的至少一個虛擬端口。該至少一個虛擬端口包括從兩個或多個預定義端口中選擇的IO引腳,使得該至少一個虛擬端口允許同時訪問從兩個或多個預定義端口中所選擇的IO引腳。本專利技術還針對一種編程處理器的方法,該處理器具有用于發送和接收數據的多個輸入/輸出(IO)引腳,其中該引腳被分組成多個預定義端口,以及具有多個存儲位置的存儲器映射,其中每個預定義端口具有存儲于存儲位置之一中的物理地址。該方法包括:將IO引腳重新映射到一個或多個虛擬端口,其中一個或多個虛擬端口由從兩個或多個預定義端口中選擇的IO引腳構成,并且虛擬端口中的IO引腳與預定義端口中的IO引腳相對應。此外,每一個虛擬端口具有存儲于存儲位置之一中的虛擬地址,使得該一個或多個虛擬端口能夠同時訪問兩個或多個預定義端口中的所選IO引腳。本專利技術還針對一種電子設備,該電子設備包含圖形用戶界面(GUI)和通信地耦接至該GUI的處理器。GUI可以是使得用戶能夠向處理器提供指令且能夠顯示來自處理器的任意信息的任何合適的設備,例如顯示屏、鍵盤和鼠標、電容性的觸摸屏或類似物。處理器包含用于發送和接收數據的多個輸入/輸出(IO)引腳,其中該引腳被分組成多個預定義端口;具有多個存儲位置的存儲器映射,其中每個預定義端口具有存儲于存儲位置之一中的物理地址;以及具有存儲于存儲位置之一中的虛擬地址的至少一個虛擬端口,其中該至少一個虛擬端口包括從兩個或多個預定義端口中選擇的IO引腳。因此,該至少一個虛擬端口使得能夠同時訪問從兩個或多個預定義端口中所選擇的IO引腳。本專利技術的具有可編程虛擬端口的處理器具有多個優點。特別是,本專利技術的處理器能夠將來自不同預定義端口的引腳分組到一個虛擬端口。虛擬端口分配是易于編程的,使得應用代碼是小尺寸、高效、易于使用且快速執行的。附圖說明當結合附圖閱讀時,將會更好地理解本專利技術較佳實施例的下述詳細說明。本專利技術以實例方式說明,但不受附圖所限制。圖1是具有多個輸入/輸出(IO)引腳的處理器俯視圖;圖2是顯示和本專利技術相關的部件的處理器的功能框圖;圖3是根據本專利技術一實施例的存儲器映射框圖;圖4是根據本專利技術一實施例的具有一個虛擬端口的處理器的原理框圖;圖5是根據本專利技術一實施例的具有兩個虛擬端口的處理器的原理框圖;以及圖6是根據本專利技術一實施例的具有連接到測試器的虛擬端口的處理器的原理框圖。具體實施方式下文結合附圖公開的詳細說明旨在作為本專利技術的當前較佳實施例的描述,而不被認為是代表本專利技術可實施的唯一形式。需理解的是:相同的或相等的功能可由不同實施例完成,所述實施例被認為包含在專利技術的精神和范圍內?,F在參照圖1,顯示了具有多個輸入/輸出(IO)引腳10的處理器1的俯視圖。如本領域所知,該多個IO引腳10用于發送和接收數據。多個IO引腳10的數量和放置可隨處理器1的不同配置以及不同封裝選擇而變化。例如對于32位的處理器,總線寬度可比用于16位版本處理器的要寬。類似地,某些封裝類型將具有比其他封裝類型更多的可用引腳,例如BGA封裝對比DIP。IO引腳10被分為三類:僅用于執行預先指定功能的引腳;與諸如定時器系統、外部中斷或鍵盤中斷的片上外圍設備共享的引腳,當不受其他模塊控制時被還原到GPIO;以及起GPIO作用的引腳。IO引腳10中的每一個具有存儲器映射(下面參照圖2和3描述)中的指定地址和指定位位置。為了執行效率,IO引腳10被分組成預定義端口(例如端口A和端口B),其中每個端口含有預定義數量的IO引腳10和存儲器映射中的指定地址。一般而言,每個端口具有一組地址,例如,一個用于數據讀取/寫入,一個用于控制信號,等等。參照圖2,示出了只顯示與本專利技術有關的那些部件的處理器1原理框圖。處理器1包括中央處理單元(CPU)20、位于CPU20內的存儲器映射(MM)30、總線接口40、解碼邏輯電路50、多路器或多路復用器60、IO引腳/端口控制器70以及IO引腳10。正如之前所提及,IO引腳10被分組成多個預定義端口,其中每個端口具有存儲于MM30中的唯一地址。在操作中,CPU20經由CPU總線向MM30發送請求。MM30接收該請求并將該請求傳送到規定目標,如圖2中所示。也就是說,經由總線接口40從MM30到解碼邏輯電路50。解碼邏輯電路50讀取數據并解碼或重排序數據,并向多路復用器60提供解碼的數據連同相關的控制信號?;诳刂菩盘?,多路復用器60確定解碼的數據是否要被提供到IO控制器70。IO控制器70包括一個或多個寄存器和邏輯電路,以控制IO狀態、I/O方向、上拉、使能/禁能,并輸出將被提供到一個或多個端口的值。圖3是MM30的框圖。MM30具有多個存儲位置,例如寄存器空間31、RAM32、EEPROM33、保留空間34-36以及程序空間37-38。正如本領域技術人員所理解的,MM30的配置可依賴于用戶需求而變化。圖4是處理器1的解碼邏輯電路50、多路復用器60和IO引腳/端口控制器70的更詳細原理圖。此實施例中,多個IO引腳10可被映射到三個端口:真實端口PA和PB以及虛擬端口PX。這三個端口PA、PB和PX中的每一個具有存儲于CPU20的MM30中的唯一端口地址。虛擬端口PX包含IO引腳10中的屬于端口PA和PB的全部或部分引腳。指定到端口PA和PB的IO引腳10被映射到MM30中。類似地,指定到虛擬端口PX的IO引腳10被映射到MM30中,使得每一個IO引腳10具有MM30中的指定地址和指定位位置。在操作中,當CPU20發送想要針對虛擬端口PX的總線請求時,CPU20訪問MM30以確定其是否是有效訪問,或者生成最終地址,然后將請求傳送到相關的接口總線上。然后經由接口總線(地址、寫數據(wdata)、讀數據(rdata))將虛擬端口PX地址請求發送到解碼邏輯電路50。解碼邏輯電路50解碼虛擬本文檔來自技高網...

【技術保護點】
一種處理器,包括:用于發送和接收數據的多個輸入/輸出(IO)引腳,其中所述引腳被分組為多個預定義端口;具有多個存儲位置的存儲器映射,其中所述預定義端口中的每個預定義端口具有存儲于所述存儲位置之一中的物理地址;以及具有存儲于所述存儲位置之一中的虛擬地址的至少一個虛擬端口,其中所述至少一個虛擬端口包括從兩個或更多個預定義端口中選擇的IO引腳,且其中所述至少一個虛擬端口允許同時訪問從兩個或更多個預定義端口中所選擇的IO引腳。
【技術特征摘要】
1.一種處理器,包括:用于發送和接收數據的多個輸入/輸出(IO)引腳,其中所述引腳被分組為多個預定義端口;具有多個存儲位置的存儲器映射,其中所述預定義端口中的每個預定義端口具有存儲于所述存儲位置之一中的物理地址;以及具有存儲于所述存儲位置之一中的虛擬地址的至少一個虛擬端口,其中所述至少一個虛擬端口包括從兩個或更多個預定義端口中選擇的IO引腳,且其中所述至少一個虛擬端口允許同時訪問從兩個或更多個預定義端口中所選擇的IO引腳。2.如權利要求1的處理器,其中所述至少一個虛擬端口包括通用IO(GPIO)引腳。3.如權利要求1的處理器,其中所述至少一個虛擬端口具有不同數量的IO引腳。4.如權利要求1的處理器,其中所述至少一個虛擬端口具有數量小于所述處理器的總線寬度的IO引腳。5.一種對處理器編程的方法,其中所述處理器包括:用于發送和接收數據的多個輸入/輸出(IO)引腳,其中所述引腳被分組為多個預定義端口;以及具有多個存儲位置的存儲器映射,其中所述預定義端口中的每個預定義端口具有存儲于所述存儲位置之一中的物理地址;并且所述方法包括:將所述多個IO引腳重新映射到一個或更多個虛擬端口,其中所述一個或更多個虛擬端口中的任...
【專利技術屬性】
技術研發人員:聶式祥,陳志軍,程志宏,
申請(專利權)人:飛思卡爾半導體公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。