亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于外圍組件的高優(yōu)先級(jí)命令隊(duì)列的制作方法

文檔序號(hào):6375958閱讀:180來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):用于外圍組件的高優(yōu)先級(jí)命令隊(duì)列的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路領(lǐng)域,更具體而言,涉及集成電路中的外圍組件中的命令處 理。
背景技術(shù)
在具有大量的數(shù)據(jù)帶寬的外圍接口控制器中,會(huì)發(fā)生的挑戰(zhàn)之一是從外部處理器向外圍接口控制器提供控制輸入。通常,在外圍接口控制器和存儲(chǔ)器之間傳輸數(shù)據(jù)的到外圍控制器的相同內(nèi)部接口被用來(lái)從外部處理器(例如,通過(guò)向外圍接口控制器中的控制寄存器的一系列寫(xiě)入)提供控制輸入。當(dāng)發(fā)生數(shù)據(jù)傳輸時(shí),存儲(chǔ)器到外圍接口可以充滿著數(shù)據(jù)傳輸。相應(yīng)地,為下一組數(shù)據(jù)傳輸安排的控制輸入可以有效地鎖定,直到完成當(dāng)前數(shù)據(jù)傳輸。在正在提供控制輸入期間,外圍接口控制器所控制的外部外圍接口可以是空閑的。一種用于減少外圍設(shè)備到存儲(chǔ)器接口上的爭(zhēng)用的機(jī)制是在外圍接口控制器中包括處理器,執(zhí)行程序以控制外圍接口控制器硬件。然而,這樣的機(jī)制在許多方面是昂貴的就金錢(qián)而言,獲取處理器(要么作為分離的組件或者作為可以被合并到外圍接口控制器設(shè)計(jì)中的知識(shí)產(chǎn)權(quán));就當(dāng)包括處理器時(shí)由外圍接口控制器占據(jù)的空間而言;以及就由處理器消耗的電能而言。另外,要被執(zhí)行的程序存儲(chǔ)在系統(tǒng)存儲(chǔ)器中,如此指令取出會(huì)與外圍設(shè)備到存儲(chǔ)器接口上的數(shù)據(jù)傳輸競(jìng)爭(zhēng)。另外,在啟動(dòng)給定數(shù)據(jù)傳輸之后標(biāo)識(shí)執(zhí)行更重要的(或更高優(yōu)先級(jí)的)數(shù)據(jù)傳輸?shù)男枨蟮那闆r下,中斷一個(gè)數(shù)據(jù)傳輸以執(zhí)行另一個(gè)數(shù)據(jù)傳輸是復(fù)雜的。

發(fā)明內(nèi)容
在一個(gè)實(shí)施例中,集成電路包括被配置成控制集成電路的外部接口的外圍組件。例如,外圍組件可以是諸如閃速存儲(chǔ)器接口單元之類(lèi)的存儲(chǔ)器接口單元。到外圍組件的內(nèi)部接口可以在去往/來(lái)自外部接口的數(shù)據(jù)傳輸以及到外圍組件的控制通信之間共享。外圍組件可包括被配置成存儲(chǔ)一組命令以在接口上執(zhí)行傳輸?shù)牡蛢?yōu)先級(jí)命令隊(duì)列。另外,外圍組件還可包括被配置成存儲(chǔ)第二組命令以在接口上執(zhí)行傳輸?shù)母邇?yōu)先級(jí)命令隊(duì)列。低優(yōu)先級(jí)隊(duì)列中的命令可包括標(biāo)識(shí)該組命令可以被中斷以執(zhí)行第二組命令的點(diǎn)的指示??刂齐娐房梢择詈系降蛢?yōu)先級(jí)命令隊(duì)列,并可以讀取命令并與接口控制器進(jìn)行通信,以響應(yīng)于命令,導(dǎo)致接口上的傳輸。另外,控制電路還可以響應(yīng)于指示,中斷對(duì)來(lái)自低優(yōu)先級(jí)隊(duì)列的命令的處理,并可以處理來(lái)自高優(yōu)先級(jí)命令隊(duì)列的命令。在一個(gè)實(shí)施例中,通過(guò)第二組命令來(lái)表示的高優(yōu)先級(jí)傳輸可以比首先需要低優(yōu)先級(jí)隊(duì)列是空的情況更快執(zhí)行。另外,通過(guò)在可中斷的點(diǎn)中斷低優(yōu)先級(jí)傳輸,當(dāng)高優(yōu)先級(jí)傳輸完成時(shí),低優(yōu)先級(jí)傳輸可以恢復(fù)。在高優(yōu)先級(jí)傳輸之前發(fā)生的處理可以正確地完成,而不必重復(fù)。


下面的詳細(xì)描述參考了將簡(jiǎn)短地描述的各個(gè)附圖。圖I是集成電路、存儲(chǔ)器,以及閃速存儲(chǔ)器的一個(gè)實(shí)施例的框圖。圖2是圖I中所示出的閃速存儲(chǔ)器接口的一個(gè)實(shí)施例的框圖。
圖3是示出了圖2中所示出的閃速存儲(chǔ)器接口控制電路的一個(gè)實(shí)施例響應(yīng)于接收到寫(xiě)入操作的操作的流程圖。圖4是示出了由閃速存儲(chǔ)器接口控制電路所支持的命令的一個(gè)實(shí)施例的表。圖5是圖2所示出的閃速存儲(chǔ)器接口控制電路的一個(gè)實(shí)施例響應(yīng)于從低優(yōu)先級(jí)命令先進(jìn)先出緩沖器(FIFO)讀取命令的操作的流程圖。圖6是圖2所示出的閃速存儲(chǔ)器接口控制電路的一個(gè)實(shí)施例響應(yīng)于從高優(yōu)先級(jí)命令先進(jìn)先出緩沖器(FIFO)讀取命令的操作的流程圖。圖7是宏存儲(chǔ)器的示例使用的框圖。圖8是示出了由圖I所示出的處理器的一個(gè)實(shí)施例所執(zhí)行的閃速存儲(chǔ)器接口碼的一個(gè)實(shí)施例的操作的流程圖。圖9是包括圖I中所示出的設(shè)備的系統(tǒng)的一個(gè)實(shí)施例的框圖。圖10是計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)的一個(gè)實(shí)施例的框圖。盡管本發(fā)明可以具有各種修改和替代形式,但是此處將通過(guò)附圖中的示例顯示特定實(shí)施例,并進(jìn)行詳細(xì)描述。然而,應(yīng)了解附圖和對(duì)附圖的詳細(xì)描述不意圖將本發(fā)明限于所公開(kāi)的特定形式,相反地,意圖是可以涵蓋如所附權(quán)利要求所定義的、落入本發(fā)明的精神和范圍內(nèi)的所有修改、等效內(nèi)容和替代方案。此處所使用的標(biāo)題只用于組織目的,不用于限制說(shuō)明書(shū)的范圍。如在本申請(qǐng)全篇中所使用的,詞語(yǔ)“可以”用于許可的意義(即,表示具有可能性做某事),而不是強(qiáng)制性的意義(即,表示必須)。類(lèi)似地,詞語(yǔ)“包括”表示“包括”,但不限于此。各種單元、電路或其他組件都可以被描述成“被配置成”執(zhí)行一個(gè)或多個(gè)任務(wù)。在這樣的上下文中,“被配置成”是結(jié)構(gòu)的廣泛的講述,一般而言意思指“具有在操作期間執(zhí)行一個(gè)或多個(gè)任務(wù)的電路”。如此,單元/電路/組件可以被配置成甚至在單元/電路/組件當(dāng)前不在接通的情況下執(zhí)行任務(wù)。一般而言,構(gòu)成對(duì)應(yīng)于“被配置成”的結(jié)構(gòu)的電路可包括硬件電路和/或存儲(chǔ)可執(zhí)行以實(shí)現(xiàn)操作的程序指令的存儲(chǔ)器。存儲(chǔ)器可包括諸如靜態(tài)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器之類(lèi)的易失性存儲(chǔ)器和/或諸如光盤(pán)或磁盤(pán)存儲(chǔ)器、閃速存儲(chǔ)器、可編程只讀存儲(chǔ)器等等之類(lèi)的非易失性存儲(chǔ)器。類(lèi)似地,在描述中,為了方便起見(jiàn),各種單元/電路/組件可以被描述成執(zhí)行任務(wù)。這樣的描述應(yīng)該解釋為包括短語(yǔ)“被配置成”。列舉被配置成執(zhí)行一個(gè)或多個(gè)任務(wù)的單元/電路/組件明確地意圖對(duì)于該單元/電路/組件,不援引35U. S.C. §112,段落6的解釋。
具體實(shí)施例方式現(xiàn)在轉(zhuǎn)向圖1,該圖示出了耦合到外部存儲(chǔ)器12以及一個(gè)或多個(gè)閃速存儲(chǔ)器設(shè)備28A-28B的集成電路10的一個(gè)實(shí)施例的框圖。在所示出的實(shí)施例中,集成電路10包括存儲(chǔ)器控制器(MC)14、互連結(jié)構(gòu)16、一組諸如組件18A-18B之類(lèi)的外圍組件、閃速存儲(chǔ)器接口單元30、中心DMA (CDMA)控制器20、包括I級(jí)(LI)緩存24、2級(jí)(L2)緩存26的處理器22,以及輸入/輸出(I/O)處理器(IOP) 32。存儲(chǔ)器控制器14耦合到存儲(chǔ)器12可以耦合到的存儲(chǔ)器接口,并耦合到互連結(jié)構(gòu)16。在所示出的實(shí)施例中,CDMA控制器20、L2緩存26,以及處理器22 (通過(guò)L2緩存26)也耦合到互連結(jié)構(gòu)16。L2緩存26耦合到處理器22,而CDMA控制器20耦合到組件18A-18B、閃速存儲(chǔ)器接口單元30、以及IOP 32。一個(gè)或多個(gè)外圍組件18A-18B也可以耦合到諸如外圍組件18A之類(lèi)的外部接口。在其他實(shí)施例中,其他組件可以直接耦合到互連結(jié)構(gòu)16 (例如,其他外圍組件)。CDMA控制器20可以被配置成在存儲(chǔ)器12、各種外圍組件18A-18B,和/或閃速存儲(chǔ)器接口單元30之間執(zhí)行直接存儲(chǔ)器訪問(wèn)(Direct Memory Access, DMA)操作。各實(shí)施例可包括通過(guò)CDMA控制器20耦合的任意數(shù)量的外圍組件和/或閃速存儲(chǔ)器接口單元30。處理器22 (更具體而言,由處理器22所執(zhí)行的指令)可以編程CDMA控制器20以執(zhí)行DMA操作。各實(shí)施例可以以各種方式來(lái)編程CDMA控制器20。例如,DMA描述符可以被寫(xiě)入到存儲(chǔ)器12中描述要被執(zhí)行的DMA操作,而CDMA控制器20可包括可編程以定位存儲(chǔ)器12中的DMA描述符的寄存器。可以為DMA通道創(chuàng)建多個(gè)描述符,以及可以如所指定的那樣執(zhí)行描述符中所描述的DMA操作??闪磉x地,CDMA控制器20可包括可編程以描述要被執(zhí)行的DMA 操作的寄存器,而編程CDMA控制器20可包括寫(xiě)入寄存器。一般而言,DMA操作可以是由與執(zhí)行指令的處理器分開(kāi)的硬件執(zhí)行的從源向目標(biāo)的數(shù)據(jù)傳輸。硬件可以被使用由處理器執(zhí)行的指令編程,但是傳輸本身是由硬件獨(dú)立于處理器中的指令執(zhí)行而執(zhí)行的。源和目標(biāo)中的至少一個(gè)可以是存儲(chǔ)器。在某些實(shí)施例中,存儲(chǔ)器可以是系統(tǒng)存儲(chǔ)器(例如,存儲(chǔ)器12)、閃速存儲(chǔ)器設(shè)備28A-28B,或者也可以是集成電路10中的內(nèi)部存儲(chǔ)器。某些DMA操作可以將存儲(chǔ)器作為源和目標(biāo)(例如,存儲(chǔ)器12和閃速存儲(chǔ)器設(shè)備28A-28B之間的DMA操作,或從存儲(chǔ)器12的一個(gè)塊到另一塊的復(fù)制操作)。其他DMA操作可以將外圍組件作為源或目標(biāo)。外圍組件可以耦合到將在其上傳輸DMA數(shù)據(jù)或?qū)⒃谄渖辖邮誅MA數(shù)據(jù)的外部接口。例如,外圍組件18A可以耦合到將向其上傳輸DMA或?qū)⒃谄渖辖邮誅MA數(shù)據(jù)的接口。如此,DMA操作可包括CDMA控制器20從源讀取數(shù)據(jù)和向目的地寫(xiě)入數(shù)據(jù)。數(shù)據(jù)可以作為DMA操作的一部分流過(guò)CDMA控制器20。具體而言,DMA從存儲(chǔ)器12讀取的DMA數(shù)據(jù)可以通過(guò)互連結(jié)構(gòu)16,流過(guò)存儲(chǔ)器控制器14,流過(guò)CDMA控制器20,流向外圍組件18A-18B或閃速存儲(chǔ)器接口單元30 (可能的話,在外圍組件耦合到的接口,如果適用的話)。DMA寫(xiě)入到存儲(chǔ)器的數(shù)據(jù)可以在相反的方向流動(dòng)。在一個(gè)實(shí)施例中,由處理器22和/或IOP 32所執(zhí)行的指令也可以使用被稱(chēng)為編程的輸入/輸出(PIO)操作的讀和/或?qū)懖僮?,與外圍組件18A-18B和閃速存儲(chǔ)器接口單元30進(jìn)行通信。PIO操作可以具有被集成電路10映射到外圍組件18A-18B或閃速存儲(chǔ)器接口單元30的地址(更具體而言,向寄存器或組件中的其他可讀的/可寫(xiě)入的資源)。地址映射可以在地址空間中是固定的,或者也可以是可編程的??闪磉x地,PIO操作可以以可與存儲(chǔ)器讀/寫(xiě)入操作區(qū)別的方式傳輸(例如,使用與互連結(jié)構(gòu)16上的存儲(chǔ)器讀/寫(xiě)入操作不同的命令編碼,使用邊帶信號(hào)或控制信號(hào)來(lái)指出存儲(chǔ)器與PIO等等)。對(duì)于這樣的實(shí)現(xiàn),PIO傳輸仍可以包括地址,該地址可以標(biāo)識(shí)PIO地址空間內(nèi)的外圍組件18A-18B或閃速存儲(chǔ)器接口單元30 (以及帶地址的資源)。帶地址的資源可以是帶地址的組件/單元的任何資源,諸如配置或控制寄存器、邏輯資源(例如,PIO可以被解釋為命令)等等。在一個(gè)實(shí)施例中,PIO操作可以與CDMA控制器20使用相同互連,以及對(duì)于外圍組件18A-18B和閃速存儲(chǔ)器接口單元30,可以流過(guò)CDMA控制器20。如此,PIO操作可以由處理器22向互連結(jié)構(gòu)16 (在此實(shí)施例中,通過(guò)12緩存26)、向CDMA控制器20,以及向目標(biāo)外圍組件/閃速存儲(chǔ)器接口單元發(fā)出。類(lèi) 似地,IOP 32可以向CDMA控制器20發(fā)出PIO操作,CDMA控制器20可以通過(guò)相同互連向外圍組件18A-18B或閃速存儲(chǔ)器接口單元30傳輸PIO操作。相應(yīng)地,去往/來(lái)自外圍組件18A-18B或閃速存儲(chǔ)器接口單元30的DMA操作的數(shù)據(jù)傳輸可能與去往/來(lái)自相同外圍組件18A-18B或閃速存儲(chǔ)器接口單元30的PIO操作有沖突。例如,閃速存儲(chǔ)器接口單元30可以通過(guò)PIO操作被編程,以執(zhí)行去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的存儲(chǔ)器傳輸。對(duì)于寫(xiě)入操作,CDMA控制器20可以DMA要被寫(xiě)入到閃速存儲(chǔ)器接口單元30的數(shù)據(jù)。對(duì)于讀取操作,CDMA控制器20可以DMA要被從閃速存儲(chǔ)器接口單元30讀取的數(shù)據(jù)。在一個(gè)實(shí)施例中,閃速存儲(chǔ)器設(shè)備28A-28D可以支持去往/來(lái)自設(shè)備的數(shù)據(jù)傳輸?shù)姆猪?yè)。頁(yè)面的大小是與設(shè)備有關(guān)的,并且可以不與用于存儲(chǔ)器12的虛擬-物理地址轉(zhuǎn)換的頁(yè)面大小相同。例如,常常使用512字節(jié)、2048字節(jié)、以及4096字節(jié)的頁(yè)面大小。相應(yīng)地,在此上下文中,一個(gè)頁(yè)面可以是對(duì)于存儲(chǔ)器設(shè)備的數(shù)據(jù)傳輸單位。閃速存儲(chǔ)器接口單元30可以被編程為執(zhí)行數(shù)據(jù)傳輸?shù)姆猪?yè),而CDMA單元20可以執(zhí)行DMA操作以傳輸數(shù)據(jù)。如果要傳輸多個(gè)頁(yè)面,則可以使用額外的PIO操作來(lái)編程閃速存儲(chǔ)器接口單元30以執(zhí)行下一傳輸。然而,DMA操作可以有效地鎖定額外的PIO操作,直到完成當(dāng)前頁(yè)面。如此,當(dāng)為下一頁(yè)編程閃速存儲(chǔ)器接口單元30時(shí)消逝的時(shí)間可能會(huì)導(dǎo)致到閃速存儲(chǔ)器設(shè)備的接口上的空閑時(shí)間。另外,可以啟動(dòng)DMA傳輸,以及然后在IC 10中可能需要更高優(yōu)先級(jí)的數(shù)據(jù)傳輸。例如,對(duì)于閃速存儲(chǔ)器接口單元30,正在進(jìn)行的DMA傳輸可以由應(yīng)用程序啟動(dòng),以及然后操作系統(tǒng)可能需要將數(shù)據(jù)頁(yè)出到閃速存儲(chǔ)器28A-28B或從閃速存儲(chǔ)器28A-28B讀取數(shù)據(jù)以滿足頁(yè)面錯(cuò)誤。可另選地,在后臺(tái)執(zhí)行的應(yīng)用程序可能已經(jīng)啟動(dòng)DMA傳輸,而主動(dòng)地使用的(前臺(tái))應(yīng)用程序可能需要執(zhí)行傳輸。在另一示例中,應(yīng)用程序可以被指定優(yōu)先級(jí)。在再一個(gè)示例中,IC 10中的硬件可能要求對(duì)閃速存儲(chǔ)器28A-28B的訪問(wèn),并可能是比軟件訪問(wèn)更高的優(yōu)先級(jí)。在一個(gè)實(shí)施例中,閃速存儲(chǔ)器接口單元30可以支持多個(gè)命令隊(duì)列。為一組要被傳輸?shù)捻?yè)面編程閃速存儲(chǔ)器接口單元30的命令可以排隊(duì)在命令隊(duì)列中的一個(gè)隊(duì)列中。一旦對(duì)于第一頁(yè)面的DMA操作開(kāi)始,為隨后的頁(yè)面編程閃速存儲(chǔ)器接口單元30的數(shù)據(jù)可能已經(jīng)被存儲(chǔ)在命令隊(duì)列中。相應(yīng)地,在編程閃速存儲(chǔ)器接口單元30的PIO操作和傳輸數(shù)據(jù)的DMA操作之間可能沒(méi)有沖突。由于在CDMA單元30對(duì)于當(dāng)前頁(yè)面完成DMA操作時(shí)處理來(lái)自命令隊(duì)列的為要傳輸?shù)南乱豁?yè)配置閃速存儲(chǔ)器控制器30的命令的能力,可以增加到閃速存儲(chǔ)器設(shè)備28A-28B的接口上的使用。此外,命令隊(duì)列還可以具有與它們相關(guān)聯(lián)的優(yōu)先級(jí)。例如,可以包括兩個(gè)隊(duì)列一個(gè)隊(duì)列可以是低優(yōu)先級(jí)隊(duì)列,而另一個(gè)隊(duì)列可以是高優(yōu)先級(jí)隊(duì)列。閃速存儲(chǔ)器接口單元30可以被配置成如果在高優(yōu)先級(jí)隊(duì)列中有要被處理的命令,則中斷對(duì)低優(yōu)先級(jí)隊(duì)列中的命令的處理。如此,較高優(yōu)先級(jí)傳輸可以中斷較低優(yōu)先級(jí)傳輸。在一個(gè)實(shí)施例中,低優(yōu)先級(jí)隊(duì)列可包括標(biāo)識(shí)命令流中的準(zhǔn)許中斷的位置的一個(gè)或多個(gè)指示。指示可以確保中斷在命令中的“好的”位置發(fā)生(例如,在頁(yè)面結(jié)束時(shí),在同步點(diǎn)等等)。即,當(dāng)命令被寫(xiě)入到高優(yōu)先級(jí)隊(duì)列中時(shí),可以完成在低優(yōu)先級(jí)隊(duì)列中發(fā)生的操作,以便那些操作不需要在高優(yōu)先級(jí)處理完成之后再次執(zhí)行。在一個(gè)實(shí)施例中,隊(duì)列可以被靜態(tài)地指定為高優(yōu)先級(jí)或低優(yōu)先級(jí)。在其他實(shí)施例中,優(yōu)先級(jí)可以是可編程的。在一個(gè)實(shí)施例中,閃速存儲(chǔ)器接口單元30可以支持宏存儲(chǔ)器以存儲(chǔ)一個(gè)或多個(gè)宏指令。宏可以是可以通過(guò)宏命令調(diào)用的兩個(gè)或更多命令的序列。例如,宏命令可以被寫(xiě)入到其中一個(gè)命令隊(duì)列中,并可以當(dāng)宏命令由閃速存儲(chǔ)器接口單元30執(zhí)行時(shí)調(diào)用宏。實(shí)現(xiàn)頻繁地使用的命令序列的宏指令可以被下載到宏存儲(chǔ)器中,如此,少一些的命令需要隨后下載。即,宏命令可以被寫(xiě)入到命令隊(duì)列中而不是重復(fù)地寫(xiě)入存儲(chǔ)在宏中的命令。在一個(gè)實(shí)施例中,宏命令可以指定宏的起始地址以及宏中的字的數(shù)量。一旦從宏中讀取了該數(shù)量的字并且執(zhí)行了相應(yīng)命令,就可以執(zhí)行相應(yīng)命令隊(duì)列中的宏命令之后的下一命令。相應(yīng)地,在一個(gè)實(shí)施例中,在宏中可以避免返回命令,準(zhǔn)許更稠密的宏。其他實(shí)施例可以使用起始地址以及若干個(gè)命令作為操作數(shù)。其他實(shí)施例可以實(shí)現(xiàn)返回命令,而宏命令可包括起始地址(但不包括字/命令計(jì)數(shù))作為操作數(shù)。在一個(gè)實(shí)施例中,宏命令也可以包括循環(huán)計(jì)數(shù)操作數(shù)。循環(huán)計(jì)數(shù)操作數(shù)可以指定要被執(zhí)行的宏的迭代數(shù)量。如此,執(zhí)行宏命令可包括讀取在起始地址處開(kāi)始的字的數(shù)量以及執(zhí)行命令,在宏命令之后繼續(xù)執(zhí)行命令隊(duì)列中的下一命令 之前,迭代循環(huán)計(jì)數(shù)次數(shù)。命令隊(duì)列中的命令和/或宏存儲(chǔ)器中的命令可以使用操作數(shù)來(lái)控制它們的操作。在某些情況下,操作數(shù)可以被存儲(chǔ)在相應(yīng)命令隊(duì)列中。在其他情況下,操作數(shù)可以被存儲(chǔ)在操作數(shù)隊(duì)列中。命令隊(duì)列或宏存儲(chǔ)器中的命令可以指定閃速存儲(chǔ)器接口單元30從操作數(shù)隊(duì)列中加載操作數(shù)并對(duì)操作數(shù)進(jìn)行操作。操作數(shù)隊(duì)列可以與宏一起使用,以為一般性宏指令提供特定于實(shí)例的數(shù)據(jù)(例如,閃速存儲(chǔ)器地址、芯片啟用等等)。類(lèi)似地,操作數(shù)隊(duì)列可為命令隊(duì)列中的命令提供操作數(shù)。如此處所使用的存儲(chǔ)器傳輸可以是指去往/來(lái)自存儲(chǔ)器設(shè)備(通過(guò)到存儲(chǔ)器設(shè)備的接口)的數(shù)據(jù)傳輸。如此,去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的存儲(chǔ)器傳輸可以通過(guò)閃速存儲(chǔ)器設(shè)備28A-28B和閃速存儲(chǔ)器接口單元30之間的接口來(lái)發(fā)生。類(lèi)似地,去往/來(lái)自存儲(chǔ)器12的存儲(chǔ)器傳輸可以通過(guò)存儲(chǔ)器12和存儲(chǔ)器控制器14之間的接口來(lái)發(fā)生。存儲(chǔ)器傳輸可以使用由存儲(chǔ)器設(shè)備所定義的協(xié)議來(lái)發(fā)生。另外,命令可以是指被外圍組件(例如,閃速存儲(chǔ)器接口單元30)中的硬件解釋為指定要被硬件執(zhí)行的特定操作的一個(gè)或多個(gè)字節(jié)的數(shù)據(jù)。一般而言,外圍組件可以是要與處理器一起包括在集成電路10中的任何所需的電路。外圍組件可以具有集成電路10的其他組件可以用來(lái)與外圍組件進(jìn)行通信的已定義的功能和接口。例如,外圍組件可包括諸如顯示控制器、圖形處理器等等之類(lèi)的視頻組件;諸如數(shù)字信號(hào)處理器、混合器等等之類(lèi)的音頻組件;諸如以太網(wǎng)媒體訪問(wèn)控制器(MAC)或無(wú)線保真(WiFi)控制器之類(lèi)的網(wǎng)絡(luò)組件;在諸如通用串行總線(USB)、外圍組件互連(PCI)或諸如PCI express (PCIe)之類(lèi)的其變體、串行外圍接口(SPI)、閃速存儲(chǔ)器接口等等之類(lèi)的各種接口上進(jìn)行通信的控制器。閃速存儲(chǔ)器接口單元30可以是外圍組件的一個(gè)示例,以及此處所描述的外圍組件的一般屬性可以適用于閃速存儲(chǔ)器接口單元30。處理器22可以實(shí)現(xiàn)任何指令集體系結(jié)構(gòu),并可以被配置成執(zhí)行該指令集體系結(jié)構(gòu)中所定義的指令。處理器22可以使用任何微體系結(jié)構(gòu),包括標(biāo)量、超級(jí)標(biāo)量、流水線、超級(jí)流水線、無(wú)序、有序、投機(jī)性的、非投機(jī)性的等等或其組合。處理器22可包括電路,并可任選地可以實(shí)現(xiàn)微編碼技術(shù)。在所示出的實(shí)施例中,處理器22可包括LI緩存24以存儲(chǔ)數(shù)據(jù)和指令供處理器22使用。可以有單獨(dú)的LI數(shù)據(jù)和指令緩存。LI緩存可以具有任何容量和組織(組相聯(lián)、直接映射等等)。在所示出的實(shí)施例中,還提供了 L2緩存26。L2緩存26可以具有任何容量和組織,類(lèi)似于LI緩存。類(lèi)似地,IOP 32可以實(shí)現(xiàn)任何指令集體系結(jié)構(gòu),并可以被配置成執(zhí)行該指令集體系結(jié)構(gòu)中所定義的指令。通過(guò)IOP 32來(lái)實(shí)現(xiàn)的指令集體系結(jié)構(gòu)不必是通過(guò)處理器22來(lái)實(shí)現(xiàn)的相同指令集體系結(jié)構(gòu)。在一個(gè)實(shí)施例中,IOP 32可以是比處理器22較低的功率,較低的性能的處理器。IOP 32可以處理各種I/O接口問(wèn)題(配置外圍組件以執(zhí)行所希望的操作,某些錯(cuò)誤處理等等)。IOP 32可以執(zhí)行指令以向閃速存儲(chǔ)器接口單元30中的命令隊(duì)列寫(xiě)入命令,向閃速存儲(chǔ)器接口單元30中的宏存儲(chǔ)器寫(xiě)入宏指令,和/或向閃速存儲(chǔ)器接口 30中的操作數(shù)隊(duì)列寫(xiě)入操作數(shù)。IOP 32還可以進(jìn)一步執(zhí)行指令以服務(wù)其他外圍組件18A-18B。如此,處理器22可以執(zhí)行其他計(jì)算任務(wù),或者如果沒(méi)有其他計(jì)算任務(wù)要執(zhí)行,則可以斷電以節(jié)省電力。I0P32可以使用任何微體系結(jié)構(gòu),包括標(biāo)量、超級(jí)標(biāo)量、流水線、超級(jí)流水線、無(wú)序、有序、投機(jī)性的、非投機(jī)性的等等或其組合。IOP 32可包括電路,并可任選地可以實(shí)現(xiàn)微 編碼技術(shù)?;ミB結(jié)構(gòu)16可以是存儲(chǔ)器控制器14、處理器22 (通過(guò)L2緩存26)、L2緩存26,以及CDMA控制器20可以通過(guò)其進(jìn)行通信的任何互連?;ミB結(jié)構(gòu)16可以實(shí)現(xiàn)任何類(lèi)型的互連(例如,總線、分組接口、點(diǎn)到點(diǎn)鏈路等等)。在一個(gè)實(shí)施例中,互連結(jié)構(gòu)16可以是互連的層次結(jié)構(gòu)。例如,處理器22和緩存24以及26可以在包括一致性端口(coherency port)和到存儲(chǔ)器控制器14的端口的“核綜合體”中實(shí)現(xiàn)。CDMA控制器20可以耦合到一致性端口。在某些實(shí)施例中,存儲(chǔ)器控制器14可以是多端口的。在某些這樣的實(shí)施例中,CDMA控制器20可以耦合到存儲(chǔ)器控制器14上的單獨(dú)的端口。在其他這樣的實(shí)施例中,CDMA控制器20仍可以通過(guò)ACP端口來(lái)耦合。存儲(chǔ)器控制器14可以被配置成從系統(tǒng)接口單元16接收存儲(chǔ)器請(qǐng)求。存儲(chǔ)器控制器14可以被配置成訪問(wèn)存儲(chǔ)器12,以使用為附加存儲(chǔ)器12所定義的接口來(lái)完成請(qǐng)求(對(duì)于寫(xiě)入請(qǐng)求,將接收到的數(shù)據(jù)寫(xiě)入到存儲(chǔ)器12,或響應(yīng)于讀取請(qǐng)求,從存儲(chǔ)器12提供數(shù)據(jù))。存儲(chǔ)器控制器14可以被配置成與任何類(lèi)型的存儲(chǔ)器12,諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步 DRAM (SDRAM)、雙倍數(shù)據(jù)速率(DDR、DDR2、DDR3 等等)SDRAM、RAMBUS DRAM (RDRAM)、靜態(tài)RAM (SRAM)等等進(jìn)行交互。存儲(chǔ)器可以排列為多排存儲(chǔ)器,諸如雙列直插存儲(chǔ)器模塊(DIMM),單列直插存儲(chǔ)器模塊(SIMM)等等。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)存儲(chǔ)器芯片被以封裝體疊層(POP)或芯片疊層配置附接到集成電路10。存儲(chǔ)器12可包括一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。一般而言,存儲(chǔ)器設(shè)備可以是被設(shè)計(jì)成能根據(jù)與寫(xiě)入操作中的數(shù)據(jù)一起提供的地址來(lái)存儲(chǔ)數(shù)據(jù),并且當(dāng)在讀取操作中使用該地址時(shí)提供該數(shù)據(jù)的任何組件。上文所提及的存儲(chǔ)器類(lèi)型的示例中的任何一種都可以在存儲(chǔ)器設(shè)備中實(shí)現(xiàn),以及閃速存儲(chǔ)器設(shè)備28A-28B也可以是存儲(chǔ)器設(shè)備。存儲(chǔ)器設(shè)備可以是連接到諸如印刷電路板(例如,SMM或DIMM,或直接連接到IC 10被耦合到的電路板)等等之類(lèi)的襯底的一個(gè)芯片,多個(gè)芯片。閃速存儲(chǔ)器接口單元30可包括被配置成接收對(duì)于閃速存儲(chǔ)器設(shè)備28A-28B的讀和寫(xiě)請(qǐng)求,并且被配置成連接到閃速存儲(chǔ)器設(shè)備28A-28B以完成讀/寫(xiě)請(qǐng)求的電路。在一個(gè)實(shí)施例中,讀/寫(xiě)請(qǐng)求可以來(lái)自CDMA控制器20。閃速存儲(chǔ)器接口單元30可以通過(guò)一個(gè)或多個(gè)控制寄存器(參見(jiàn)下面所描述的圖2)可編程,以執(zhí)行去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的存儲(chǔ)器傳輸(例如,通過(guò)PIO操作)。閃速存儲(chǔ)器設(shè)備28A-28B可以是閃速存儲(chǔ)器,本領(lǐng)域內(nèi)已知的一種類(lèi)型的非易失性存儲(chǔ)器。在其他實(shí)施例中,也可以使用其他形式的非易失性存儲(chǔ)器。例如,可以使用帶電池后備電源的SRAM、諸如電可擦除可編程ROM (EEPROM)之類(lèi)的各種類(lèi)型的可編程ROM等等。在再一些其他實(shí)施例中,可以使用類(lèi)似于存儲(chǔ)器12的易失性存儲(chǔ)器。盡管本實(shí)施例描述了在閃速存儲(chǔ)器接口單元30中使用命令隊(duì)列(FIFO)、宏存儲(chǔ)器、和/或操作數(shù)隊(duì)列(FIFO),但是其他實(shí)施例可以利用任何類(lèi)型的存儲(chǔ)器或外圍接口在任何外圍組件中實(shí)現(xiàn)特征。
值得注意的是,其他實(shí)施例可包括組件的其他組合,包括圖I所示出的組件的子集或超集和/或其他組件。盡管在圖I中可以示出給定組件的一個(gè)實(shí)例,但是其他實(shí)施例可包括給定組件的一個(gè)或多個(gè)實(shí)例?,F(xiàn)在轉(zhuǎn)向圖2,該圖示出了閃速存儲(chǔ)器接口單元30的一個(gè)實(shí)施例的框圖。在所示出的實(shí)施例中,閃速存儲(chǔ)器接口單元30包括低優(yōu)先級(jí)(LP)命令FIFO 40、高優(yōu)先級(jí)(HP)命令隊(duì)列41、閃速存儲(chǔ)器接口(FMI)控制電路42、宏存儲(chǔ)器44、操作數(shù)FIFO 46、閃速存儲(chǔ)器控制器(FMC)48、包括寄存器51的一組FMC控制寄存器50、數(shù)據(jù)緩沖器52A-52B,以及錯(cuò)誤檢查/校正(ECC)單元54。命令FIFO 40和41、FMI控制電路42、宏存儲(chǔ)器44、操作數(shù)FIFO46、以及緩沖器52A-52B都耦合到CDMA控制器20的內(nèi)部接口。FMI控制電路42進(jìn)一步耦合到命令FIFO 40和41、宏存儲(chǔ)器44、操作數(shù)FIFO 46、以及FMC控制寄存器50。FMC控制寄存器50進(jìn)一步耦合到FMC 48,而FMC 48又耦合到閃速存儲(chǔ)器設(shè)備的外部接口。FMC 48進(jìn)一步耦合到緩沖器52A-52B。ECC單元54還耦合到緩沖器52A-52B。FMI控制電路42可以被配置成從CDMA控制器20接收PIO操作。某些PIO操作可以被指向命令FIFO 40和41、宏存儲(chǔ)器44或操作數(shù)FIFO 46。例如,可以使用PIO寫(xiě)入來(lái)向命令FIFO 40或41中寫(xiě)入命令,將宏指令下載到宏存儲(chǔ)器44中,或?qū)⒉僮鲾?shù)寫(xiě)入到操作數(shù)FIFO 46中??梢越oFIFO 40和41、宏存儲(chǔ)器44、以及操作數(shù)FIF046中的每一個(gè)指定地址,這些地址可以在PIO操作數(shù)中用來(lái)尋址所希望的資源。例如,F(xiàn)IFO 40、41,以及46可以具有單一分配的地址,因?yàn)樗鼈兛梢砸韵热胂瘸龅姆绞絹?lái)進(jìn)行操作。向該地址的PIO寫(xiě)入可以導(dǎo)致FMI控制電路42將與下一開(kāi)放條目(open entry)中的寫(xiě)入一起提供的數(shù)據(jù)存儲(chǔ)在FIFO 40、41或46中。即,數(shù)據(jù)可以被附加到FIFO 40、41或46的尾部,其中從FIFO 40、41或46的首部去除命令或操作數(shù)。宏存儲(chǔ)器44可以具有指定給它的地址范圍,例如宏存儲(chǔ)器44的每個(gè)字一個(gè)地址。向地址的PIO寫(xiě)入可以將所提供的數(shù)據(jù)字存儲(chǔ)到宏存儲(chǔ)器44的被尋址的字中。FMI控制電路42可以處理命令FIFO 40或41中的命令,以編程各種FMC控制寄存器50,以使FMC 48執(zhí)行去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的特定存儲(chǔ)器傳輸。在一個(gè)實(shí)施例中,F(xiàn)MC 48被配置成通過(guò)FMC控制寄存器50來(lái)接收相對(duì)來(lái)說(shuō)低級(jí)別的控制,包括尋址、芯片啟用、傳輸命令等等。命令FIFO 40和41中的命令可以被FMI控制電路42解釋?zhuān)约跋鄳?yīng)FMC控制寄存器50可以被FMI控制電路42寫(xiě)入。類(lèi)似地,等待事件的命令可以被FMI控制電路42解釋以讀取一個(gè)或多個(gè)FMC控制寄存器50,以檢測(cè)事件。在FMI控制電路42到FMC 48之間也可以有直接控制信號(hào),在某些實(shí)施例中(圖2中未示出),這些信號(hào)可以由FMI控制電路42響應(yīng)于命令而被驅(qū)動(dòng)和/或由FMI控制電路42響應(yīng)于命令而被監(jiān)測(cè)。FMI控制電路42可以被配置成按照被寫(xiě)入到該FIFO中的順序從命令FIFO 40或41中讀取命令。更一般地,可以支持命令隊(duì)列(例如,命令FIFO 40和41可以不專(zhuān)門(mén)構(gòu)建為FIFO,以便隊(duì)列中的每一個(gè)條目都可以并行地對(duì)FMI控制電路42可見(jiàn))。類(lèi)似地,操作數(shù)FIF046可以是操作數(shù)隊(duì)列,而FMI控制電路42可以響應(yīng)于命令隊(duì)列或宏存儲(chǔ)器44中的命令按照操作數(shù)被寫(xiě)入的順序從操作數(shù)FIFO 46中讀取操作數(shù)。如果FIFO 40和41兩者都是空的,然后命令被寫(xiě)入到LP命令FIFO 40中,則FMI控制電路42可以從LP命令FIFO 40中讀取命令并執(zhí)行命令。如果當(dāng)FMI控制電路42正在處理來(lái)自LP命令FIF040的命令時(shí)命令被寫(xiě)入到HP FIFO 41,則FMI控制電路42可以確定在哪個(gè)點(diǎn)中斷對(duì)來(lái)自FIFO 40的命令的處理以開(kāi)始處理來(lái)自FIF041的命令。在圖2中,為此實(shí)施例示出了 LP命令FIFO 40中的多個(gè)條目。在此實(shí)施例中,LP命令FIFO 40中的 每一個(gè)條目都可包括用于命令的存儲(chǔ)器,以及產(chǎn)出比特(yield bit)(“Y”)。如果為給定命令設(shè)置了產(chǎn)出比特,則可以在處理給定命令之后中斷對(duì)命令的處理。如果產(chǎn)出比特被清除,則處理可以不被中斷。產(chǎn)出比特可以是對(duì)LP命令FIFO 40的PIO寫(xiě)入的PIO數(shù)據(jù)的一部分。在其他實(shí)施例中,可以使用其他指示(例如,帶有設(shè)置和清除的狀態(tài)的相反意義的比特,多比特值等等)。此外,其他實(shí)施例還可以使用FIFO 40中的單獨(dú)的命令來(lái)指出可中斷性。SP,可以定義這樣的命令其操作是準(zhǔn)許FMI控制電路40中斷來(lái)自FIFO 40的處理,以處理來(lái)自FIFO 41的命令,如果有這樣的命令的話。如果在FIFO 41中沒(méi)有命令正在等待處理,則FIFO 40中的處理可以繼續(xù)下一命令。在此實(shí)施例中,響應(yīng)于中斷對(duì)LP命令FIFO 40中的命令的處理以處理HP命令FIFO 41中的命令,F(xiàn)MI控制電路42可以被配置成設(shè)置寄存器51中的HPE比特。一旦設(shè)置了 HPE比特,F(xiàn)MI控制電路42可以被配置成處理來(lái)自HP命令FIFO 41的命令(如果有的話),但是可以不處理來(lái)自LP命令FIFO 40的命令,直到HPE比特被清除。FMI控制電路42可以不清除HPE比特,而是軟件可以通過(guò)寫(xiě)入寄存器51來(lái)達(dá)到這一目的。如此,如果在軟件完成填充命令FIF041之前FMI控制電路42排空HP命令FIFO 41 (例如,由于軟件的中斷,在將命令傳輸?shù)介W速存儲(chǔ)器接口單元30時(shí)的延遲,等等),F(xiàn)MI控制電路42可以不過(guò)早地返回到對(duì)來(lái)自LP命令FIFO 40的命令的處理。另外,一旦完成高優(yōu)先級(jí)命令序列,軟件就可以讀取LP命令FIFO 40,以確定較低優(yōu)先級(jí)命令序列在哪里被中斷。在某些實(shí)施例中,軟件也可以寫(xiě)入寄存器51以設(shè)置HPE比特。這樣做可以使FMI控制電路42在下一邊界處中斷對(duì)LP命令FIFO 40的處理(如Y比特所示)。這樣的操作可以允許軟件停止對(duì)LP命令FIFO 40的處理,并可以允許軟件檢查L(zhǎng)P命令FIFO 40的狀態(tài)。類(lèi)似地,軟件可以向HP命令FIFO 41寫(xiě)入等待命令(或不會(huì)對(duì)閃速存儲(chǔ)器接口 30或控制寄存器50的配置產(chǎn)生變化的其他命令),該命令可以使FMI控制電路42在適當(dāng)?shù)狞c(diǎn)中斷對(duì)來(lái)自LP命令FIFO 40的命令的處理。如上文所提及的,宏命令可以在命令FIFO 40或41中的一個(gè)中,而FMI控制電路42可以響應(yīng)于宏命令來(lái)執(zhí)行來(lái)自宏存儲(chǔ)器44的命令。在其他實(shí)施例中,宏命令可以作為PIO操作傳輸?shù)紽MI控制電路42。在再一些其他實(shí)施例中,可以在命令FIFO 40或41或PIO操作中遇到宏命令。宏命令可包括宏存儲(chǔ)器中的起始地址,以及指出要從宏存儲(chǔ)器44中讀取的字的數(shù)量的字計(jì)數(shù)。FMI控制電路42可以在讀取相應(yīng)命令FIFO 40或41中的下一命令之前(在宏命令之后)執(zhí)行宏中的命令。在一個(gè)實(shí)施例中,除命令之外,宏中的字還可包括操作數(shù)。其他實(shí)施例可以使用命令計(jì)數(shù),而并非字計(jì)數(shù)。如上文所提及的,宏命令也可以包括循環(huán)計(jì)數(shù),以及宏可以被迭代由循環(huán)計(jì)數(shù)所指出的次數(shù)。從命令FIFO 40和41中,以及從操作數(shù)FIFO 46中讀取字可包括FMI控制電路42從FIFO中刪除那些字。另一方面,從宏存儲(chǔ)器44中讀取字可以不涉及刪除字,以便宏指令可以被重復(fù)地執(zhí)行。FMC 48可以響應(yīng)于FMC控制寄存器50的內(nèi)容,執(zhí)行存儲(chǔ)器傳輸,將從閃速存儲(chǔ)器設(shè)備28A-28B中讀取的數(shù)據(jù)寫(xiě)入到緩沖器52A-52B中,或?qū)木彌_器52A-52B中讀取的數(shù)據(jù)寫(xiě)入到閃速存儲(chǔ)器設(shè)備28A-28B中??梢砸云古曳绞絹?lái)使用緩沖器52A-52B,其中,當(dāng)緩沖器52A-52B中的一個(gè)正在被用數(shù)據(jù)填充時(shí),另一個(gè)緩沖器正在被排出。例如,從閃速存儲(chǔ)器設(shè)備28A-28B中的讀取可包括當(dāng)FMC 48正在填充緩沖器52A-52B中的一個(gè)時(shí),另一個(gè)緩 沖器52A-52B正在被對(duì)存儲(chǔ)器12執(zhí)行DMA操作的CDMA控制器20排出。向閃速存儲(chǔ)器設(shè)備28A-28B的寫(xiě)入可包括當(dāng)CDMA控制器20利用數(shù)據(jù)填充緩沖器52A-52B中的一個(gè)時(shí),F(xiàn)MC48排出另一個(gè)緩沖器52A-52B。ECC單元可以為向閃速存儲(chǔ)器設(shè)備28A-28B的寫(xiě)入生成ECC數(shù)據(jù),并可以檢查對(duì)于從閃速存儲(chǔ)器設(shè)備28A-28B中讀取的ECC數(shù)據(jù)?,F(xiàn)在轉(zhuǎn)向圖3,示出了 FMI控制電路42的一個(gè)實(shí)施例響應(yīng)于從CDMA控制器20接收到PIO操作的操作流程圖。盡管為便于理解以特定順序示出了各框,但是也可以使用其他順序。各框可以以FMI控制電路42中的組合邏輯并行地執(zhí)行。例如,圖3中所示出的判斷框可以是獨(dú)立的,并可以并行地執(zhí)行。各框、各框的組合,和/或流程圖作為整體可以在多個(gè)時(shí)鐘周期上被流水線化。FMI控制電路42可以被配置成實(shí)現(xiàn)圖3中所示出的操作。如果PIO寫(xiě)入是指向LP命令FIFO 40的(判斷框60,“是”分支),則FMI控制電路42可以被配置成利用來(lái)自PIO寫(xiě)入的數(shù)據(jù)更新LP命令FIFO 40中的下一條目(框62)。即,來(lái)自PIO寫(xiě)入的數(shù)據(jù)可以被附加到LP命令FIFO 40的尾部。如上文所提及的,此實(shí)施例中的PIO數(shù)據(jù)可以是命令和產(chǎn)出比特。如果PIO寫(xiě)入是指向HP命令FIFO 41的(判斷框61,“是”分支),則FMI控制電路42可以被配置成利用來(lái)自PIO寫(xiě)入的數(shù)據(jù)更新HP命令FIFO41中的下一條目(框63)。即,來(lái)自PIO寫(xiě)入的數(shù)據(jù)可以被附加到HP命令FIFO 41的尾部。如上文所提及的,此實(shí)施例中的PIO數(shù)據(jù)可以是命令。如果PIO寫(xiě)入是指向宏存儲(chǔ)器44的(判斷框64,“是”分支),則FMI控制電路42可以被配置成利用來(lái)自PIO寫(xiě)入的數(shù)據(jù)更新宏存儲(chǔ)器44中的被尋址條目(框66)。如果PIO寫(xiě)入是指向操作數(shù)FIFO 46的(判斷框68,“是”分支),則FMI控制電路42可以被配置成利用來(lái)自PIO寫(xiě)入的數(shù)據(jù)更新操作數(shù)FIFO 46中的下一條目(框70)。即,來(lái)自PIO寫(xiě)入的數(shù)據(jù)可以被附加到操作數(shù)FIFO 46的尾部。如果PIO寫(xiě)入是指向FMC控制寄存器50內(nèi)的寄存器的(或在各實(shí)施例中,閃速存儲(chǔ)器接口單元30中的其他寄存器一判斷框72,“是”分支),則FMI控制電路42可以被配置成更新地址寄存器(框74)。接下來(lái)參看圖4,示出了表76,該表示出了可被閃速存儲(chǔ)器接口單元30的一個(gè)實(shí)施例,更具體而言FMI控制電路42,支持的示例性命令集。其他實(shí)施例可以支持任何其他命令集,包括圖4中所示出的命令子集,這些命令及其他命令的子集,和/或這些命令及其他命令的超集。該表包括列出了每一個(gè)命令的“命令”列,指出給定命令的操作數(shù)的“操作數(shù)”列,以及指出被命令占據(jù)的命令FIFO 40或41中的字的數(shù)量的“字?jǐn)?shù)”列。命令的格式可以在各實(shí)施例之間不同。例如,在一個(gè)實(shí)施例中,每一個(gè)命令都可包括操作碼字節(jié),該操作碼字節(jié)標(biāo)識(shí)命令集內(nèi)的命令(即,表76中的每一個(gè)條目都可以通過(guò)不同的操作碼編碼來(lái)標(biāo)識(shí))。構(gòu)成命令的字中的其余字節(jié)可以被用來(lái)指定命令的操作數(shù)。在各實(shí)施例中,命令可以被存儲(chǔ)在命令FIFO 40或41或宏存儲(chǔ)器44中。地址命令(表76中的addrO到addr7)可以被用來(lái)在到閃速存儲(chǔ)器設(shè)備28A-28B的接口(簡(jiǎn)稱(chēng)為閃速存儲(chǔ)器接口)上發(fā)出地址字節(jié)?!癮ddr”之后的數(shù)字指出傳輸?shù)牡刂纷止?jié)的數(shù)量,從閃速存儲(chǔ)器接口上的地址的字節(jié)O開(kāi)始。在一個(gè)實(shí)施例中,F(xiàn)MI控制電路42可以被配置成在執(zhí)行下一命令之前暫停,直到傳輸完地址字節(jié)。在一個(gè)實(shí)施例中,addrX命令可以相當(dāng)于編程下列FMC控制寄存器50 :帶有地址字節(jié)的一個(gè)或多個(gè)地址寄存器,以及在一個(gè)或多個(gè)寄存器中編程遷移數(shù)以及讀/寫(xiě)模式。響應(yīng)于讀/寫(xiě)模式,F(xiàn)MC 48可以在閃速存儲(chǔ)器接口上傳輸?shù)刂纷止?jié),并可以在FMC控制寄存器50內(nèi)的狀態(tài)寄存器中發(fā)出地址完成 (done)中斷信號(hào)。另外,addrX命令還可以包括狀態(tài)寄存器中的等待以及清除以及地址完成中斷。addrO命令可以不同于addrl到addr7命令,在于地址寄存器以及地址轉(zhuǎn)移數(shù)字寄存器不是編程的。相反,這些寄存器可以使用諸如下面所描述的load_next_Word或load_from_fifo命令之類(lèi)的其他命令來(lái)預(yù)編程。cmd命令可以被用來(lái)在閃速存儲(chǔ)器接口上發(fā)送閃速存儲(chǔ)器接口命令。在一個(gè)實(shí)施例中,閃速存儲(chǔ)器接口命令是一個(gè)字節(jié)。相應(yīng)地,cmd命令的操作數(shù)可以是可以在閃速存儲(chǔ)器接口上傳輸?shù)拿钭止?jié)。FMI控制電路42可以被配置成暫停,直到在閃速存儲(chǔ)器接口上完成cmd命令。cmd命令可以相當(dāng)于利用命令字節(jié)來(lái)編程FMC控制寄存器50中的命令寄存器;設(shè)置另一 FMC控制寄存器50中的命令模式比特;以及FMC控制寄存器50內(nèi)的狀態(tài)寄存器中的等待以及清除cmd完成中斷。響應(yīng)于命令模式比特的設(shè)置,F(xiàn)MC 48可以被配置成在閃速存儲(chǔ)器接口上傳輸命令字節(jié),并可以將cmd完成中斷寫(xiě)入到狀態(tài)寄存器。enable_chip命令可以被用來(lái)寫(xiě)入FMC控制寄存器50的芯片啟用寄存器,該命令可以使FMC 48基于芯片啟用操作數(shù)來(lái)驅(qū)動(dòng)閃速存儲(chǔ)器接口上的芯片啟用信號(hào)。xfer_page命令可以被用來(lái)啟動(dòng)去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的頁(yè)面?zhèn)鬏敗m憫?yīng)于xfer_page命令,F(xiàn)MI控制電路42可以被配置成設(shè)置FMC控制寄存器50中的起始比特,并等待和清除另一 FMC控制寄存器50中的頁(yè)面完成中斷比特。響應(yīng)于起始比特,F(xiàn)MC48可以被配置成執(zhí)行指定的頁(yè)面?zhèn)鬏?,并在完成之后設(shè)置頁(yè)面完成中斷??梢杂斜籉MI控制電路42支持的各種同步命令。一般而言,同步命令可以被用來(lái)指定FMI控制電路42將要監(jiān)測(cè)的事件,并可以使FMI控制電路42在執(zhí)行下一命令之前等待事件的發(fā)生(即,等到FMI控制電路42檢測(cè)到事件)。如此,同步命令可以允許命令序列被預(yù)編程,并且同步命令可以幫助確保正確的時(shí)間選擇。例如,多個(gè)頁(yè)面?zhèn)鬏斂梢允穷A(yù)編程的,以及同步命令可以被用來(lái)對(duì)于下一頁(yè)延遲對(duì)FMC控制寄存器50的編程,直到當(dāng)前頁(yè)面不再需要寄存器(例如,對(duì)于讀取,在來(lái)自頁(yè)面的最后一個(gè)數(shù)據(jù)被加載到緩沖器52A-52B中之后)。在圖4的實(shí)施例中,同步命令可包括wait_for_rdy、pause、timed_wait,以及wait_for_int。wait_for_rdy命令可以被用來(lái)在頁(yè)面?zhèn)鬏斊陂g監(jiān)測(cè)閃速存儲(chǔ)器設(shè)備28A-28B的狀態(tài)。wait_for_rdy命令可包括等待以及清除FMC控制寄存器50的狀態(tài)寄存器中的特定“完成”中斷(例如,頁(yè)面完成);利用掩碼操作數(shù)(mask operand)來(lái)掩碼狀態(tài)寄存器中的狀態(tài)字節(jié),以及將掩碼的狀態(tài)字節(jié)與條件操作數(shù)進(jìn)行比較。如果掩碼的狀態(tài)字節(jié)匹配條件操作數(shù),則FMI控制電路42可以被配置成執(zhí)行下一命令。否則,F(xiàn)MI控制電路42可以發(fā)出中斷信號(hào)(例如,在各實(shí)施例中,向IOP 32或處理器22),并可以停止執(zhí)行額外的命令,直到IOP 32/處理器22服務(wù)于中斷。pause命令可以被用來(lái)暫停FMI控制電路42對(duì)命令的執(zhí)行。FMI控制電路42可以停止執(zhí)行命令,直到由在IOP 32/處理器22上執(zhí)行的軟件專(zhuān)門(mén)取消暫停,在FMC控制寄存器50中的一個(gè)中寫(xiě)入指定的啟用比特。FMI控制電路42可以被配置成通過(guò)timed_wait命令暫停并在若干個(gè)時(shí)鐘周期之后恢復(fù)。時(shí)鐘周期的數(shù)量被指定為timed_wait命令的操作數(shù)。在某些實(shí)施例中,timed_wait命令可以被用來(lái)減慢閃速存儲(chǔ)器接口單元30,因?yàn)槭褂妹頕IFO 40、宏存儲(chǔ)器44,以及操作數(shù)FIFO 46的可能的執(zhí)行可能超出閃速存儲(chǔ)器設(shè)備28A-28B執(zhí)行活動(dòng)的速率。 wait_for_int命令可以被用來(lái)使FMI控制電路42等待指定的中斷值。操作數(shù)可以使用“bit”操作數(shù)來(lái)指定要等待的中斷(irq),以及要等待的irq比特的狀態(tài)(例如,設(shè)置或清除)。send_interrupt命令可以被用來(lái)向I0P32或處理器22發(fā)送指定的中斷。send_interrupt命令的操作數(shù)可以指定要寫(xiě)入到FMC控制寄存器50的中斷碼寄存器中的中斷碼,該中斷碼可以使中斷被發(fā)送。load_next_word和load_from_fifo命令可以被用來(lái)編程FMC控制寄存器50中的各種寄存器。這些命令的操作數(shù)中的一個(gè)是要被寫(xiě)入的控制寄存器的寄存器地址。響應(yīng)于load_next_word命令,F(xiàn)MI控制電路42可以從命令FIFO 40中讀取下一字并將該字寫(xiě)入到被尋址的寄存器中。響應(yīng)于load_from_fifo命令,F(xiàn)MI控制電路42可以被配置成讀取操作數(shù)FIF046的開(kāi)頭處的字并將該字寫(xiě)入到被尋址的寄存器中。宏命令可以被用來(lái)使FMI控制電路42從宏存儲(chǔ)器44中讀取命令。宏命令包括地址操作數(shù)、長(zhǎng)度操作數(shù),以及循環(huán)計(jì)數(shù)操作數(shù)。地址可以標(biāo)識(shí)要從宏存儲(chǔ)器44中讀取的第一字,以及長(zhǎng)度可以標(biāo)識(shí)宏的長(zhǎng)度(例如,以命令的數(shù)量或字的數(shù)量表示)。在一個(gè)實(shí)施例中,長(zhǎng)度是字的數(shù)量。循環(huán)計(jì)數(shù)可以指出要被執(zhí)行的宏的迭代數(shù)量。在一個(gè)實(shí)施例中,循環(huán)計(jì)數(shù)操作數(shù)可以比迭代的數(shù)量小I (例如,循環(huán)計(jì)數(shù)O是一次迭代,循環(huán)計(jì)數(shù)I是兩次迭代等等)。一旦宏完成,就可以讀取下一命令FIFO 42 (即,在宏中可以沒(méi)有返回命令)。輪詢(xún)命令可以是輪詢(xún)FMC控制寄存器50中的任何寄存器,以查找指定的值(在使用掩碼字段掩碼從寄存器中讀取的值之后)。FMI控制電路42可以輪詢(xún)寄存器,直到檢測(cè)到指定的值,然后前進(jìn)到下一命令。如上面的描述中所指出的,作為執(zhí)行某些命令的一部分,F(xiàn)MI控制電路42可以監(jiān)測(cè)FMC控制寄存器50內(nèi)的一個(gè)或多個(gè)狀態(tài)寄存器中所記錄的各種中斷。FMI控制電路42可以清除中斷,并完成相應(yīng)命令。在命令FIFO 40中沒(méi)有命令的情況下,中斷可以被轉(zhuǎn)發(fā)到I0P32/處理器22 (如果啟用的話)。相應(yīng)地,對(duì)FMC控制寄存器50的PIO寫(xiě)入操作以及對(duì)IOP 32/處理器22的中斷可以是執(zhí)行去往/來(lái)自閃速存儲(chǔ)器設(shè)備28A-28B的存儲(chǔ)器傳輸?shù)牧硪环N機(jī)制。
現(xiàn)在轉(zhuǎn)向圖5,示出了 FMI控制電路42的一個(gè)實(shí)施例處理來(lái)自LP命令隊(duì)列40的命令的操作的流程圖。盡管為便于理解以特定順序示出了各框,但是也可以使用其他順序。各框可以以FMI控制電路42中的組合邏輯并行地執(zhí)行。各框、各框的組合,和/或流程圖作為整體可以在多個(gè)時(shí)鐘周期上被流水線化。FMI控制電路42可以被配置成實(shí)現(xiàn)圖5中所示出的操作。 FMI控制電路42可以被配置成從LP命令FIFO 40讀取命令(框80 )。如果命令不是宏命令(判斷框82,“否”分支),則FMI控制電路42可以被配置成執(zhí)行命令(框84)。一旦命令完成,并且如果設(shè)置了產(chǎn)出(Y)比特并且在HP命令隊(duì)列41中有有效命令(判斷框85,“是”分支),則FMI控制電路42可以被配置成設(shè)置寄存器51中的HPE比特,并退出到HP命令處理(例如,到圖6)(框87)。類(lèi)似地,在某些實(shí)施例中,F(xiàn)MI控制電路42可以被配置成響應(yīng)于HPE比特被設(shè)置(例如,通過(guò)軟件寫(xiě)入寄存器51)退出到HP命令處理(或至少停止低優(yōu)先級(jí)處理)。否則(判斷框84,“否”分支),F(xiàn)MI控制電路42可以被配置成檢查用于確定宏是否已經(jīng)到達(dá)其結(jié)尾的字計(jì)數(shù)。如果命令不是宏的一部分,則字計(jì)數(shù)可以是零(判斷框86,“否”分支)。FMI控制電路42可以被配置成檢查與宏命令相關(guān)聯(lián)的循環(huán)計(jì)數(shù)。如果命令不 是宏的一部分,則循環(huán)計(jì)數(shù)可以是零(判斷框95,“否”分支)。FMI控制電路42可以被配置成確定在命令FIFO 40中是否有另一有效命令(判斷框88)。S卩,F(xiàn)MI控制電路42可以被配置成確定命令FIFO 40是否是空的。如果有另一有效命令(判斷框88,“是”分支),則FMI控制電路42可以被配置成讀取并處理下一命令。否則,F(xiàn)MI控制電路42的命令處理電路可以空閑,直到向命令FIFO 40寫(xiě)入另一有效命令(判斷框88,“否”分支)。如果命令是宏命令(判斷框82,“是”分支),則FMI控制電路42可以被配置成將字計(jì)數(shù)初始化到宏命令的長(zhǎng)度操作數(shù),并將循環(huán)計(jì)數(shù)初始化到宏命令的循環(huán)計(jì)數(shù)操作數(shù)(框90)。FMI控制電路42也可以從宏存儲(chǔ)器44中讀取命令(框92)。具體而言,在此情況下,F(xiàn)MI控制電路42可以從宏存儲(chǔ)器44中的作為宏命令的地址操作數(shù)所提供的地址讀取第一字。FMI控制電路42可以被配置成執(zhí)行命令(框84 ),并可以被配置成檢查字計(jì)數(shù)(在此情況下,可以沒(méi)有Y比特,如此判斷框85可以導(dǎo)致“否”分支)。字計(jì)數(shù)可以大于零(判斷框86,“是”分支),以及FMI控制電路42可以被配置成減少字計(jì)數(shù),并從宏存儲(chǔ)器44中讀取下一命令(例如,通過(guò)增大地址)(框94和96)。FMI控制電路42可以被配置成處理下一命令(返回到圖5的流程圖中的判斷框82)。如果字計(jì)數(shù)是零(判斷框86,“否”分支),則FMI控制電路42可以被配置成檢查循環(huán)計(jì)數(shù)。如果循環(huán)計(jì)數(shù)大于零(判斷框95,“是”分支),則將執(zhí)行宏的另一次迭代。FMI控制電路42可以減少循環(huán)計(jì)數(shù)(框97),重新初始化字計(jì)數(shù)和宏地址(框99),并從宏存儲(chǔ)器44中讀取下一命令(即,宏的第一命令)(框96)。如果字計(jì)數(shù)和循環(huán)計(jì)數(shù)兩者都是零(判斷框86和5,“否”分支),則宏完成,以及FMI控制電路42可以檢查命令隊(duì)列40中的下一有效命令(判斷框88)。值得注意的是,由于檢查每一個(gè)命令是否是宏命令,因此宏命令也可以存儲(chǔ)在宏存儲(chǔ)器44中。相應(yīng)地,宏指令可以是“嵌套”的,雖然要執(zhí)行的最后一個(gè)宏返回到命令FIFO40,如此,在宏指令不返回到調(diào)用它們的宏指令的意義上沒(méi)有正確的嵌套。圖6是示出了 FMI控制電路42的一個(gè)實(shí)施例處理來(lái)自HP命令隊(duì)列41的命令的操作的流程圖。即,如圖6所示的處理可以響應(yīng)于如上文參考圖5所討論的退出LP處理而啟動(dòng)(框87)。盡管為便于理解以特定順序示出了各框,但是也可以使用其他順序。各框可以以FMI控制電路42中的組合邏輯并行地執(zhí)行。各框、各框的組合,和/或流程圖作為整體可以在多個(gè)時(shí)鐘周期上被流水線化。FMI控制電路42可以被配置成實(shí)現(xiàn)圖6中所示出的操作。FMI控制電路42可以被配置成從HP命令FIFO 40讀取命令(框180)。如果命令不是宏命令(判斷框182,“否”分支),則FMI控制電路42可以被配置成執(zhí)行命令(框184)。一旦完成命令,F(xiàn)MI控制電路42可以被配置成檢查用于確定宏是否已經(jīng)到達(dá)其結(jié)尾的字計(jì)數(shù)。如果命令不是宏的一部分,則字計(jì)數(shù)可以是零(判斷框186,“否”分支)。FMI控制電路42可以被配置成檢查與宏命令相關(guān)聯(lián)的循環(huán)計(jì)數(shù)。如果命令不是宏的一部分,則循環(huán)計(jì)數(shù)可以是零(判斷框195,“否”分支)。FMI控制電路42可以被配置成確定在HP命令FIFO 41中是否有另一有效命令(判斷框188)。S卩,F(xiàn)MI控制電路42可以被配置成確定HP命令FIFO41是否是空的。如果有另一有效命令(判斷框188,“是”分支),則FMI控制電路42可以被配置成讀取并處理下一命令。否則,F(xiàn)MI控制電路42可以檢查HPE比特是否被清除(判斷 框198)。如果是,則FMI控制電路42可以返回到LP命令處理(判斷框198,“是”分支)。如果不是(判斷框198,“否”分支),則FMI控制電路42可以空閑,直到在HP命令FIFO 41中出現(xiàn)有效命令或者HPE比特被清除。如果命令是宏命令(判斷框182,“是”分支),則FMI控制電路42可以被配置成將字計(jì)數(shù)初始化到宏命令的長(zhǎng)度操作數(shù),并將循環(huán)計(jì)數(shù)初始化到宏命令的循環(huán)計(jì)數(shù)操作數(shù)(框190)。FMI控制電路42也可以從宏存儲(chǔ)器44中讀取命令(框192)。具體而言,在此情況下,F(xiàn)MI控制電路42可以從宏存儲(chǔ)器44中的作為宏命令的地址操作數(shù)所提供的地址讀取第一字。FMI控制電路42可以被配置成執(zhí)行命令(框184),并可以被配置成檢查字計(jì)數(shù)。字計(jì)數(shù)可以大于零(判斷框186,“是”分支),以及FMI控制電路42可以被配置成減少字計(jì)數(shù),并從宏存儲(chǔ)器44中讀取下一命令(例如,通過(guò)增大地址)(框194和196)。FMI控制電路42可以被配置成處理下一命令(返回到圖6的流程圖中的判斷框182)。如果字計(jì)數(shù)是零(判斷框186,“否”分支),則FMI控制電路42可以被配置成檢查循環(huán)計(jì)數(shù)。如果循環(huán)計(jì)數(shù)大于零(判斷框195,“是”分支),則執(zhí)行宏的另一次迭代。FMI控制電路42可以減少循環(huán)計(jì)數(shù)(框197),重新初始化字計(jì)數(shù)和宏地址(框199),并從宏存儲(chǔ)器44中讀取下一命令(B卩,宏的第一命令)(框196)。如果字計(jì)數(shù)和循環(huán)計(jì)數(shù)兩者都是零(判斷框186和195,“否”分支),則宏完成,以及FMI控制電路42可以檢查HP命令FIFO 41中的下一有效命令(判斷框188)?,F(xiàn)在轉(zhuǎn)向圖7,該圖示出了使用宏指令來(lái)執(zhí)行向閃速存儲(chǔ)器設(shè)備28A或28B的多個(gè)頁(yè)面寫(xiě)入的示例的框圖。示出了宏存儲(chǔ)器44的內(nèi)容,包括命令的三個(gè)部分。在宏存儲(chǔ)器地址O和N-I之間,存儲(chǔ)了完成向前一頁(yè)的寫(xiě)入的宏100的N個(gè)字。在宏存儲(chǔ)器地址N和N+M-1之間,存儲(chǔ)了啟動(dòng)向下一頁(yè)的寫(xiě)入的宏102的M個(gè)字。在宏存儲(chǔ)器地址N+M和N+M+P-1之間,存儲(chǔ)了完成向存儲(chǔ)器的寫(xiě)入最后一頁(yè)的宏104的P個(gè)字。圖7示出了 LP命令FIFO 40中的一組命令,LP命令FIFO 40的頂部處的FIFO的首部以及按順序沿著LP命令FIFO 40的FIFO中的隨后的命令如圖7所示。第一命令是宏N,Mo命令調(diào)用宏104,從字N開(kāi)始,并執(zhí)行M字(S卩,如圖6所示的宏102)。如此,向第一頁(yè)面的寫(xiě)入被初始化。隨后的頁(yè)面寫(xiě)入可以使用宏0,Ν+Μ命令來(lái)執(zhí)行。這些命令使宏100和宏102被執(zhí)行??梢酝瓿上蚯耙豁?yè)的寫(xiě)入(宏100),并向下一頁(yè)的寫(xiě)入可以啟動(dòng)(宏102)。可以使用宏0,N+M+P命令來(lái)寫(xiě)入最后一頁(yè)。此命令使宏100、10、以及104被執(zhí)行,以及完成向第二到最后一頁(yè)的寫(xiě)入(宏100),執(zhí)行向最后一頁(yè)的寫(xiě)入(宏102),完成向最后一頁(yè)的寫(xiě)入,并關(guān)閉閃速存儲(chǔ)器設(shè)備28A或28B (宏104)。在此示例中,每一個(gè)宏命令的循環(huán)計(jì)數(shù)操作數(shù)都是零(一次迭代)。然而,在圖7中第一示例下面所示的另一示例中,循環(huán)計(jì)數(shù)操作數(shù)可以被用來(lái)使命令隊(duì)列中的命令甚至更加有效。對(duì)于第一頁(yè)面的宏N,M命令以及對(duì)于最后一個(gè)頁(yè)面的宏0,Ν+Μ+Ρ命令的循環(huán)計(jì)數(shù)仍可以是零,指定一次迭代。然而,寫(xiě)入操作的中間頁(yè)面全部可以使用一個(gè)宏命令(宏0,N+M)來(lái)實(shí)現(xiàn),循環(huán)計(jì)數(shù)操作數(shù)等于頁(yè)面計(jì)數(shù)(C)減去3。循環(huán)計(jì)數(shù)是C-3以考慮第一以及最后一頁(yè),以及在此實(shí)施例中循環(huán)計(jì)數(shù)操作數(shù)比所希望的迭代次數(shù)小I的事實(shí)。宏100、102、以及104示出了,通過(guò)宏存儲(chǔ)器44中的宏的仔細(xì)的排列,可以產(chǎn)生稠密的并且有效的宏。宏可以使用load_from_fifo命令來(lái)對(duì)于每一個(gè)頁(yè)面寫(xiě)入操作數(shù)使用不同的操作數(shù),在啟動(dòng)LP命令FIFO 40中的命令之前,每一個(gè)頁(yè)面的操作數(shù)都可以加載到操作數(shù)FIFO 46中。宏102中所包括的命令可以確定要被寫(xiě)入的地址,芯片啟用等等。宏100中所包 括的命令可包括Xfer_page以將前一頁(yè)傳輸?shù)酱鎯?chǔ)器,以及檢查錯(cuò)誤以及同步下一頁(yè)傳輸?shù)拿?可以通過(guò)宏102初始化)。宏104可包括最后的xfer_page命令,以及檢查錯(cuò)誤以及關(guān)閉作為寫(xiě)入的目標(biāo)的閃速存儲(chǔ)器設(shè)備的命令,激活活動(dòng)頁(yè)/區(qū)域和/或執(zhí)行為閃速存儲(chǔ)器設(shè)備所指定的任何其他操作?,F(xiàn)在轉(zhuǎn)向圖8,該圖示出了由IOP 32和/或處理器22執(zhí)行的flash碼(flashcode)的操作的流程圖。盡管為便于理解以特定順序示出了各框,但是也可以使用其他順序。flash碼可包括這樣的指令,當(dāng)由I0P32和/或處理器22執(zhí)行時(shí),可以實(shí)現(xiàn)圖8中所示出的操作。flash碼可以在集成電路10的操作期間的任何時(shí)間執(zhí)行。例如,flash碼可以被執(zhí)行以初始化閃速存儲(chǔ)器接口單元30。flash碼也可以在閃速存儲(chǔ)器30在空閑中但是將要被訪問(wèn)的任何時(shí)間執(zhí)行,以重新配置宏存儲(chǔ)器44中的宏指令,等等。flash碼可以將任何所需的宏指令下載到宏存儲(chǔ)器44 (框110)。如果已經(jīng)存儲(chǔ)在宏存儲(chǔ)器44中的宏指令是所希望的宏指令,或者如果沒(méi)有所希望的宏指令,則可以跳過(guò)框110。flash碼也可以下載要被命令或宏所使用的任何操作數(shù)(框112),如果沒(méi)有要下載的操作數(shù),則可以跳過(guò)框112。flash碼可以將要被執(zhí)行的命令下載到LP命令FIF040 (框114),命令的執(zhí)行可以在閃速存儲(chǔ)器接口單元30中開(kāi)始。將命令下載到LP命令FIF050可包括對(duì)于那些命令設(shè)置表示完成操作的一部分的Y比特,以便對(duì)于高優(yōu)先級(jí)命令的命令的中斷是準(zhǔn)許的并清除其他Y比特。如果額外的命令已準(zhǔn)備好供下載(判斷框116,“是”分支),并且那些命令比當(dāng)前正在由閃速存儲(chǔ)器接口單元30執(zhí)行的命令有更高的優(yōu)先級(jí)(判斷框120,“是”分支),則flash碼可以將額外的命令下載到HP命令FIF041 (框122)中。否則(判斷框120,“否”分支),flash碼可以將命令下載到LP命令FIFO 40 (框114)中。如果有新操作數(shù)或宏指令準(zhǔn)備好供下載(判斷框118,“是”分支),則flash碼可以返回到框110和/或112以下載它們。另外,在完成HP命令之后,flash碼可以重置寄存器51中的HPE比特(圖8中未示出)。系統(tǒng)和計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)接下來(lái)參看圖9,該圖示出了系統(tǒng)150的一個(gè)實(shí)施例的框圖。在所示出的實(shí)施例中,系統(tǒng)150至少包括耦合到一個(gè)或多個(gè)外圍設(shè)備154和外部存儲(chǔ)器158的集成電路10(從圖I)的一個(gè)實(shí)例。外部存儲(chǔ)器158可包括存儲(chǔ)器12和/或閃速存儲(chǔ)器28A-28B。還提供了電源156,該電源156向集成電路10提供電源電壓以及向存儲(chǔ)器158和/或外圍設(shè)備154提供一個(gè)或多個(gè)電源電壓。在某些實(shí)施例中,可以包括集成電路10的一個(gè)以上的實(shí)例(也可以包括一個(gè)以上的外部存儲(chǔ)器158)。外圍設(shè)備154可包括任何所需的電路,取決于系統(tǒng)150的類(lèi)型。例如,在一個(gè)實(shí)施例中,系統(tǒng)150可以是移動(dòng)設(shè)備(例如,個(gè)人數(shù)字助理(PDA)、智能電話等等),以及外圍設(shè)備154可包括用于諸如wifi、藍(lán)牙、蜂窩式、全球定位系統(tǒng)等等之類(lèi)的各種類(lèi)型的無(wú)線通信的設(shè)備。外圍設(shè)備154也可以包括另外的存儲(chǔ)器,包括RAM存儲(chǔ)器、固態(tài)存儲(chǔ)器,或磁盤(pán)存儲(chǔ)器。外圍設(shè)備154可包括諸如顯示屏幕之類(lèi)的用戶(hù)界面設(shè)備,包括觸摸顯示屏幕或多點(diǎn)觸摸顯示屏幕,鍵盤(pán)或其他輸入設(shè)備,麥克風(fēng),揚(yáng)聲器等等。在其他實(shí)施例中,系統(tǒng)150可以是任何類(lèi)型的計(jì)算系統(tǒng)(例如,臺(tái)式個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、工作站,迷你電腦等等)。 外部存儲(chǔ)器158可包括任何類(lèi)型的存儲(chǔ)器。例如,外部存儲(chǔ)器158可以是SRAM、諸如同步DRAM (SDRAM)之類(lèi)的動(dòng)態(tài)RAM (DRAM)、雙倍數(shù)據(jù)速率(DDR、DDR2、DDR3等等)SDRAM、RAMBUS DRAM等等。外部存儲(chǔ)器158可包括存儲(chǔ)器設(shè)備安裝在其上的一個(gè)或多個(gè)存儲(chǔ)器模塊,如單列直插存儲(chǔ)器模塊(SIMM)、雙列直插存儲(chǔ)器模塊(DIMM)等等。現(xiàn)在轉(zhuǎn)向圖10,該圖示出了計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)200的框圖。一般而言,計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)可包括在使用期間可被計(jì)算機(jī)訪問(wèn)以向計(jì)算機(jī)提供指令和/或數(shù)據(jù)的任何存儲(chǔ)介質(zhì)。例如,計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)可包括諸如磁性或光學(xué)介質(zhì)之類(lèi)的存儲(chǔ)介質(zhì),例如,盤(pán)(固定的或可移動(dòng)的)、磁帶、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或藍(lán)光。存儲(chǔ)介質(zhì)還可以包括易失性或非易失性存儲(chǔ)器介質(zhì),諸如可通過(guò)諸如通用串行總線(USB )接口、閃速存儲(chǔ)器接口( FMI )、串行外設(shè)接口( SPI)等等之類(lèi)的外圍接口訪問(wèn)的RAM(例如,同步動(dòng)態(tài) RAM (SDRAM)、Rambus DRAM (RDRAM)、靜態(tài) RAM (SRAM)、等等),ROM、閃速存儲(chǔ)器、非易失性存儲(chǔ)器(例如,閃速存儲(chǔ)器)。存儲(chǔ)介質(zhì)可包括微型機(jī)電系統(tǒng)(MEMS)。圖10中的計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)200可以存儲(chǔ)flash碼202,flash碼202可包括可由IOP 32和/或處理器22執(zhí)行的碼。flash碼202可包括這樣的指令,當(dāng)執(zhí)行時(shí),實(shí)現(xiàn)上文參考圖8所描述的操作。一般而言,計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)200可以存儲(chǔ)任何指令集,當(dāng)執(zhí)行時(shí),這些指令集實(shí)現(xiàn)圖8所示出的一部分操作或所有操作。此外,計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)200還可以存儲(chǔ)要下載到宏存儲(chǔ)器44中的一個(gè)或多個(gè)宏指令204,要下載到操作數(shù)FIFO 36中的一個(gè)或多個(gè)操作數(shù),和/或要下載到命令FIFO 40中的一個(gè)或多個(gè)命令。攜帶介質(zhì)可包括計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)介質(zhì)以及諸如有線或無(wú)線傳輸之類(lèi)的傳輸介質(zhì)。一旦完全理解了上面的說(shuō)明,很多變化和修改方案對(duì)于那些本領(lǐng)域的技術(shù)人員將變得顯而易見(jiàn)。下面的權(quán)利要求應(yīng)被解釋為包括所有這樣的變化和修改方案。
權(quán)利要求
1.一種控制集成電路中的外部接口的設(shè)備,所述設(shè)備包括 被配置成存儲(chǔ)第一多個(gè)命令的第一命令隊(duì)列,其中所述第一命令隊(duì)列進(jìn)一步被配置成存儲(chǔ)一個(gè)或多個(gè)指示,所述指示標(biāo)識(shí)所述第一多個(gè)命令內(nèi)的準(zhǔn)許中斷所述第一多個(gè)命令的點(diǎn);以及 被配置成存儲(chǔ)第二多個(gè)命令的第二命令隊(duì)列;以及 耦合到所述第一命令隊(duì)列和所述第二命令隊(duì)列的控制電路,以及其中所述控制電路被配置成響應(yīng)于檢測(cè)到所述第二命令隊(duì)列中的至少第二命令,中斷對(duì)被標(biāo)識(shí)為可中斷的點(diǎn)的第一命令處的所述第一多個(gè)命令的處理,以及其中所述控制電路被配置成響應(yīng)于所述中斷,啟動(dòng)對(duì)所述第二命令的處理。
2.如權(quán)利要求I所述的設(shè)備,其中,所述一個(gè)或多個(gè)指示是多個(gè)指示,每一個(gè)指示都與所述第一多個(gè)命令中的相應(yīng)的命令相關(guān)聯(lián),并表示所述第一多個(gè)命令在所述相應(yīng)的命令處是否可中斷。
3.如權(quán)利要求I所述的設(shè)備,還包括耦合到所述控制電路的多個(gè)控制寄存器,其中所述控制電路被配置成更新所述多個(gè)控制寄存器中的一個(gè),以指出所述第二多個(gè)命令正在被處理,以及其中所述控制電路被配置成阻止對(duì)所述第一多個(gè)命令的處理,直到所述多個(gè)控制寄存器中的所述一個(gè)再次被更新,以指出對(duì)所述第一多個(gè)命令的處理將要繼續(xù)。
4.一種集成電路,包括 被配置成耦合到一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的存儲(chǔ)器控制器; 被配置成耦合到一個(gè)或多個(gè)閃速存儲(chǔ)器設(shè)備的閃速存儲(chǔ)器接口單元,其中所述閃速存儲(chǔ)器接口單元包括如權(quán)利要求I所述的設(shè)備; 耦合到所述存儲(chǔ)器控制器以及所述閃速存儲(chǔ)器接口單元的直接存儲(chǔ)器訪問(wèn)(DMA)控制器,其中所述DMA控制器被配置成在所述存儲(chǔ)器控制器和所述閃速存儲(chǔ)器接口單元之間執(zhí)行DMA操作;以及 耦合到所述DMA控制器的處理器,其中,所述處理器被配置成控制所述閃速存儲(chǔ)器接口單元,以及其中來(lái)自所述處理器的通信通過(guò)所述DMA控制器和所述閃速存儲(chǔ)器接口單元之間的互連,穿過(guò)所述DMA控制器到所述閃速存儲(chǔ)器單元,以及其中所述互連也用于所述閃速存儲(chǔ)器接口單元和所述存儲(chǔ)器控制器之間的DMA操作中; 其中所述處理器被配置成向所述第一命令隊(duì)列寫(xiě)入第一多個(gè)命令,以控制所述閃速存儲(chǔ)器接口單元和所述一個(gè)或多個(gè)閃速存儲(chǔ)器設(shè)備之間的第一傳輸,以及其中所述處理器被配置成向所述第二命令隊(duì)列寫(xiě)入第二多個(gè)命令,以在完成所述第一傳輸之前控制所述閃速存儲(chǔ)器接口單元和所述一個(gè)或多個(gè)閃速存儲(chǔ)器設(shè)備之間的第二傳輸。
5.如權(quán)利要求4所述的集成電路,其中,所述第二傳輸比所述第一傳輸具有更高的優(yōu)先級(jí)。
6.如權(quán)利要求4所述的集成電路,其中,所述處理器進(jìn)一步被配置成檢測(cè)對(duì)優(yōu)先級(jí)不高于所述第一傳輸?shù)牡谌齻鬏數(shù)男枨蟛⒌谌鄠€(gè)命令加載到所述第一命令隊(duì)列中以執(zhí)行所述第三傳輸。
7.一種方法,包括 在接口控制器中處理來(lái)自第一命令隊(duì)列的命令,以在外部接口上執(zhí)行一個(gè)或多個(gè)傳輸;檢測(cè)與來(lái)自所述第一命令隊(duì)列的所述命令內(nèi)的第一命令相關(guān)聯(lián)的指示; 在檢測(cè)到所述指示的時(shí)間檢測(cè)第二命令隊(duì)列中的至少一個(gè)第二命令;以及 響應(yīng)于檢測(cè)到所述指示以及所述至少一個(gè)第二命令,中斷對(duì)來(lái)自所述第一命令隊(duì)列的命令的進(jìn)一步的處理,以處理來(lái)自所述第二命令隊(duì)列的命令。
8.如權(quán)利要求7所述的方法,還包括寫(xiě)入控制寄存器以指出所述第二命令隊(duì)列中的所述命令正在被處理。
9.如權(quán)利要求8所述的方法,還包括響應(yīng)于所述控制寄存器的內(nèi)容,阻止對(duì)來(lái)自所述第二命令隊(duì)列的命令的進(jìn)一步的處理。
10.如權(quán)利要求9所述的方法,還包括接收更新所述控制寄存器以準(zhǔn)許繼續(xù)處理所述第一命令隊(duì)列中的所述命令的寫(xiě)入操作。
11.如權(quán)利要求10所述的方法,其中,所述寫(xiě)入操作是由處理器所發(fā)出的。
12.—種集成電路中的方法,所述集成電路包括處理器和外部接口單元,所述外部接口單元包括第一命令隊(duì)列和第二命令隊(duì)列,其中,每一個(gè)命令隊(duì)列都被配置成存儲(chǔ)多個(gè)命令,以控制外部接口上的傳輸,所述方法包括 將第一多個(gè)命令加載到所述第一命令隊(duì)列中,其中所述第一多個(gè)命令的執(zhí)行導(dǎo)致所述外部接口上的第一傳輸; 檢測(cè)對(duì)比所述第一傳輸更高優(yōu)先級(jí)的傳輸?shù)男枨?;以? 將第二多個(gè)命令加載到所述第二命令隊(duì)列中,以執(zhí)行所述更高優(yōu)先級(jí)的傳輸,其中所述外部接口單元被配置成中斷對(duì)所述第一傳輸?shù)奶幚?,以?zhí)行所述更高優(yōu)先級(jí)的傳輸。
13.如權(quán)利要求12所述的方法,其中,將所述第一多個(gè)命令加載到所述第一命令隊(duì)列中包括加載可中斷所述第一多個(gè)命令的點(diǎn)的相應(yīng)指示。
14.如權(quán)利要求12所述的方法,進(jìn)一步包括 檢測(cè)對(duì)優(yōu)先級(jí)不高于所述第一傳輸?shù)牡谌齻鬏數(shù)男枨?;以? 將第三多個(gè)命令加載到所述第一命令隊(duì)列中以執(zhí)行所述第三傳輸。
全文摘要
本發(fā)明涉及用于外圍組件的高優(yōu)先級(jí)命令隊(duì)列。在一個(gè)實(shí)施例中,外圍組件可包括被配置成存儲(chǔ)一組命令以在外圍接口上執(zhí)行傳輸?shù)牡蛢?yōu)先級(jí)命令隊(duì)列,以及被配置成存儲(chǔ)第二組命令以在接口上執(zhí)行傳輸?shù)母邇?yōu)先級(jí)命令隊(duì)列。低優(yōu)先級(jí)隊(duì)列中的命令可包括標(biāo)識(shí)該組命令可以被中斷以執(zhí)行第二組命令的點(diǎn)的指示。控制電路可以耦合到低優(yōu)先級(jí)命令隊(duì)列,并可以響應(yīng)于指示中斷對(duì)來(lái)自低優(yōu)先級(jí)隊(duì)列的命令的處理,并可以處理來(lái)自高優(yōu)先級(jí)命令隊(duì)列的命令。
文檔編號(hào)G06F5/08GK102968289SQ20121031507
公開(kāi)日2013年3月13日 申請(qǐng)日期2012年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者D·P·羅斯, D·C·李 申請(qǐng)人:蘋(píng)果公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1