欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有可編程虛擬端口的處理器的制作方法

文檔序號(hào):6440156閱讀:274來源:國知局
專利名稱:具有可編程虛擬端口的處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體涉及處理器,更具體而言涉及具有可編程虛擬端口的處理器。
背景技術(shù)
在當(dāng)前的MCU (微控制單元)GPIO (通用輸入/輸出)和IOMUX (輸入/輸出復(fù)用器)設(shè)計(jì)中,多個(gè)IO引腳通常被定義成具有諸如8位、16位或32位寬度的多個(gè)端口,其可作為功能引腳(例如:sc1、spi等)或者通用IO引腳,或者用于功能驗(yàn)證和測試目的。由于不同的系統(tǒng)需求、引腳復(fù)用和封裝配置,幾乎在所有MCU芯片中這些可尋址的端口 /引腳是分立的。分立的端口 /引腳有很多缺點(diǎn)。例如,其需要另外努力來配置端口程序。此外,當(dāng)端口 /引腳分立時(shí),數(shù)據(jù)傳輸性能會(huì)降低。如果端口地址是分立的,數(shù)據(jù)程序必須是位模式,當(dāng)使用用于模式(pattern)正確性檢查的端口時(shí),會(huì)降低應(yīng)用性能并增加了驗(yàn)證和生產(chǎn)測試時(shí)間。另外,如果端口總線寬度在芯片之間有改變,則測試軟件可能不是可重復(fù)使用的。因此,具有可編程非分立的8位(或16位或32位)寬度的虛擬端口是所期望的,其理想地具有和芯片總線同樣的寬度,其消除了上面提及的低引腳數(shù)量封裝中分立端口或非可用端口的缺點(diǎn)。

發(fā)明內(nèi)容
本發(fā)明針對(duì)一種具有用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳的處理器。該IO引腳被分組成多個(gè)預(yù)定義端口。處理器還包括具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中每個(gè)預(yù)定義端口具有存儲(chǔ)于存儲(chǔ)位置之一中的物理地址。處理器還包括具有存儲(chǔ)于存儲(chǔ)位置之一中的虛擬地址的至少一個(gè) 虛擬端口。該至少一個(gè)虛擬端口包括從兩個(gè)或多個(gè)預(yù)定義端口中選擇的IO引腳,使得該至少一個(gè)虛擬端口允許同時(shí)訪問從兩個(gè)或多個(gè)預(yù)定義端口中所選擇的IO引腳。本發(fā)明還針對(duì)一種編程處理器的方法,該處理器具有用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳,其中該引腳被分組成多個(gè)預(yù)定義端口,以及具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中每個(gè)預(yù)定義端口具有存儲(chǔ)于存儲(chǔ)位置之一中的物理地址。該方法包括:將IO引腳重新映射到一個(gè)或多個(gè)虛擬端口,其中一個(gè)或多個(gè)虛擬端口由從兩個(gè)或多個(gè)預(yù)定義端口中選擇的IO引腳構(gòu)成,并且虛擬端口中的IO引腳與預(yù)定義端口中的IO引腳相對(duì)應(yīng)。此外,每一個(gè)虛擬端口具有存儲(chǔ)于存儲(chǔ)位置之一中的虛擬池址,使得該一個(gè)或多個(gè)虛擬端口能夠同時(shí)訪問兩個(gè)或多個(gè)預(yù)定義端口中的所選IO引腳。本發(fā)明還針對(duì)一種電子設(shè)備,該電子設(shè)備包含圖形用戶界面(⑶I)和通信地耦接至該⑶I的處理器。⑶I可以是使得用戶能夠向處理器提供指令且能夠顯示來自處理器的任意信息的任何合適的設(shè)備,例如顯示屏、鍵盤和鼠標(biāo)、電容性的觸摸屏或類似物。處理器包含用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳,其中該引腳被分組成多個(gè)預(yù)定義端口 ;具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中每個(gè)預(yù)定義端口具有存儲(chǔ)于存儲(chǔ)位置之一中的物理地址;以及具有存儲(chǔ)于存儲(chǔ)位置之一中的虛擬地址的至少一個(gè)虛擬端口,其中該至少一個(gè)虛擬端口包括從兩個(gè)或多個(gè)預(yù)定義端口中選擇的IO引腳。因此,該至少一個(gè)虛擬端口使得能夠同時(shí)訪問從兩個(gè)或多個(gè)預(yù)定義端口中所選擇的IO引腳。本發(fā)明的具有可編程虛擬端口的處理器具有多個(gè)優(yōu)點(diǎn)。特別是,本發(fā)明的處理器能夠?qū)碜圆煌A(yù)定義端口的引腳分組到一個(gè)虛擬端口。虛擬端口分配是易于編程的,使得應(yīng)用代碼是小尺寸、高效、易于使用且快速執(zhí)行的。


當(dāng)結(jié)合附圖閱讀時(shí),將會(huì)更好地理解本發(fā)明較佳實(shí)施例的下述詳細(xì)說明。本發(fā)明以實(shí)例方式說明,但不受附圖所限制。圖1是具有多個(gè)輸 入/輸出(IO)引腳的處理器俯視圖;圖2是顯示和本發(fā)明相關(guān)的部件的處理器的功能框圖;圖3是根據(jù)本發(fā)明一實(shí)施例的存儲(chǔ)器映射框圖;圖4是根據(jù)本發(fā)明一實(shí)施例的具有一個(gè)虛擬端口的處理器的原理框圖;圖5是根據(jù)本發(fā)明一實(shí)施例的具有兩個(gè)虛擬端口的處理器的原理框圖;以及圖6是根據(jù)本發(fā)明一實(shí)施例的具有連接到測試器的虛擬端口的處理器的原理框圖。
具體實(shí)施例方式下文結(jié)合附圖公開的詳細(xì)說明旨在作為本發(fā)明的當(dāng)前較佳實(shí)施例的描述,而不被認(rèn)為是代表本發(fā)明可實(shí)施的唯一形式。需理解的是:相同的或相等的功能可由不同實(shí)施例完成,所述實(shí)施例被認(rèn)為包含在發(fā)明的精神和范圍內(nèi)。現(xiàn)在參照?qǐng)D1,顯示了具有多個(gè)輸入/輸出(IO)引腳10的處理器I的俯視圖。如本領(lǐng)域所知,該多個(gè)IO引腳10用于發(fā)送和接收數(shù)據(jù)。多個(gè)IO引腳10的數(shù)量和放置可隨處理器I的不同配置以及不同封裝選擇而變化。例如對(duì)于32位的處理器,總線寬度可比用于16位版本處理器的要寬。類似地,某些封裝類型將具有比其他封裝類型更多的可用引腳,例如BGA封裝對(duì)比DIP。IO引腳10被分為三類:僅用于執(zhí)行預(yù)先指定功能的引腳;與諸如定時(shí)器系統(tǒng)、夕卜部中斷或鍵盤中斷的片上外圍設(shè)備共享的引腳,當(dāng)不受其他模塊控制時(shí)被還原到GPIO ;以及起GPIO作用的引腳。IO引腳10中的每一個(gè)具有存儲(chǔ)器映射(下面參照?qǐng)D2和3描述)中的指定地址和指定位位置。為了執(zhí)行效率,IO引腳10被分組成預(yù)定義端口(例如端口 A和端口 B),其中每個(gè)端口含有預(yù)定義數(shù)量的IO引腳10和存儲(chǔ)器映射中的指定地址。一般而言,每個(gè)端口具有一組地址,例如,一個(gè)用于數(shù)據(jù)讀取/寫入,一個(gè)用于控制信號(hào),等等。參照?qǐng)D2,示出了只顯示與本發(fā)明有關(guān)的那些部件的處理器I原理框圖。處理器I包括中央處理單元化 山20、位于0 似0內(nèi)的存儲(chǔ)器映射(MM) 30、總線接口 40、解碼邏輯電路50、多路器或多路復(fù)用器60、10引腳/端口控制器70以及IO引腳10。正如之前所提及,IO引腳10被分組成多個(gè)預(yù)定義端口,其中每個(gè)端口具有存儲(chǔ)于MM 30中的唯一地址。在操作中,CPU 20經(jīng)由CPU總線向麗30發(fā)送請(qǐng)求。麗30接收該請(qǐng)求并將該請(qǐng)求傳送到規(guī)定目標(biāo),如圖2中所示。也就是說,經(jīng)由總線接口 40從麗30到解碼邏輯電路50。解碼邏輯電路50讀取數(shù)據(jù)并解碼或重排序數(shù)據(jù),并向多路復(fù)用器60提供解碼的數(shù)據(jù)連同相關(guān)的控制信號(hào)。基于控制信號(hào),多路復(fù)用器60確定解碼的數(shù)據(jù)是否要被提供到IO控制器70。IO控制器70包括一個(gè)或多個(gè)寄存器和邏輯電路,以控制IO狀態(tài)、I/O方向、上拉、使能/禁能,并輸出將被提供到一個(gè)或多個(gè)端口的值。圖3是麗30的框圖。麗30具有多個(gè)存儲(chǔ)位置,例如寄存器空間31、RAM 32,EEPROM
33、保留空間34-36以及程序空間37-38。正如本領(lǐng)域技術(shù)人員所理解的,MM 30的配置可依賴于用戶需求而變化。圖4是處理器I的解碼邏輯電路50、多路復(fù)用器60和IO引腳/端口控制器70的更詳細(xì)原理圖。此實(shí)施例中,多個(gè)IO引腳10可被映射到三個(gè)端口:真實(shí)端口 PA和PB以及虛擬端口 PX。這三個(gè)端口 PA、PB和PX中的每一個(gè)具有存儲(chǔ)于CPU20的麗30中的唯一端口地址。虛擬端口 PX包含IO引腳10中的屬于端口 PA和PB的全部或部分引腳。指定到端口 PA和PB的IO引腳10被映射到麗30中。類似地,指定到虛擬端口 PX的IO引腳10被映射到MM30中,使得每一個(gè)IO引腳10具有MM30中的指定地址和指定位位置。在操作中,當(dāng)CPU 20發(fā)送想要針對(duì)虛擬端口 PX的總線請(qǐng)求時(shí),CPU 20訪問麗30以確定其是否是有效訪問,或者生成最終地址,然后將請(qǐng)求傳送到相關(guān)的接口總線上。然后經(jīng)由接口總線(地址、寫數(shù)據(jù)(wdata)、讀數(shù)據(jù)(rdata))將虛擬端口 PX地址請(qǐng)求發(fā)送到解碼邏輯電路50。解碼邏輯電路50解碼虛擬端口 PX地址請(qǐng)求,隨后將之提供到多路復(fù)用器60。多路復(fù)用器60將解碼的信息組合,并向IO引腳端口控制器70提供組合的信息。根據(jù)從多路復(fù)用器60和IO引腳端口控制器70接收的信息,IO引腳端口控制器70控制虛擬端口 PX的每個(gè)引腳的狀態(tài),使得虛擬端口 PX中的每個(gè)引腳根據(jù)來自CPU 20的指令以及麗30中的虛擬端口定義而發(fā)送和接收信號(hào)。虛擬端口 PX是可編程的。例如,比如位于麗30或解碼邏輯電路50中的虛擬端口控制寄存器可用于動(dòng)態(tài)地選擇IO引腳10中的不同引腳,并將所選的IO引腳分配到虛擬端口 PX。如果應(yīng)用程序需要使用來自例如端口 A和端口 B兩者的引腳,則該應(yīng)用程序需要訪問端口 PA和端口 PB兩者,導(dǎo)致增加的執(zhí)行時(shí)間和總線負(fù)載。如果在端口 PA和PB兩者中被訪問的IO引腳10都被重新映射到虛擬端口 PX,則應(yīng)用程序只需訪問一個(gè)端口,即虛擬端口 PX,使得訪問更快,其節(jié)省了時(shí)間,單一的訪問也降低了總線負(fù)載?,F(xiàn)在參照?qǐng)D5,顯示了根據(jù)本發(fā)明一實(shí)施例的具有兩個(gè)虛擬端口的處理器I的示意功能圖。更具體而言,處理器I具有四個(gè)預(yù)定義端口 PA、PB、PC和ro,以及兩個(gè)虛擬端口PX 80和PY90。虛擬端口 PX 80包括來自物理端口 PA和PB的IO引腳10 (圖5中未示),而虛擬端口 PY 90包括來自物理端口 PC和的IO引腳10。這種情況下,弓丨腳端口 PA/PB/PC/PD的某些IO引腳用于多個(gè)功能(例如:SCI 100、IIC 102等)。使用兩個(gè)虛擬端口 PX80和PY 90來代替預(yù)定義端口 PA/PB/PC/PD,使簡單的、容易的編碼成為可能并節(jié)省了引腳訪問時(shí)間。寫虛擬端口 PX80而不是引腳端口 PA、PB能夠同時(shí)驅(qū)動(dòng)端口 PA、PB兩者,因此避免了由相繼訪問PA和PB而引起的任何噪聲和假信號(hào)。注意到一個(gè)虛擬端口并不需要包括來自一個(gè)引腳端口的所有IO引腳。例如,如果虛擬端口 PX 80有8位,可通過重新映射端口 A的高5位和端口 B的低3位來定義虛擬端口 PX80。此外,虛擬端口 PX80和PY90中的IO引腳數(shù)量可以依據(jù)具體應(yīng)用而不同。另外,虛擬端口 PX80和/或PY90可以具有比總線寬度更小或更少的引腳;因此如果總線寬度足夠大,所有的引腳特別是GPIO引腳可被重新映射到一個(gè)連續(xù)的虛擬端口;因此引腳的任意組合可被同時(shí)訪問。圖6是具有虛擬端口 X80的處理器I的示意圖,該虛擬端口 X80用作CPU20和測試器110之間的接口或允許CPU20和測試器110之間的通信,來代替使用預(yù)定義端口 A和B提供這種通信。通過訪問虛擬端口 X 80,測試器110能夠同時(shí)測試來自端口 A和端口 B兩者的IO引腳。通過訪問虛擬端口 X,從測試器110向CUP20下載啟動(dòng)和測試碼將比如果訪問端口 A和B(其將需要兩個(gè)和更多周期)會(huì)更快。此外,虛擬端口 X的提供允許端口 A和B的快速、并行測試。為了例示和描述,已提供了本發(fā)明優(yōu)選實(shí)施例的描述,但是并不旨在作為詳盡的或是將本發(fā)明限制到公開的形式。本領(lǐng)域技術(shù)人員將會(huì)懂得的是:可以對(duì)上述實(shí)施例做出改變而不脫離發(fā)明原理的范圍。因此可理解的是:本發(fā)明并不限于公開的特殊實(shí)施例,而是覆蓋了由所附權(quán)利要求書定義的本發(fā)明的精神和范圍內(nèi)的修改。
權(quán)利要求
1.一種處理器,包括: 用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳,其中所述引腳被分組為多個(gè)預(yù)定義端口 ; 具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中所述預(yù)定義端口中的每個(gè)預(yù)定義端口具有存儲(chǔ)于所述存儲(chǔ)位置之一中的物理地址;以及 具有存儲(chǔ)于所述存儲(chǔ)位置之一中的虛擬地址的至少一個(gè)虛擬端口,其中所述至少一個(gè)虛擬端口包括從兩個(gè)或更多個(gè)預(yù)定義端口中選擇的IO引腳,且其中所述至少一個(gè)虛擬端口允許同時(shí)訪問從兩個(gè)或更多個(gè)預(yù)定義端口中所選擇的IO引腳。
2.按權(quán)利要求1的處理器,其中所述至少一個(gè)虛擬端口包括通用IO(GPIO)引腳。
3.按權(quán)利要求1的處理器,其中所述至少一個(gè)虛擬端口具有不同數(shù)量的IO引腳。
4.按權(quán)利要求1的處理器,其中所述至少一個(gè)虛擬端口具有數(shù)量小于所述處理器的總線寬度的IO引腳。
5.一種對(duì)處理器編程的方法,其中所述處理器包括:用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(10)引腳,其中所述引腳被分組為多個(gè)預(yù)定義端口 ;以及 具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中所述預(yù)定義端口中的每個(gè)預(yù)定義端口具有存儲(chǔ)于所述存儲(chǔ)位置之一中的物理地址;并且所述方法包括: 將所述多個(gè)IO引腳重新映射到一個(gè)或更多個(gè)虛擬端口,其中所述一個(gè)或更多個(gè)虛擬端口中的任意虛擬端口包括從兩個(gè)或更多個(gè)預(yù)定義端口中選擇的IO引腳,并且所述虛擬端口中的一個(gè)IO引腳時(shí)應(yīng)于引腳端口中的一個(gè)IO引腳; 其中所述一個(gè)或更多個(gè)虛擬端口中的每個(gè)虛擬端口具有存儲(chǔ)于所述存儲(chǔ)位置之一中的虛擬地址,且其中所述一個(gè)或更多個(gè)虛擬端口中的每個(gè)虛擬端口允許同時(shí)訪問從兩個(gè)或更多個(gè)預(yù)定義端口中所選擇的IO引腳。
6.按權(quán)利要求5的方法,其中所述重新映射由計(jì)算機(jī)可執(zhí)行程序來執(zhí)行。
7.按權(quán)利要求5的方法,其中所述虛擬端口包括GPIO引腳。
8.一種電子設(shè)備,包括: 圖形用戶界面(GUI);以及 與所述⑶I通信地耦連的處理器,其中所述處理器包括: 用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳,其中所述引腳被分組為多個(gè)預(yù)定義端口 ; 具有多個(gè)存儲(chǔ)位置的存儲(chǔ)器映射,其中所述預(yù)定義端口中的每個(gè)預(yù)定義端口具有存儲(chǔ)于所述存儲(chǔ)位置之一中的物理地址;以及 具有存儲(chǔ)于所述存儲(chǔ)位置之一中的虛擬地址的至少一個(gè)虛擬端口,其中所述至少一個(gè)虛擬端口包括從兩個(gè)或更多個(gè)預(yù)定義端口中選擇的IO引腳,且其中所述至少一個(gè)虛擬端口允許同時(shí)訪問從兩個(gè)或更多個(gè)預(yù)定義端口中所選擇的IO引腳。
9.按權(quán)利要求8的電子設(shè)備,其中所述至少一個(gè)虛擬端口包括通用IO(GPIO)引腳。
全文摘要
具有可編程虛擬端口的處理器,包括用于發(fā)送和接收數(shù)據(jù)的多個(gè)輸入/輸出(IO)引腳。該IO引腳被分組成為多個(gè)預(yù)定義端口,其中的每一個(gè)具有存儲(chǔ)于存儲(chǔ)器映射的存儲(chǔ)位置之一中的物理地址。該IO引腳可被重新映射到一個(gè)或多個(gè)虛擬端口上。
文檔編號(hào)G06F15/78GK103092810SQ20111040093
公開日2013年5月8日 申請(qǐng)日期2011年11月2日 優(yōu)先權(quán)日2011年11月2日
發(fā)明者聶式祥, 陳志軍, 程志宏 申請(qǐng)人:飛思卡爾半導(dǎo)體公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
揭阳市| 南京市| 桑日县| 武乡县| 噶尔县| 余姚市| 鲜城| 海林市| 美姑县| 铅山县| 德庆县| 茶陵县| 昌吉市| 民权县| 叶城县| 富平县| 科技| 巴里| 囊谦县| 尼勒克县| 建昌县| 金秀| 湖口县| 汕尾市| 淳化县| 武清区| 呼和浩特市| 前郭尔| 宁夏| 苏尼特左旗| 赤水市| 巴南区| 镇康县| 凤冈县| 泗水县| 微博| 新源县| 安吉县| 大厂| 清流县| 三台县|