新四季網

用於外圍組件的命令隊列的製作方法

2023-08-08 09:29:51 2

專利名稱:用於外圍組件的命令隊列的製作方法
技術領域:
本發明涉及集成電路領域,更具體地,涉及集成電路中的外圍組件中的命令處理。
背景技術:
在具有有效數據帶寬(data bandwidth)的外圍接口控制器中,可能發生的挑戰之 一是將控制輸入從外部處理器提供給外圍接口控制器。典型地,與在外圍接口控制器和存 儲器之間傳送數據的連接到外圍控制器的相同內部接口用於提供來自外部處理器的控制 輸入(例如,通過向外圍接口控制器中的控制寄存器的一系列寫入)。在進行數據傳送時, 外圍接口的存儲器可以由於數據傳送而飽和。因此,為下一組數據傳送而設置的控制輸入 可以被有效鎖定,直到當前的數據傳送完成為止。在正在提供控制輸入的時間期間,由外圍 接口控制器控制的外部外圍接口可以是空閒的。一種用來減小外設到存儲器接口上的爭用的機構是要在外圍接口控制器中包括 處理器,其執行用於控制外圍接口控制器硬體的程序。然而,這種機構在多個方面都是昂貴 的在獲取處理器的金錢方面(由於分立組件或者可被併入外圍接口控制器設計中的知識 產權);在包括處理器時由外圍接口控制器佔據的空間方面;以及在處理器消耗的功率方 面。另外,所要執行的程序被存儲在系統存儲器中,因而指令取出可與外設到存儲器接口上 的數據傳送進行爭用。

發明內容
在一個實施例中,集成電路包括被配置為控制該集成電路的外部接口的外圍組 件。例如,外圍組件可以是諸如快閃記憶體接口單元的存儲器接口單元。在去向/來自外部接口 的數據傳送和到外圍組件的控制通信之間可以共享到外圍組件的內部接口。外圍組件可以 包括命令隊列,該命令隊列被配置為存儲用於執行接口上的傳送的一組命令。控制電路可 以耦接至該命令隊列,並且可以讀取命令,並與接口控制器進行通信以促成響應於該命令 而在接口上進行的傳送。在一個實施例中,在內部接口上沒有正在進行數據傳送時,可以將命令隊列中的 命令下載至命令隊列。可以獲得命令隊列中的命令以執行下一次傳送,例如,在當前傳送完 成時。在一些實施例中,即使面對內部接口上數據傳送和控制傳送之間的爭用,也可以有效 地使用內部接口和外部接口。


以下的詳細描述參照了附圖,現在簡單說明附圖。圖1是集成電路、存儲器和快閃記憶體的一個實施例的方框圖。圖2是圖1中所示的快閃記憶體接口的一個實施例的方框圖。圖3是圖示圖2中所示的快閃記憶體接口控制電路的一個實施例響應於接收到寫操作而 執行的操作的流程圖。
圖4是圖示快閃記憶體接口控制電路所支持的命令的一個實施例的表格。圖5是圖示圖2中所示的快閃記憶體接口控制電路的一個實施例響應於從命令先進先出 (FIFO)緩衝器中讀取命令而執行的操作的流程圖。圖6是宏存儲器的示例使用的方框圖。圖7是圖示由圖1中所示的處理器的一個實施例所執行的快閃記憶體接口代碼的一個實 施例的操作的流程圖。圖8是包括圖1中所示的裝置的系統的一個實施例的方框圖。圖9是計算機可存取的存儲介質的一個實施例的方框圖。
具體實施例方式儘管本發明容許各種修改和替代形式,但是在附圖中通過示例示出了本發明的具 體實施例,並且在此處將對其進行詳細描述。但是,應當理解,附圖及其詳細說明並非意欲 將本發明限制為所公開的特定形式,而是相反,其目的是要覆蓋落在由所附權利要求限定 的本發明的精神和範圍內的所有的修改、等同和替代。本文中所用的標題僅出於組織的目 的,而非意味著要用於限制說明的範圍。整個申請中所使用的詞語「可(may)」表示許可的意義(即,意味著具有......的潛在可能),而不是強制的意義(即,意味著必須......)。類似地,詞語「包括(include,including, includes) 」意味著包括但不限於.......各種單元、電路或者其它組件可被描述為「被配置來」執行一個或多個任務。在這 樣的上下文中,「被配置來」是對結構的寬泛描述,一般意為「具有在操作期間執行一個或者 多個任務的電路」。同樣地,即使在單元/電路/組件當前未開啟時,該單元/電路/組件 也可以被配置來執行任務。一般來說,形成與「被配置來」相對應的結構的電路可以包括硬 件電路和/或存儲可執行來實現操作的程序指令的存儲器。存儲器可包括易失性存儲器, 諸如靜態或者動態隨機存取存儲器,和/或非易失性存儲器,諸如光學或者磁碟存儲器、閃 存、可編程只讀存儲器等等。類似地,為了便於說明,各種單元/電路/組件可被描述為執 行一個或者多個任務。這樣的描述應當被理解為包括措詞「被配置來」。記載被配置來執行 一個或多個任務的單元/電路/組件明確地不是為了援引35 U. S. C §112第六款針對該單 元/電路/組件的解釋。現在參照圖1,圖1示出了耦接至外部存儲器12和一個或者多個快閃記憶體設備 28A-28B的集成電路10的一個實施例的方框圖。在所示的實施例中,集成電路10包括存 儲器控制器14、系統接口單元(SIU) 16、諸如組件18A-18B的一組外圍組件、快閃記憶體接口單元 30、中央DMA (CDMA)控制器20、包括1級(Li)高速緩存M的處理器22、2級(U)高速緩存 26和輸入/輸出(I/O)處理器(IOP) 32。存儲器控制器14耦接至存儲器12可以耦接到其 上的存儲器接口,並且存儲器控制器14還耦接至SIU 16。在所示的實施例中,CDMA控制器 20、L2高速緩存沈和處理器22 (通過L2高速緩存26)還耦接至SIU 16。L2高速緩存沈 耦接至處理器22,並且CDMA耦接至組件18A-18B、快閃記憶體接口單元30和IOP 32。一個或者多 個外圍組件18A-18B也可以耦接至外部接口,諸如外圍組件ISA0在其它的實施例中,其它 組件可以直接耦接至SIU 16 (例如,其它外圍組件)。CDMA控制器20可被配置為在存儲器12、各種外圍組件18A-18B和/或快閃記憶體接口 單元30之間執行DMA操作。各種實施例可以包括任意數量的外圍組件和/或通過CDMA控制器20耦接的快閃記憶體接口單元30。處理器22(更具體地,由處理器22所執行的指令)可編 程CDMA控制器20以執行DMA操作。各種實施例可以以各種方式對CDMA控制器20進行編 程。例如,DMA描述符可被寫入到存儲器12,其描述要被執行的DMA操作,並且CDMA控制器 20可以包括可編程來定位存儲器12中的DMA描述符的寄存器。可為DMA通道生成多個描 述符,並且可按照規定執行在描述符中描述的DMA操作。可替換地,CDMA控制器20可包括 可編程來描述要被執行的DMA操作的寄存器,並且對CDMA控制器20進行編程可包括對該 寄存器進行寫入。一般來講,DMA操作可以是由硬體執行的數據從源到目的地的傳送,該硬體與執行 指令的處理器分離。可以利用由處理器執行的指令來編程該硬體,但是,傳送自身獨立於處 理器中的指令執行而由該硬體執行。源和目的地中的至少一個可為存儲器。在一些實施 例中,存儲器可為系統存儲器(例如,存儲器12)、快閃記憶體設備28A-28B,或者可為集成電路10 中的內部存儲器。某些DMA操作可將存儲器作為源和目的地(例如,存儲器12和快閃記憶體設備 28A-28B之間的DMA操作,或者從存儲器12的一個塊到另一塊的複製操作)。其它DMA操 作可將外圍組件作為源或者目的地。外圍組件可耦接至外部接口,DMA數據在該外部接口 上要被傳送或者DMA數據在該外部接口上要被接收。例如,外圍組件18A可耦接至DMA數 據將被傳送至其上或者DMA數據要在其上被接收的接口。因而,DMA操作可包括從源讀取數 據並向目的地寫入數據的CDMA控制器20。該數據可以作為DMA操作的一部分流過CDMA控 制器20。特別地,DMA的從存儲器12讀取的DMA數據可流過存儲器控制器14,經過SIU16, 通過CDMA控制器20到達外圍組件18A-18B或者快閃記憶體接口單元30 (可能在外圍組件耦接至 的接口上,如果可用的話)。DMA的向存儲器寫入的數據可以沿相反的方向流動。在一個實施例中,利用被稱作為編程的輸入/輸出(PIO)操作的讀取和/或寫入 操作,由處理器22和/或IOP 32執行的指令也可與外圍組件18A-18B和快閃記憶體接口單元30 進行通信。PIO操作可具有地址,該地址由集成電路10映射到外圍組件18A-18B或者快閃記憶體 接口單元30 (更具體地,映射到寄存器或者組件中的其它可讀取/可寫入的資源)。地址 映射在地址空間中可以是固定的,或者可以為可編程的。可替換地,可以以可以與存儲器讀 取/寫入操作區分開的方式(例如,利用與SIU 16上的存儲器讀取/寫入操作不同的命 令編碼,利用用來指示存儲器還是PIO的邊帶信號或者控制信號,等等),來傳輸PIO操作。 對於這樣的實施方式,PIO傳輸還可以包括地址,該地址在PIO地址空間內識別外圍組件 18A-18B或者快閃記憶體單元30 (和所尋址的資源)。在一個實施例中,對於外圍組件18A-18B和快閃記憶體接口單元30,PIO操作可利用與 CDMA控制器20相同的互連,並可流過CDMA控制器20。因而,PIO操作可被處理器22發布 至SIU 16上(在該實施例中,通過L2高速緩存沈),到達CDMA控制器20,併到達目標外圍 組件/快閃記憶體接口單元。類似地,IOP 32可將IPO操作發布至CDMA控制器20,CMDA控制器 20可將PIO操作通過同樣的互連傳輸至外圍組件18A-18B或者快閃記憶體接口單元30。因此,用於DMA操作的去向/來自外圍組件18A-18B或者快閃記憶體接口單元30的數據 傳輸可同去向/來自相同外圍組件18A-18B或者快閃記憶體接口單元30的PIO操作發生衝突。例 如,快閃記憶體接口單元30可通過PIO操作被編程來執行去向/來自快閃記憶體設備28A-28B的存儲器 傳送。對於寫入操作,CDMA控制器20可對要被寫入快閃記憶體接口單元30的數據進行DMA。對 於讀取操作,CDMA控制器20可對要從快閃記憶體接口單元30中讀取的數據進行DMA。在一個實施例中,快閃記憶體設備^A_28D可支持去向/來自這些設備的一頁(a page of)數據傳送。該 頁(page)的大小取決於設備,並可與存儲器12的用於虛擬至物理地址變換的頁的大小不 同。例如,通常利用512位元組、2048位元組和4096位元組的頁大小。因此,在該上下文中,頁可 以是存儲器設備的數據傳送的單位。快閃記憶體接口單元30可被編程來執行一頁數據傳送,並且CDMA單元20可以執行DMA 操作來傳送數據。如果要傳送多個頁,可利用其它PIO操作來編程快閃記憶體接口單元30以執行 下一個傳送。然而,DMA操作可有效地封鎖其它PIO操作,直到當前頁完成。因而,在針對 下一頁編程快閃記憶體接口單元30的同時經過的時間可導致接口上對於快閃記憶體設備的空閒時間。在一個實施例中,快閃記憶體接口單元30可支持命令隊列。用於針對要被傳送的一組頁 (a set of pages)編程快閃記憶體接口單元30的命令可在命令隊列中排隊。一旦針對第一頁的 DMA操作開始,用於針對隨後的頁編程快閃記憶體接口單元30的數據可已經存儲在命令隊列中。 因此,在用於編程快閃記憶體接口單元30的PIO操作和用於傳送數據的DMA操作之間不存在衝 突。由於能夠處理來自命令隊列的命令以便在CDMA單元30完成針對當前頁的DMA操作的 同時針對要被傳送的下一頁配置快閃記憶體控制器30的能力,使得可以提高接口對於快閃記憶體設備 28A-28B的利用率。在一個實施例中,快閃記憶體接口單元30可支持用以存儲一個或多個宏的宏存儲器 (macro memory) 0宏可以是通過宏命令而被調用的兩個或更多個命令的序列。例如,宏命 令可被寫入命令隊列,並在宏命令由快閃記憶體接口單元30執行時可調用該宏。實現頻繁利用的 命令序列的宏可被下載至宏存儲器,從而隨後只需下載較少的命令。也就是,宏命令可被寫 入命令隊列,而不是反覆寫入存儲在宏中的命令。在一個實施例中,宏命令可指定宏的起始 地址和宏中的字數。一旦已經從宏中讀取了該字數並且相應的命令已經被執行,則可以執 行命令隊列中在該宏命令之後的下一個命令。因此,在宏中可以避免返回命令,從而在一個 實施例中允許更多密集的宏。其它實施例可利用起始地址和命令數作為操作數。另外的其 它實施例還可實現返回命令,並且宏命令可包括該起始地址(但是不是字/命令計數)作 為操作數。在一個實施例中,宏命令還可包括循環計數操作數(loop count operand)。循 環計數操作數可指定將要執行的宏的迭代次數。因而,執行宏命令可包括讀取在起始地址 處開始的多個字並執行這些命令,在繼續命令隊列中在該宏命令之後的下一個命令之前, 將所述命令迭代循環計數次數。命令隊列中的命令和/或宏存儲器中的命令可以利用操作數來控制其操作。在某 些情形中,操作數可被存儲在命令隊列中。在其它情形中,操作數可被存儲在操作數隊列 中。命令隊列中或者宏存儲器中的命令可指定快閃記憶體接口單元30從操作數隊列中加載操作 數並對操作數進行操作。操作數隊列可結合宏使用以向通用的宏(generic macro)提供特 定於實例(instance-specific)的數據(例如,快閃記憶體地址、晶片使能,等等)。類似地,操作 數隊列可為命令隊列中的命令提供操作數。如本文所用的,存儲器傳送(memory transfer)可指去向/來自存儲器設備(通 過到存儲器設備的接口)的數據傳送。因而,去向/來自快閃記憶體設備^AISB的存儲器傳送 可經過快閃記憶體設備28A-28B和快閃記憶體接口單元30之間的接口進行。類似地,去向/來自存儲器 12的存儲器傳送可經過存儲器12和存儲器控制器14之間的接口進行。利用由存儲器設備 定義的協議可進行存儲器傳送。另外,命令可指一個或多個字節的數據,該數據可被外圍組件中的硬體(例如,快閃記憶體接口單元30)解釋為指定硬體要執行的特定操作。一般地,外圍組件可以是要在具有處理器的集成電路10上包括的任何期望的電 路。外圍組件可具有定義的功能和接口,該集成電路10的其它組件可藉助該功能和接口 同外圍組件進行通信。例如,外圍組件可包括視頻組件,諸如顯示器控制器、圖形處理器 等等;音頻組件,諸如數位訊號處理器、混合器等等;聯網組件,諸如乙太網媒體存取控制 器(MAC)或者無線保真(WiFi)控制器;在各種接口上通信的控制器,諸如通用串行總線 (USB)、外設組件互連(PCI)或者其變型,諸如PCI快速(PCI Express,即PCIe)、串行外圍 接口(SPI)、快閃記憶體接口等等。快閃記憶體接口單元30可以是外圍組件的一個示例,並且本文描述的 外圍組件的一般特性可應用於快閃記憶體接口單元30。處理器22可實現任何指令集架構(instruction set architecture),並可被配置 來執行在該指令集架構中定義的指令。處理器22可以採用任何微架構,包括標量的、超標 量的、流水線的、超級流水線的、無序的、有序的、推理的、非推理的微架構等等,或者它們的 組合。處理器22可包括電路,並且可選地,可以實現微編碼技術。在所示的實施例中,處理 器22可包括Ll高速緩存M以存儲由處理器22利用的數據和指令。可以有分離的Ll數 據高速緩存和Ll指令高速緩存。Ll高速緩存(一個或多個)可具有任意容量和組織(集 合相關的、直接映射的,等等)。在所示的實施例中,還提供L2高速緩存沈。類似於Ll高 速緩存(一個或多個),L2高速緩存沈可具有任意容量和組織。類似地,IOP 32可執行任意指令集架構,並可被配置來執行在該指令集架構中定 義的指令。由IOP 32執行的指令集架構不必與由處理器22所執行的指令集架構相同。在 一個實施例中,IOP 32可以是與處理器22相比功率更低、性能更低的處理器。IOP 32可 處理各種I/O接口問題(配置外圍組件來執行期望的操作、某種錯誤處理,等等)。IOP 32 可執行如下指令向快閃記憶體接口單元30中的命令隊列寫入命令,向快閃記憶體接口單元30中的宏存 儲器中寫入宏,和/或向快閃記憶體接口單元30中的操作數隊列中寫入操作數。IOP 32還可執 行用以服務於其它外圍組件18A-18B的指令。因而,處理器22可執行其它計算任務,或者 如果沒有其它計算任務要執行的話可降低功率以節省功率。IOP 32可採用任何微架構,包 括標量的、超標量的、流水線的、超級流水線的、無序的、有序的、推理的、非推理的微架構等 等,或者它們的組合。IOP 32可包括電路,並且可選地,可實現微編碼技術。SIU 16可以是存儲器控制器14、處理器22 (通過L2高速緩存26)、L2高速緩存 沈和CDMA控制器20可經過其進行通信的互連。SIU 16可實現任何類型的互連(例如,總 線、包接口、點對點連接,等等)。在一些實施例中,SIU 16可以是層級結構的互連。存儲器控制器14可被配置來接收來自系統接口單元16的存儲器請求。存儲器控 制器14可被配置來存取存儲器12以利用為所附的存儲器12定義的接口來完成請求(對於 寫入請求,向存儲器12寫入接收數據,或者響應於讀取請求,提供來自存儲器12的數據)。 存儲器控制器14可被配置為連接任何類型的存儲器12,諸如動態隨機存取存儲器(DRAM)、 同步 DRAM (SDRAM)、雙倍數據速率(DDR、DDR2、DDR3 等)SDRAM、RAMBUS DRAM (RDRAM)、靜態 RAM(SRAM)等等。存儲器可被設置為多個存儲器組,例如雙列直插存儲器模塊(DIMM)、單列 直插存儲器模塊(SIMM),等等。在一個實施例中,在堆疊封裝(package on package, POP) 或者疊層晶片(chip-on-chip,C0C)配置中一個或多個存儲器晶片被附接到集成電路10。存儲器12可包括一個或多個存儲器設備。一般地,存儲器設備可為任意組件,該組件被設計來根據在寫操作中給其提供數據的地址來存儲數據,並當在讀取操作中利用該 地址時提供該數據。上述存儲器類型的任何示例都可在存儲器設備中實現,並且快閃記憶體設備 28A-28B也可為存儲器設備。存儲器設備可以是一個晶片、多個連接至諸如印刷電路板的基 底的晶片(例如,SMM或者DMM、或者直接連接到IC 10耦接到的電路板)等等。快閃記憶體接口單元30可包括電路,該電路被配置為接收對於快閃記憶體設備28A-28B的讀取 和寫入請求,並被配置來連接快閃記憶體設備^A-28B以完成讀取/寫入請求。在一個實施例中, 讀取/寫入請求可源自於CDMA控制器20。快閃記憶體接口單元30可通過一個或多個控制寄存器 (參見下述圖2)被編程來執行去向/來自快閃記憶體設備^AISB(例如,通過PIO操作)的存儲 器傳送。快閃記憶體設備28A-28B可為快閃記憶體,其是本技術領域中已知的一種非易失性存儲 器。在其它實施例中,可使用其它形式的非易失性存儲器。例如,可採用電池備份(Battery Backup)的SRAM、各種類型的可編程ROM,諸如電可擦除可編程只讀存儲器(EEPROM)等。在 其它實施例中,可利用類似於存儲器12的易失性存儲器。儘管當前實施例描述了利用快閃記憶體接口單元30中的命令隊列(FIFO)、宏存儲器和/ 或操作數隊列(FIFO),但是其它實施例可利用任何類型的存儲器或者外圍接口,在任何外 圍組件中實現這些特徵。應該注意的是,其它實施例可包括組件的其它組合,所述組件包括圖1中所示的 組件的子集或者超集和/或其它組件。儘管在圖1中示出給定組件的一個實例,但是其它 實施例可包括給定組件的一個或者多個實例。現在參照圖2,圖2示出了快閃記憶體接口單元30的一個實施例的方框圖。在所示實施 例中,快閃記憶體接口單元30包括命令FIFO 40、快閃記憶體接口(FMI)控制電路42、宏存儲器44、操作 數FIFO 46、快閃記憶體控制器(FMC) 48、一組FMC控制寄存器50、數據緩衝器52A-52B和錯誤檢 查/校正(ECC)單元M。命令FIF040、FMI控制電路42、宏存儲器44、操作數FIFO 46和緩 衝器52A-52B都耦接至CDMA控制器20的內部接口。FMI控制電路42還耦接至命令FIFO 40、宏存儲器44、操作數FIFO 46和FMC控制寄存器50。FMC控制寄存器50還耦接至FMC 48, FMC 48耦接至快閃記憶體設備的外部接口。FMC 48還耦接至緩衝器52A-52B。ECC單元M還 耦接至緩衝器52A-52B。FMI控制電路42還被配置為從CDMA控制器20接收PIO操作。一些PIO操作可 被引導到命令FIFO 40、宏存儲器44或者操作數FIFO 46。例如,PIO寫入可被用於向命令 FIFO 40寫入命令、將宏下載至宏存儲器44、或者將操作數寫入到操作數FIFO 46。地址可 被分配給FIFO 40、宏存儲器44和操作數FIFO 46中的每一個,該地址在PIO操作數中可 用於尋址所期望的資源。例如,因為FIFO 40和46可以以先進先出的方式操作,因此它們 具有單獨分配的地址。對該地址的PIO寫入可使FMI控制電路42存儲數據,該數據被提供 來寫入在FIFO 40或者46中的下一個開放條目(open entry)中。即,該數據可被附加於 FIFO 40或者46的尾部,其中命令或者操作數從FIFO 40或者46的頂部移除。宏存儲器 44可具有分配給它的地址範圍,例如,宏存儲器44的每個字的地址。對這些地址的PIO寫 入可將所提供的數據字存入宏存儲器44的所尋址的字中。FMI控制電路42可處理命令FIFO 40中的命令,以對各種FMC控制寄存器50進行 編程以使FMC 48進行去向/來自快閃記憶體設備^A-28B的特定存儲器傳送。在一個實施例中, FMC 48被配置為通過FMC控制寄存器50來接收相對低等級的控制,包括尋址、晶片使能、傳送命令等等。命令FIFO 40中的命令可由FMI控制電路42解釋,並且FMI控制電路42可 對相應的FMC控制寄存器50進行寫入。類似地,等待事件的命令可由FMI控制電路42解 釋,以讀取一個或者多個FMC控制寄存器50來檢測該事件。在由FMI控制電路42響應於 命令進行驅動和/或由FMI控制電路42響應於命令進行監控的一些實施例(在圖2中未 示出)中,在FMI控制電路42和FMC 48之間還可存在直接控制信號。FMI控制電路42可被配置為從命令FIFO 40中以其被寫入的順序讀取命令。更一 般地,可支持命令隊列(例如,可以不將命令FIFO 40特別構造為FIFO,以使隊列中的每個 條目對於FMI控制電路42都是同時可見的)。類似地,操作數FIFO 46可為操作數隊列, 而FMI控制電路42可響應於命令隊列或宏存儲器44中的命令,以操作數被寫入的順序從 操作數FIFO 46中讀取操作數。如前所述,宏命令可以存在於命令FIFO 40中,而FMI控制電路42響應於該宏命 令,可執行來自宏存儲器44的命令。在其它的實施例中,宏命令可作為PIO操作被傳送 至FMI控制電路42。在其它的實施例中,在命令FIFO 40中或者在PIO操作中可碰到宏命 令。宏命令可包括宏存儲器中的起始地址和指示要從宏存儲器44中讀取的字的數量的字 計數。FMI控制電路42可在讀取命令FIFO 40中的下一個命令之前執行宏中的命令。在一 個實施例中,除了命令之外,宏中的字還可以包括操作數。其它的實施例可利用命令計數而 不是字計數。如上所述,宏命令可還包括循環計數(loop count),並且宏可被迭代由循環計 數所指示的次數。從命令FIFO 40和操作數FIFO 46中讀取字可包括FMI控制電路42從FIFO中刪 除那些字。另一方面,從宏存儲器44中讀取字可不包括刪除該字以使宏可被重複執行。FMC 48可響應於FMC控制寄存器50的內容執行存儲器傳送,將從快閃記憶體設備 28A-28B中讀取的數據寫入緩衝器52A-52B或者將從緩衝器52A-52B讀取的數據寫入快閃記憶體 設備^A-28B。可以以桌球方式使用緩衝器52A-52B,其中緩衝器52A-52B中的一個被排空 時,給另一個填充數據。例如,從快閃記憶體設備^A-28B讀取可包括FMC 48對緩衝器52A-52B 中的一個進行填充,同時緩衝器52A-52B中的另一個正由執行對存儲器12的DMA操作的 CDMA控制器20排空。向快閃記憶體設備28A-28B寫入可包括CDMA控制器20用數據填充緩衝器 52A-52B中的一個,同時FMC 48排空另一個緩衝器52A-52B。ECC單元M可產生用於向閃 存設備^A-28B寫入的ECC數據,並可檢查用於從快閃記憶體設備^A-28B讀取的ECC數據。現在轉向圖3,圖3示出了 FMI控制電路42的一個實施例響應於接收到來自CDMA 控制器20的PIO操作而執行的操作的流程圖。儘管為了便於理解以特定順序示出了各個 模塊,但是可採用其它順序。在FMI控制電路42中可以以組合邏輯並行執行各個模塊。例 如,圖3中所示的判定模塊可以是獨立的,並被並行執行。模塊、模塊的組合、和/或整個流 程圖在多個時鐘周期中可以以流水線方式進行。FMI控制電路42可被配置為執行圖3中所 示的操作。如果PIO寫操作被尋址至命令FIFO 40 (判定模塊60,「是」分支),FMI控制電路 42可被配置為用來自PIO寫的數據來更新命令FIFO 40中的下一個條目(模塊62)。艮口, 來自PIO寫的數據可被附加至命令FIFO 40的尾部。如果PIO寫被尋址到宏存儲器44 (判 定模塊64,「是」分支),FMI控制電路42可被配置為使用來自PIO寫的數據更新宏存儲器 44中的所尋址的條目(模塊66)。如果PIO寫被尋址到操作數FIFO 46 (判定模塊68,「是」分支),FMI控制電路42可被配置為使用來自PIO寫的數據更新操作數FIFO 46中的下一 個條目(模塊70)。即,來自PIO寫的數據可被附加至操作數FIFO 46的尾部。如果PIO寫 被尋址到FMC控制寄存器50中的寄存器(或者在各種實施例中,快閃記憶體接口單元30中的其它 寄存器一判定模塊72,「是」分支),FMI控制電路42可被配置為更新所尋址的寄存器(模 塊 74)。下面轉向圖4,圖4示出了表格76,表格76說明了可由快閃記憶體接口單元30的一個實 施例(更具體地,FMI控制電路42)支持的示例性命令集。其它的實施例可支持任何其它 的命令集,包括圖4中所示的命令的子集、該命令和其它命令的子集、和/或該命令和其它 命令的超集。該表格包括列出各個命令的「命令」列、指示用於給定命令的操作數的「操作 數」列、和表示由該命令在命令FIFO 40中佔據的字的數量的「字」列。命令的格式可隨實施例變化。例如,在一個實施例中,每個命令可包括標識命令集 內的命令的操作碼字節(即,可通過不同的操作碼編碼來辨識表格76中的每個條目)。可 以利用形成命令的一個或多個字中的剩餘字節來指定該命令的操作數。在各種實施例中, 命令可被存儲在命令FIFO 40或者宏存儲器44中。地址命令(表格76中addrO至addr7)可被用來在到快閃記憶體設備的接口 (簡稱為快閃記憶體接口 )上發布地址字節。「addr」後的數字指示以在快閃記憶體接口上的地址的字節 0開始的已傳送的地址字節的數量。在一個實施例中,FMI控制電路42可被配置為中止, 直到在執行下一命令之前地址字節已經被傳送為止。在一個實施例中,addrX命令可相當 於對隨後的FMC控制寄存器50進行編程一個或多個帶有地址字節的地址寄存器,和在一 個或者多個寄存器中對傳送數量和讀/寫模式進行編程。響應於讀/寫模式,FMC 48可在 快閃記憶體接口上傳輸地址字節,並在FMC控制寄存器50內的狀態寄存器中發信號指示地址完成 中斷。另外,addrX命令可還包括等待、清除和狀態寄存器中的地址完成中斷。AddrO命令 可不同於addrl至addr7命令,不同之處在於地址寄存器和地址傳送數量寄存器不被編程。 相反,這些寄存器可利用諸如下面描述的loacLnextjord或者l0ad_fr0m_fif0命令的其 它命令被編程。cmd命令可被用來在快閃記憶體接口上發送出快閃記憶體接口命令。在一個實施例中,快閃記憶體接口 命令為一個字節。因此,cmd命令的操作數可以是在快閃記憶體接口上傳輸的命令字節。FMI控制 電路42可以被配置為中止,直到在快閃記憶體接口上完成cmd命令為止。cmd命令可相當於對帶 有命令字節的FMC控制寄存器50中的命令寄存器進行編程;在另一 FMC控制寄存器50中 設定命令模式位;以及等待和清除FMC控制寄存器50內的狀態寄存器中的cmd完成中斷。 響應於命令模式位的設定,FMC 48可被配置為在快閃記憶體接口上發送命令字節,並將cmd完成 中斷寫入狀態寄存器。enable_chip命令可被用於寫FMC控制寄存器50的晶片使能寄存器,該命令會使 得FMC 48基於晶片使能操作數來驅動快閃記憶體接口上的晶片使能信號。xfer_page命令可被用於發起去向/來自快閃記憶體設備^AISB的頁傳送。響應於 xfer_page命令,FMI控制電路42可被配置為在FMC控制寄存器50中設定起始位,並等待 和清除在另一 FMC控制寄存器50中的頁完成中斷位。響應於該起始位,FMC 48可被配置 為執行指定的頁傳送,並在完成時設定頁完成中斷。可存在由FMI控制電路42支持的各種同步命令。一般地,同步命令可被用來規定FMI控制電路42將要監控的事件,並使FMI控制電路42在執行下一命令之前等待該事件發 生(也就是,等待直到FMI控制電路42檢測到該事件為止)。因而,同步命令可允許命令序 列被再次編程,同步命令可有助於確保正確的定時。例如,多個頁傳送可被再次編程,同步 命令可被用來延遲對用於下一頁的FMC控制寄存器50的編程,直到當前頁不再需要該寄存 器(例如,在該頁的最後一個數據被載入緩衝器52A-52B以供讀取之後)為止。在圖4的實施例中,同步命令可包括wait_for_rdy、pause、time_wait禾口 wait_ for_int。wait_for_rdy命令可被用來在頁傳送期間監控快閃記憶體設備28A-28B的狀態。wait_ for_rdy命令可包括等待和清除FMC控制寄存器50的狀態寄存器中的特定「完成」中斷(例 如,頁完成);使用屏蔽操作數(mask operand)對狀態寄存器中的狀態字節進行屏蔽;和將 屏蔽後的狀態字節同條件操作數進行比較。如果屏蔽後的狀態字節同條件操作數相匹配, 則FMI控制電路42可被配置為執行下一個命令。否則,FMI控制電路42可發信號指示中 斷(例如,在各種實施例中,發信號給IOP 32或者處理器22),並可停止執行其它命令,直到 IOP 32/處理器22處理(service) 了該中斷為止。pause命令被用來由FMI控制電路42來暫停命令執行。FMI控制電路42可停止 執行命令,直到通過在IOP 32/處理器22上運行的軟體在FMC控制寄存器50之一中寫入 指定的使能位來明確終止暫停為止。FMI控制電路42可被配置為在多個時鐘周期之後通過timed_Wait命令來暫停和 重新開始。時鐘周期的數量被指定為timecLwait命令的操作數。在一些實施例中,timed_ wait命令可用於降低快閃記憶體接口單元30的速度,這是因為利用命令FIFO 40、宏存儲器44和 操作數FIFO 46可能帶來的性能會超過由快閃記憶體設備^A-28B執行活動的速率。wait_for_int命令可被用於使FMI控制電路42等待指定的中斷值。利用「位」操 作數,操作數可以指定要等待的中斷(irq)和要等待的irq位的狀態(例如,設置或清除)。send_interrupt命令可被用於向IOP 32或處理器22發送指定中斷。send_ interrupt命令的操作數可以指定中斷代碼以寫入FMC控制寄存器50的中斷代碼寄存器 中,這會使中斷被發送。load_next_word和load_from_f ifo命令可被用於對FMC控制寄存器50中的各種 寄存器進行編程。這些命令的操作數中的一個是將要被寫入的控制寄存器的寄存器地址。 響應於load_next_word命令,FMI控制電路42可從命令FIF040中讀取下一個字並將該字 寫入所尋址的寄存器。響應於l0ad_fr0m_fif0命令,FMI控制電路42可被配置為讀取操 作數FIFO 46的頂部的字並將該字寫入所尋址的寄存器。宏命令可被用於使得FMI控制電路42從宏存儲器44中讀取命令。宏命令包括地 址操作數、長度操作數和循環計數操作數。地址可識別要從宏存儲器44中讀取的第一個 字,並且長度可識別宏的長度(例如,根據命令的數量或者字的數量)。在一個實施例中, 長度為數量字(number words) 0循環計數可指示要被執行的宏的迭代的數量。在一個實 施例中,循環計數操作數可以比迭代的數量少一(例如,循環計數0為一次迭代,循環計數 1為兩次迭代,等等)。宏一完成,就可對下一個命令FIFO 42進行讀取(也就是,在宏中可 沒有返回命令)。poll命令可以針對指定值而對FMC控制寄存器50中的任何寄存器進行輪詢(在 利用屏蔽欄位對從寄存器中讀取的值進行屏蔽之後)。FMI控制電路42可輪詢寄存器直到檢測到指定值為止,然後繼續下一個命令。如以上說明中所指出的,FMI控制電路42可對FMC控制寄存器50內的一個或者 多個狀態寄存器中記錄的各種中斷進行監控,作為執行某些命令的一部分。FMI控制電路 42可清除該中斷並完成對應的命令。在命令FIFO 40中不存在命令時,這些中斷可代之以 被轉發至IOP 32/處理器22 (如果被使能的話)。因此,至FMC控制寄存器50的PIO寫操 作和至IOP 32/處理器22的中斷可為用於執行去向/來自快閃記憶體設備^AISB的存儲器傳 送的另一機制。現在轉向圖5,圖5示出了用於處理命令的FMI控制電路42的一個實施例的操作 的流程圖。儘管為了便於理解以特定順序示出了各個模塊,但是可採用其它順序。在FMI 控制電路42中可以以組合邏輯並行執行各個模塊。模塊、模塊的組合、和/或整個流程圖 在多個時鐘周期中可以以流水線方式進行。FMI控制電路42可被配置為執行圖5中所示的 操作。FMI控制電路42可被配置為從命令FIFO 40中讀取命令(模塊80)。如果命令不 是宏命令(判定模塊82,「否」分支),FMI控制電路42可被配置為執行命令(模塊84)。命 令一完成,FMI控制電路42可被配置為檢查用來確定宏是否到達其末端的字計數。如果該 命令不是宏的一部分,那麼字計數可為0(判定模塊86,「否」分支)。FMI控制電路可被配 置為檢查與宏命令相關聯的循環計數。如果命令不是宏的一部分,那麼循環計數可為0(判 定模塊95,「否」分支)。FMI控制電路42可被配置為確定在命令FIFO 40中是否有另一有 效命令(判定模塊88)。S卩,FMI控制電路42可被配置為確定命令FIFO 40是否為空。如 果存在另一有效命令(判定模塊88,「是」分支),FMI控制電路42可被配置為讀取和處理 下一命令。否則,FMI控制電路42的命令處理電路可為空閒,直到另一有效命令被寫入命 令FIFO 40 (判定模塊88,「否」分支)。如果命令為宏命令(判定模塊82,「是」分支),FMI控制電路42可被配置為將字 計數初始化為宏命令的長度操作數,和將循環計數初始化為宏命令的循環計數操作數(模 塊90)。FMI控制電路42還可從宏存儲器44中讀取命令(模塊92)。具體地,在該情形中, FMI控制電路42可從宏存儲器44中的作為宏命令的地址操作數提供的地址中讀取第一個 字。FMI控制電路42可被配置為執行命令(模塊84),並可被配置為檢查字計數。字計數 可大於0 (判定模塊86,「是」分支),並且FMI控制電路42可被配置為遞減字計數和從宏 存儲器44中讀取下一命令(例如,通過遞減地址)(模塊94和96)。FMI控制電路42可被 配置為處理下一命令(轉向圖5的流程圖中的判定模塊82)。如果字計數為0(判定模塊 86,「否」分支),FMI控制電路42可被配置來檢查循環計數。如果循環計數大於0 (判定模 塊95,「是」分支),則將要執行宏的另一次迭代。FMI控制電路42可遞減循環計數(模塊 97),重新初始化字計數和宏地址(模塊99),並從宏存儲器44中讀取下一命令(也就是,宏 的第一命令)(模塊96)。如果字計數和循環計數都為0 (判定模塊86和88,「否」分支), 那麼宏完成,而FMI控制電路42可檢查命令隊列40中的下一有效命令(判定模塊88)。應該注意的是,由於每個命令都要被檢驗是否為宏命令,所以宏命令也可被存儲 在宏存儲器44中。因此,儘管要被執行的最後一個宏返回至命令FIF040,從而從宏不會返 回至調用它們的宏這一意義上而言不存在真正的嵌套,但是宏可以是「嵌套的」。現在轉向圖6,圖6示出了利用宏來執行將多頁寫入到快閃記憶體設備28A或者28B的示例的方框圖。示出了宏存儲器44的內容,包括三段命令。在宏存儲器地址0和N-I之間, 存儲了用於完成寫入前一頁的宏100的N個字。在宏存儲器地址N和N+M-1之間,存儲了 用於開始寫入下一頁的宏102的M個字。在宏存儲器地址N+M和N+M+P-1之間,存儲了用 以將最後一頁完成寫入存儲器的宏104的P個字。在圖6中圖示了命令FIFO 40中的一組命令,如圖6所示,FIFO的開始位於命令 FIFO 40的頂部,且FIFO中的隨後的命令依次沿命令FIFO 40向下進行。第一命令為宏N, M。該命令調用起始於字N的宏104,並執行M個字(S卩,如圖6中所示的宏102)。因而,第 一頁的寫入就被初始化。隨後的頁寫入可利用宏0,Ν+Μ命令來執行。這些命令使得宏100 和宏102被執行。前一頁的寫入可被完成(宏100),而下一頁的寫入可以開始(宏102)。 最後一頁可利用宏0,Ν+Μ+Ρ命令來寫入。該命令使得宏100、102和104被執行,完成從第二 頁到最後一頁的寫入(宏100),執行最後一頁的寫入(宏10 ,和完成最後一頁的寫入並 關閉快閃記憶體設備28A或者^B(宏104)。在該示例中,每個宏命令的循環計數操作數為0( — 次迭代)。然而,在圖6中的第一個示例之下示出的另一個示例中,循環計數操作數可被用 於使命令隊列中的命令更加有效。用於第一頁的宏N、M命令和用於最後一頁的宏0、Ν+Μ+Ρ 命令的循環計數可仍為0,其規定一次迭代。然而,利用循環計數操作數等於頁計數(C)減 3的一個宏命令(宏0,Ν+Μ)可完成所有中間頁的寫入。在該實施例中,循環計數為C-3以 考慮到第一頁和最後一頁、以及循環計數操作數比所期望的迭代次數少一的事實。正如宏 100、102和104所說明的,通過精心安排宏存儲器44中的宏,可得到密集並有效的宏。宏可 利用l0ad_fr0m_fif0命令來對每個頁寫入操作數使用不同的操作數,且用於每頁的操作 數可在初始化命令FIFO 40中的命令之前被載入操作數FIFO 46中。宏102中包含的命令可確立要被寫入的地址、晶片使能等等。宏100中包含的命 令可包括 將前一頁傳送至存儲器的Xfer_page,以及檢查錯誤和同步下一頁傳送的各命令 (可通過宏102被初始化)。宏104可包括最後的Xfer_page命令,以及檢查錯誤和關閉作 為寫入目標的快閃記憶體設備的命令,從而去激活活動的頁/區域和/或執行為快閃記憶體設備指定的 任何其它操作。現在轉向圖7,圖7示出了要由IOP 32和/或處理器22執行的閃速低碼(flash code)的操作的流程圖。儘管為了便於理解以特定順序示出了各個模塊,但是可採用其它 順序。閃速代碼可包括在被IOP 32和/或處理器22執行時可實現圖7中所示的操作的指 令。閃速代碼在集成電路10的運行期間可隨時被運行。例如,閃速代碼可被執行來初 始化快閃記憶體接口單元30。閃速代碼還可在快閃記憶體30已經空閒但是將要被存取的任何時候被執 行,以重新配置宏存儲器44中的宏,等等。快閃記憶體代碼可下載任何期望的宏至宏存儲器44(模塊110)。如果在宏存儲器44中 已經存儲的宏為期望的宏,或者如果不存在期望的宏,那麼就跳過模塊110。閃速代碼還可 下載將被這些命令或者宏利用的任何操作數(模塊112),並且如果沒有操作數要被下載, 就跳過模塊112。閃速代碼可下載將被執行的命令(模塊114),並且可在快閃記憶體接口單元30 中開始命令執行。如果其它命令準備好被下載(判定模塊116,「是」分支),那麼閃速代碼 可下載其它代碼(模塊114)。如果新的操作數或者宏準備好要被下載(判定模塊118,「是」 分支),閃速代碼可返回至模塊110和/或112來下載它們。
系統和計算機可存取存儲介質接著轉向圖8,圖8示出了系統150的一個實施例的方框圖。在所示實施例中,系 統150包括被耦接至一個或者多個外設IM和外部存儲器158的集成電路10 (來自圖1) 的至少一個實例。外部存儲器158可包括存儲器12。還提供電源156,其向集成電路10提 供電源電壓以及向存儲器158和/或外設IM提供一個或者多個電源電壓。在一些實施例 中,可包括集成電路10的多於一個的實例(也可包括多於一個的外部存儲器158)。外設IM可包括任意期望的電路,這取決於系統150的類型。例如,在一個實施例 中,系統150可以是行動裝置(例如,個人數字助手(PDA)、智慧型電話等等),而外設IM可 包括適於諸如WiFi (無線保真)、藍牙、蜂窩、全球定位系統等等之類的各種無線通信的設 備。外設IM還可包括其它存儲裝置,包括RAM存儲裝置、固態存儲裝置或者磁碟存儲裝 置。外設IM可包括諸如顯示屏的用戶界面設備,包括觸摸顯示屏或者多觸摸顯示屏、鍵盤 或者其它輸入設備、麥克風、揚聲器等。在其它的實施例中,系統150可為任意類型的計算 系統(例如,桌面個人電腦、膝上電腦、工作站、上網機(net top)等)。外部存儲器158可包括任何類型的存儲器。例如,外部存儲器158可以是SRAM、諸 如同步 DRAM (SDRAM)的動態 RAM (DRAM)、雙倍數據速率(DDR、DDR2、DDR3 等)SDRAM、RAMBUS DRAM等。外部存儲器158可包括存儲器設備可安裝到的一個或多個存儲器模塊,諸如單列 直插存儲器模塊(SIMM)、雙列直插存儲器模塊(DIMM)等。現在轉至圖9,圖9示出了計算機可存取存儲介質200的方框圖。一般來講,計算 機可存取存儲介質可包括在使用期間可由計算機存取以向計算機提供指令和/或數據的 任何存儲介質。例如,計算機可存取存儲介質可包括諸如磁介質或者光學介質的存儲介質, 例如,磁碟(固定的或者可移除的)、磁帶、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或 者藍光(Blu-Ray)。存儲介質還可包括易失性的或者非易失性存儲介質,諸如RAM(例如, 同步動態 RAM(SDRAM)、Rambus DRAM (RDRAM)、靜態 RAM(SRAM)等)、ROM、快閃記憶體、通過諸如通 用串口總線(USB)接口之類的外圍接口可存取的非易失性存儲器(例如,快閃記憶體)、快閃記憶體接口 (FMI)、串行外圍接口(SPI)等。存儲介質可包括微型機電系統(MEMS),以及通過諸如網絡 和/或無線連結之類的通信介質可存取的存儲介質。圖5中的計算機可存取存儲介質200 可存儲閃速代碼202,其可包括由IOP 32和/或處理器22處理的代碼。閃速代碼202可包 括指令,當被執行時,該指令實現以上參照圖7說明的操作。一般地,計算機可存取存相介 質200可存儲任何指令集,當被執行時,該指令集實現圖7中所示的部分或者所有的操作。 而且,計算機可存取存儲介質200可存儲一個或者多個將被下載至宏存儲器44的宏204、一 個或多個要被下載至操作數FIF036的操作數、和/或一個或多個要被下載至命令FIFO 40 的命令。載體介質可包括計算機可存取存儲介質以及諸如有線或者無線傳輸的傳輸介質。本公開的一個實施例提供了一種控制集成電路中的外部接口的設備,所述設備包 括被配置為在所述外部接口上通信的控制器;被配置為存儲多個命令的命令隊列,所述 命令促成所述外部接口上的傳送;和被耦接至所述命令隊列和所述控制器的控制電路,其 中所述控制電路被配置為從所述命令隊列中讀取所述多個命令,並被配置為啟動所述控制 器中相應的操作以執行所述傳送。在另一實施例中,所述設備還包括被耦接至所述控制器 和所述控制電路的多個控制寄存器,其中所述控制器被配置為響應於所述多個控制寄存器 中的內容在所述外部接口上進行通信,並且其中所述多個命令包括一個或者多個促使所述控制電路更新所述多個控制寄存器中的一個或多個寄存器的命令。另一實施例中,所述控 制電路被配置為在所述集成電路中的內部接口上接收操作,其中所述操作指示所述多個控 制寄存器中的一個的直接更新,並且其中所述控制電路被配置為響應於接收到所述操作, 對所述控制寄存器中的一個進行更新。另一實施例中,所述控制電路還被配置為在所述內 部接口上接收所述多個命令,並且其中所述控制電路被配置為響應於接收到所述多個命 令,將所述多個命令寫入所述命令隊列中。另一實施例中,所述外部接口是存儲器接口,並 且其中所述多個命令包括第一命令,所述第一命令使得所述控制器向被耦接至所述存儲器 接口的一個或多個存儲器設備發送地址。另一實施例中,所述多個命令包括第二命令,所述 第二命令使得所述控制器向所述一個或者多個存儲器設備發送指定的一個或者多個晶片 的使能信號。另一實施例中,所述多個命令包括第二命令,所述第二命令使得所述控制器在 所述集成電路和所述一個或者多個存儲器設備之間傳送一頁數據。另一實施例中,所述存 儲器接口為快閃記憶體接口。另一實施例中,所述設備還包括被配置為存儲第二多個命令的宏存 儲器,其中響應於執行所述多個命令,所述命令隊列中的所述多個命令從所述命令隊列中 被移除,並且其中即使在所述第二多個命令已經被執行時,所述第二多個命令仍保留在所 述宏存儲器中。另一實施例中,所述命令隊列中的所述多個命令中的至少一個命令為促使 所述宏存儲器中的命令被執行的宏命令。另一實施例中,所述宏命令指定要被執行的所述 宏存儲器中的第一命令的地址和以所述第一命令開始的要被讀取的字的數量,從而所述第 二多個命令排除了用於返回命令隊列的返回命令。另一實施例中,所述宏命令還指定循環 計數操作數,所述循環計數操作數指示將被執行的所述第二多個命令的迭代的次數。另一 實施例中,所述第二多個命令包括第二宏命令,所述第二宏命令指定第二命令在所述宏存 儲器中的第二地址和要被讀取的字的第二數量,並且其中所述控制電路被配置為在執行了 以所述第二命令開始的第二數量的字中的命令之後返回到所述命令隊列。另一實施例中, 所述快閃記憶體接口單元包括操作數隊列,所述操作數隊列被配置為存儲能夠由所述命令隊列和 所述宏存儲器中的命令存取的操作數數據。另一實施例中,所述設備還包括被配置為將所 述多個命令載入到所述命令隊列中的處理器。另一實施例中,所述設備還包括被配置為存 儲第二多個命令的宏存儲器,其中所述命令隊列中的所述多個命令中的宏命令促使所述第 二多個命令被執行,並且其中所述處理器還被配置為將所述第二多個命令載入所述宏存儲 器中。另一實施例中,所述設備還包括操作數隊列,所述操作數隊列被配置為存儲多個操作 數,所述多個操作數能夠被所述命令隊列中的所述多個命令和所述宏存儲器中的所述第二 多個命令存取,其中所述處理器被配置為將所述多個操作數載入所述操作數隊列中。
本公開的一個實施例提供了一種方法(例如,控制集成電路中的外部接口的方 法),所述方法包括從集成電路的存儲器接口單元中的命令隊列中讀取多個命令;和響應 於所述命令隊列中的所述多個命令,使控制器在所述集成電路的外部接口上與被耦接至所 述外部接口的一個或多個存儲器設備通信,其中所述多個命令促使所述一個或者多個存儲 器設備和所述集成電路之間的存儲器傳送,其中所述存儲器傳送包括一頁或多頁數據。另 一實施例中,所述多個命令包括使得所述控制器向所述一個或者多個存儲器設備發送地址 的第一命令,使得所述控制器向所述一個或多個存儲器設備發送一組晶片使能的第二命 令,和至少一個使得所述控制器傳送一頁數據的第三命令。另一實施例中,所述多個命令包 括使得所述控制器在接口上向所述一個或者多個存儲器設備發送對應命令的第一命令,所述對應命令在存儲器接口協議中為所述一個或者多個存儲器設備定義。 一旦全面理解了以上的公開內容,大量變型和修改對於那些本領域技術人員而言將是明顯的。意欲將以下的權利要求解釋為包含所有這樣的變型和修改。
權利要求
1.一種控制集成電路中的外部接口的設備,所述設備包括被配置為在所述外部接口上通信的控制器;被配置為存儲多個命令的命令隊列,所述命令促成所述外部接口上的傳送;和被耦接至所述命令隊列和所述控制器的控制電路,其中所述控制電路被配置為從所 述命令隊列中讀取所述多個命令,並被配置為啟動所述控制器中相應的操作以執行所述傳送。
2.根據權利要求1所述的設備,還包括被耦接至所述控制器和所述控制電路的多個控 制寄存器,其中所述控制器被配置為響應於所述多個控制寄存器中的內容在所述外部接口 上進行通信,並且其中所述多個命令包括一個或者多個促使所述控制電路更新所述多個控 制寄存器中的一個或多個寄存器的命令。
3.根據權利要求2所述的設備,其中所述控制電路被配置為在所述集成電路中的內部 接口上接收操作,其中所述操作指示所述多個控制寄存器中的一個的直接更新,並且其中 所述控制電路被配置為響應於接收到所述操作,對所述控制寄存器中的一個進行更新。
4.根據權利要求3所述的設備,其中所述控制電路還被配置為在所述內部接口上接收 所述多個命令,並且其中所述控制電路被配置為響應於接收到所述多個命令,將所述多個 命令寫入所述命令隊列中。
5.根據權利要求1所述的設備,其中所述外部接口是存儲器接口,並且其中所述多個 命令包括第一命令,所述第一命令使得所述控制器向被耦接至所述存儲器接口的一個或多 個存儲器設備發送地址。
6.根據權利要求5所述的設備,其中所述多個命令包括第二命令,所述第二命令使得 所述控制器向所述一個或者多個存儲器設備發送指定的一個或者多個晶片的使能信號。
7.根據權利要求5所述的設備,其中所述多個命令包括第二命令,所述第二命令使得 所述控制器在所述集成電路和一個或者多個存儲器設備之間傳送一頁數據。
8.根據權利要求5所述的設備,其中所述存儲器接口為快閃記憶體接口。
9.根據權利要求1所述的設備,還包括被配置為存儲第二多個命令的宏存儲器,其中 響應於執行所述多個命令,所述命令隊列中的所述多個命令從所述命令隊列中被移除,並 且其中即使在所述第二多個命令已經被執行時,所述第二多個命令仍保留在所述宏存儲器 中。
10.根據權利要求9所述的設備,其中所述命令隊列中的所述多個命令中的至少一個 命令為促使所述宏存儲器中的命令被執行的宏命令。
11.根據權利要求10所述的設備,其中所述宏命令指定要被執行的所述宏存儲器中的 第一命令的地址和以所述第一命令開始的要被讀取的字的數量,從而所述第二多個命令排 除了用於返回命令隊列的返回命令。
12.根據權利要求11所述的設備,其中所述宏命令還指定循環計數操作數,所述循環 計數操作數指示將被執行的所述第二多個命令的迭代的次數。
13.根據權利要求12所述的設備,其中所述第二多個命令包括第二宏命令,所述第二 宏命令指定第二命令在所述宏存儲器中的第二地址和要被讀取的字的第二數量,並且其中 所述控制電路被配置為在執行了以所述第二命令開始的第二數量的字中的命令之後返回 到所述命令隊列。
14.根據權利要求13所述的設備,其中所述快閃記憶體接口單元包括操作數隊列,所述操作 數隊列被配置為存儲能夠由所述命令隊列和所述宏存儲器中的命令存取的操作數數據。
15.根據權利要求1所述的設備,還包括被配置為將所述多個命令載入到所述命令隊 列中的處理器。
16.根據權利要求15所述的設備,還包括被配置為存儲第二多個命令的宏存儲器,其 中所述命令隊列中的所述多個命令中的宏命令促使所述第二多個命令被執行,並且其中所 述處理器還被配置為將所述第二多個命令載入所述宏存儲器中。
17.根據權利要求16所述的設備,還包括操作數隊列,所述操作數隊列被配置為存儲 多個操作數,所述多個操作數能夠被所述命令隊列中的所述多個命令和所述宏存儲器中的 所述第二多個命令存取,其中所述處理器被配置為將所述多個操作數載入所述操作數隊列 中。
18.一種方法,包括從集成電路的存儲器接口單元中的命令隊列中讀取多個命令;和響應於所述命令隊列中的所述多個命令,使控制器在所述集成電路的外部接口上與被 耦接至所述外部接口的一個或多個存儲器設備通信,其中所述多個命令促使所述一個或者 多個存儲器設備和所述集成電路之間的存儲器傳送,其中所述存儲器傳送包括一頁或多頁 數據。
19.根據權利要求18所述的方法,其中所述多個命令包括使得所述控制器向所述一個 或者多個存儲器設備發送地址的第一命令,使得所述控制器向所述一個或多個存儲器設備 發送一組晶片使能的第二命令,和至少一個使得所述控制器傳送一頁數據的第三命令。
20.根據權利要求18所述的方法,其中所述多個命令包括使得所述控制器在接口上向 所述一個或者多個存儲器設備發送對應命令的第一命令,所述對應命令在存儲器接口協議 中為所述一個或者多個存儲器設備定義。
全文摘要
本公開涉及用於外圍組件的命令隊列。在一個實施例中,外圍組件被配置為控制集成電路的外部接口。例如,外圍組件可以是諸如快閃記憶體接口單元的存儲器接口單元。在去向/來自外部接口的數據傳送和到外圍組件的控制通信之間可共享到外圍組件的內部接口。外圍組件可包括被配置來存儲一組命令以通過接口執行傳送的命令隊列。控制電路可被耦接至命令隊列,並可讀取命令和與接口控制器通信以響應於該命令促成通過接口的傳送。在一個實施例中,響應於命令隊列中的宏命令,宏存儲器可存儲要執行的命令序列。在一個實施例中,操作數隊列可存儲由這些命令使用的操作數數據。
文檔編號G06F13/28GK102053930SQ20101060877
公開日2011年5月11日 申請日期2010年11月10日 優先權日2009年11月10日
發明者D·C·李, D·P·羅斯, T·M·託克斯 申請人:蘋果公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀