TWI493350B - 用於周邊組件之高優先權命令佇列 - Google Patents
用於周邊組件之高優先權命令佇列 Download PDFInfo
- Publication number
- TWI493350B TWI493350B TW101131399A TW101131399A TWI493350B TW I493350 B TWI493350 B TW I493350B TW 101131399 A TW101131399 A TW 101131399A TW 101131399 A TW101131399 A TW 101131399A TW I493350 B TWI493350 B TW I493350B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- commands
- flash memory
- macro
- command queue
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
本發明係關於積體電路領域,且更特定言之,係關於一積體電路中之一周邊組件中的命令處理。
在具有很大資料頻寬之周邊介面控制器中,可能發生的挑戰之一為提供來自外部處理器之控制輸入給該周邊介面控制器。通常,使用在周邊介面控制器與記憶體之間傳送資料的至周邊控制器之相同內部介面來提供來自外部處理器之控制輸入(例如,經由至周邊介面控制器中之控制暫存器的一系列寫入)。在該等資料傳送發生時,該等資料傳送可使記憶體至周邊介面飽和。因此,可有效地阻止用以安排下一組資料傳送之控制輸入,直至當前資料傳送完成為止。在提供該等控制輸入的時間期間,受周邊介面控制器控制之外部周邊介面可閒置。
一種用於減少周邊至記憶體介面上之爭用(contention)的機制為:在周邊介面控制器中包括一處理器,該處理器執行用以控制周邊介面控制器硬體之程式。然而,此機制在以下若干方面成本高:在獲取處理器(不論是作為離散組件或是作為可併入至周邊介面控制器設計中之智慧性質)所需之金錢方面;在包括處理器時周邊介面控制器所佔用之空間方面;及在處理器所消耗之電力方面。另外,待執行之程式儲存於系統記憶體中,且因此指令提取可與周邊至記憶體介面上的資料傳送相競爭。
另外,在於開始給定資料傳送之後識別執行更重要(或較高優先權)資料傳送之需要的狀況下,中斷一資料傳送以執行另一資料傳送係複雜的。
在一實施例中,一種積體電路包括一周邊組件,該周邊組件經組態以控制該積體電路之一外部介面。舉例而言,該周邊組件可為一記憶體介面單元,諸如一快閃記憶體介面單元。可在至/自該外部介面的資料傳送與至該周邊組件的控制通信之間共用至該周邊組件之內部介面。該周邊組件可包括一低優先權命令佇列,該低優先權命令佇列經組態以儲存用以執行該介面上之一傳送之一命令集。另外,該周邊組件可包括一高優先權命令佇列,該高優先權命令佇列經組態以儲存用以執行該介面上之一傳送之一第二命令集。該低優先權佇列中之該等命令可包括識別可中斷該命令集以執行該第二命令集之點的指示。一控制電路可耦接至該低優先權命令佇列且可讀取該等命令並與一介面控制器通信以回應於該等命令而引起該介面上之一傳送。另外,該控制電路可回應於該等指示而中斷來自該低優先權佇列之該等命令之處理,且可處理來自該高優先權命令佇列之命令。
在一實施例中,可比需要首先排空該低優先權佇列的情況更快地執行藉由該第二命令集表示之該高優先權傳送。另外,藉由在一可中斷點處中斷該低優先權傳送,可在已完成該高優先權傳送時再繼續該低優先權傳送。在該高優
先權傳送之前發生的處理可能已正確地完成且不需要重複。
以下詳細描述參看現簡短描述之隨附圖式。
雖然本發明易受各種修改及替代形式影響,但在諸圖式中藉由實例展示本發明之特定實施例,且將在本文中對本發明之特定實施例進行詳細描述。然而,應理解,該等圖式及對圖式之詳細描述並非意欲將本發明限於所揭示的特定形式,而正相反,本發明應涵蓋屬於藉由所附申請專利範圍界定的本發明之精神及範疇內的所有修改、等效物及替代物。本文中所使用之標題僅用於達成組織性目的,且不意欲用以限制此描述之範疇。如遍及本申請案所使用,字「可」以許可之意義(亦即,意謂有可能)而非強制性之意義(亦即,意謂必須)來使用。類似地,詞「包括」、「包含」意謂包括但不限於。
可將各種單元、電路或其他組件描述為「經組態以」執行一或多個任務。在此等上下文中,「經組態以」為對結構之寬泛陳述,其大體意謂「具有電路,該電路」在操作期間執行該一或多個任務。因而,單元/電路/組件可經組態以甚至在單元/電路/組件當前未接通時亦執行任務。大體而言,形成對應於「經組態以」之結構的電路可包括硬體電路及/或儲存可執行以實施操作之程式指令的記憶體。記憶體可包括揮發性記憶體(諸如,靜態或動態隨機存取記憶體),及/或非揮發性記憶體(諸如,光碟或磁碟儲
存器、快閃記憶體、可程式化唯讀記憶體,等等)。類似地,為了描述之便利起見,可將各種單元/電路/組件描述為執行一或多個任務。此等描述應被解譯為包括片語「經組態以」。陳述經組態以執行一或多個任務之單元/電路/組件明確地不意欲援引35 U.S.C.§ 112第六段對彼單元/電路/組件之解譯。
現轉而參看圖1,展示積體電路10之一實施例之方塊圖,積體電路10耦接至外部記憶體12及一或多個快閃記憶體器件28A至28B。在所說明實施例中,積體電路10包括記憶體控制器14、互連網狀架構(interconnect fabric)16、諸如組件18A至18B之一組周邊組件、快閃記憶體介面單元30、中央DMA(CDMA)控制器20、包括第1層級(L1)快取記憶體24之處理器22、第2層級(L2)快取記憶體26及輸入/輸出(I/O)處理器(IOP)32。記憶體控制器14耦接至記憶體12可耦接至之記憶體介面,且耦接至互連網狀架構16。在所說明實施例中,CDMA控制器20、L2快取記憶體26及處理器22(經由L2快取記憶體26)亦耦接至互連網狀架構16。L2快取記憶體26耦接至處理器22,且CDMA控制器20耦接至組件18A至18B、快閃記憶體介面單元30及IOP 32。一或多個周邊組件18A至18B(諸如,周邊組件18A)亦可耦接至外部介面。在其他實施例中,其他組件(例如,其他周邊組件)可直接耦接至互連網狀架構16。
CDMA控制器20可經組態以執行記憶體12、各種周邊組件18A至18B及/或快閃記憶體介面單元30之間的DMA操
作。各種實施例可包括經由CDMA控制器20耦接之任何數目個周邊組件及/或快閃記憶體介面單元30。處理器22(且更特定言之,由處理器22執行之指令)可程式化CDMA控制器20以執行DMA操作。各種實施例可以各種方式程式化CDMA控制器20。舉例而言,可將DMA描述符寫入至記憶體12,DMA描述符描述待執行之DMA操作,且CDMA控制器20可包括可程式化以將DMA描述符定位於記憶體12中之暫存器。可針對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。特定言之,用於自記憶體12之DMA讀取的DMA資料可流經記憶體控制器14,流經互連網狀架構16,流經CDMA控制器20,至周邊組件18A至18B或快閃記憶體介面單元30(且在可適用之情況下,可能在周邊組件耦接至之介面上)。用於至記憶體之DMA寫入的資料可在相反方向上流動。
在一實施例中,由處理器22及/或IOP 32執行之指令亦可使用被稱作程式化輸入/輸出(PIO)操作之讀取及/或寫入操作來與周邊組件18A至18B及快閃記憶體介面單元30通信。PIO操作可具有位址,積體電路10將該位址映射至周邊組件18A至18B或快閃記憶體介面單元30(且更特定言之,映射至組件中之暫存器或其他可讀取/可寫入資源)。位址映射在位址空間中可為固定的,或可為可程式化的。或者,可以可區分於記憶體讀取/寫入操作之方式傳輸PIO操作(例如,在互連網狀架構16上使用不同於記憶體讀取/寫入操作之命令編碼,使用旁頻帶信號或控制信號來指示記憶體對PIO,等等)。對於此等實施方案,PIO傳輸仍可包括位址,該位址可在PIO位址空間內識別周邊組件18A至18B或快閃記憶體介面單元30(及已定址之資源)。已定址之資源可為已定址之組件/單元內之任何資源,諸如組態或控制暫存器、邏輯資源(例如,PIO可經解譯為命
令),等等。
在一實施例中,PIO操作可使用與CDMA控制器20相同之互連件,且可流經CDMA控制器20,以用於周邊組件18A至18B及快閃記憶體介面單元30。因此,PIO操作可由處理器22發佈至互連網狀架構16上(在此實施例中,經由L2快取記憶體26),發佈至CDMA控制器20,及發佈至目標周邊組件/快閃記憶體介面單元。類似地,IOP 32可將PIO操作發佈至CDMA控制器20,CDMA控制器20可經由相同互連件將PIO操作傳輸至周邊組件18A至18B或快閃記憶體介面單元30。
因此,用於至/自周邊組件18A至18B或快閃記憶體介面單元30之DMA操作的資料傳送可與至/自相同周邊組件18A至18B或快閃記憶體介面單元30之PIO操作相衝突。舉例而言,快閃記憶體介面單元30可經由PIO操作程式化以執行至/自快閃記憶體器件28A至28B之記憶體傳送。對於寫入操作,CDMA控制器20可對待寫入至快閃記憶體介面單元30之資料進行DMA。對於讀取操作,CDMA控制器20可對待自快閃記憶體介面單元30讀取之資料進行DMA。在實施例中,快閃記憶體器件28A至28B可支援至/自器件之資料頁傳送。頁之大小與器件相依,且可能不與用於針對記憶體12之虛擬至實體位址轉譯的頁大小相同。舉例而言,常常使用512位元組、2048位元組及4096位元組之頁大小。因此,在此上下文中,頁可為針對記憶體器件之資料傳送之單位。
快閃記憶體介面單元30可經程式化以執行資料頁傳送,且CDMA單元20可執行DMA操作以傳送資料。若將傳送多頁,則可使用額外PIO操作來程式化快閃記憶體介面單元30以執行下一傳送。然而,DMA操作可有效地阻止額外PIO操作,直至當前頁完成為止。因此,在針對下一頁而程式化快閃記憶體介面單元30的同時流逝之時間可能會造成至快閃記憶體器件之介面上的閒置時間。
另外,可起始DMA傳送,且接著可能在IC 10中需要較高優先權資料傳送。舉例而言,關於快閃記憶體介面單元30,正在進行之DMA傳送可藉由應用程式來起始,且接著作業系統可能需要將資料分頁調出至快閃記憶體28A至28B或自快閃記憶體28A至28B讀取資料以滿足尋頁錯失。或者,在背景中執行之應用程式可能已開始DMA傳送,且主動使用之(前景)應用程式可能需要執行傳送。在另一實例中,可對應用程式指派優先權。在又一實例中,IC 10中之硬體可能需要存取快閃記憶體28A至28B且優先權可能高於軟體存取。
在一實施例中,快閃記憶體介面單元30可支援多個命令佇列。可將針對待傳送之一組頁而程式化快閃記憶體介面單元30的命令排入佇列於命令佇列中之一者中。一旦針對第一頁之DMA操作開始,用以針對後續頁而程式化快閃記憶體介面單元30之資料便可能已儲存於命令佇列中。因此,用以程式化快閃記憶體介面單元30的PIO操作與用以傳送資料的DMA操作之間可能沒有衝突。歸因於處理來自
命令佇列的命令之能力(該等命令用以在CDMA單元30完成針對當前頁之DMA操作的同時針對待傳送之下一頁而組態快閃記憶體控制器30),因此可增加對至快閃記憶體器件28A至28B之介面的利用。
此外,命令佇列可具有與其相關聯之優先權。舉例而言,可包括兩個佇列。一個佇列可為低優先權佇列,且另一個佇列可為高優先權佇列。快閃記憶體介面單元30可經組態以在存在待處理之高優先權佇列中之命令的情況下,中斷低優先權佇列中之命令的處理。因此,較高優先權傳送可中斷較低優先權傳送。在一實施例中,低優先權佇列可包括識別命令串流中可准許中斷之位置之一或多個指示。指示可確保中斷發生於命令中的「良好」地點處(例如,在頁尾處,在同步點處,等等)。亦即,可完成在將命令寫入至高優先權佇列時之時間發生於低優先權佇列中的操作,因此彼等操作不需要在結束高優先權處理之後再次予以執行。在一實施例中,可靜態地將佇列指派為高優先權或低優先權。在其他實施例中,優先權可為可程式化的。
在實施例中,快閃記憶體介面單元30可支援用以儲存一或多個巨集之巨集記憶體。一巨集可為兩個或兩個以上命令之一序列,其可經由一巨集命令予以調用。舉例而言,可將巨集命令寫入至命令佇列中之一者,且可在由快閃記憶體介面單元30執行巨集命令時調用巨集。可將實施頻繁使用之命令序列的巨集下載至巨集記憶體,且因此隨後不
需要下載較多的命令。亦即,可將巨集命令寫入至命令佇列,而非重複地寫入儲存於巨集中之命令。在一實施例中,巨集命令可指定巨集之開始位址及巨集中之字組(word)的數目。一旦已自巨集讀取該數目個字組且已執行對應命令,便可執行對應命令佇列中在巨集命令之後的下一命令。因此,在實施例中,可在巨集中避免返回命令,從而准許更密集之巨集。其他實施例可使用開始位址及命令之數目作為運算元。再其他實施例可實施返回命令,且巨集命令可包括開始位址(但不包括字組/命令計數)作為運算元。在實施例中,巨集命令亦可包括迴圈計數運算元。迴圈計數運算元可指定待執行之巨集的反覆之數目。因此,執行巨集命令可包括讀取在開始位址處開始之該數目個字組及執行命令(反覆迴圈計數數目次),之後進行命令佇列中在巨集命令之後的下一命令。
命令佇列中之命令及/或巨集記憶體中之命令可使用運算元來控制其操作。在一些狀況下,運算元可儲存於對應命令佇列中。在其他狀況下,運算元可儲存於運算元佇列中。命令佇列中或巨集記憶體中之命令可指定:快閃記憶體介面單元30自運算元佇列載入運算元且對運算元進行操作。運算元佇列可供巨集使用以供應針對一般巨集之例項特定資料(例如,快閃記憶體位址、晶片啟用,等)。類似地,運算元佇列可供應針對命令佇列中的命令之運算元。
如本文中所使用,記憶體傳送可指代至/自記憶體器件的資料傳送(經由至記憶體器件之介面)。因此,至/自快閃
記憶體器件28A至28B之記憶體傳送可發生於快閃記憶體器件28A至28B與快閃記憶體介面單元30之間的介面之上。類似地,至/自記憶體12之記憶體傳送可發生於記憶體12與記憶體控制器14之間的介面之上。記憶體傳送可使用由記憶體器件定義之協定發生。另外,命令可指代一或多個位元組之資料,其由周邊組件(例如,快閃記憶體介面單元30)中之硬體解譯為指定待由硬體執行之特定操作。
大體而言,周邊組件可為待包括於具有處理器之積體電路10上之任何所要電路。周邊組件可具有已定義之功能性及介面,積體電路10之其他組件可藉由該已定義之功能性及介面與周邊組件通信。舉例而言,周邊組件可包括:諸如顯示控制器、圖形處理器等之視訊組件;諸如數位信號處理器、混頻器等之音訊組件;諸如乙太網路媒體存取控制器(MAC)或無線保真度(WiFi)控制器之網路連接組件;用以在諸如通用串列匯流排(USB)、周邊組件互連(PCI)或其變體(諸如,快速PCI(PCIe))、串列周邊介面(SPI)、快閃記憶體介面等之各種介面上通信的控制器。快閃記憶體介面單元30可為周邊組件之一實例,且本文中所描述之周邊組件的一般性質可適用於快閃記憶體介面單元30。
處理器22可實施任何指令集架構,且可經組態以執行彼指令集架構中所定義之指令。處理器22可使用任何微架構,包括純量、超純量、管線化、超管線化、無序、有序、推測、非推測等,或其組合。處理器22可包括電路,
且視情況可實施微編碼技術。在所說明實施例中,處理器22可包括用於儲存供處理器22使用之資料及指令的L1快取記憶體24。可存在單獨的L1資料及指令快取記憶體。L1快取記憶體可具有任何容量及組織(集合關聯式、直接映射式等)。在所說明實施例中,亦提供L2快取記憶體26。與L1快取記憶體類似,L2快取記憶體26可具有任何容量及組織。
類似地,IOP 32可實施任何指令集架構,且可經組態以執行彼指令集架構中所定義之指令。由IOP 32實施之指令集架構不需要為與由處理器22實施之指令集架構相同的指令集架構。在一實施例中,IOP 32可為功率、效能比處理器22低之處理器。IOP 32可處置各種I/O介面發佈(組態周邊組件以執行所要操作、某一錯誤處置等)。IOP 32可執行指令以將命令寫入至快閃記憶體介面單元30中之命令佇列,將巨集寫入至快閃記憶體介面單元30中之巨集記憶體,及/或將運算元寫入至快閃記憶體介面單元30中之運算元佇列。IOP 32可進一步執行指令以服務於其他周邊組件18A至18B。因此,處理器22可執行其他計算任務,或在無其他計算任務待執行的情況下,可將處理器22斷電以節省電力。IOP 32可使用任何微架構,包括純量、超純量、管線化、超管線化、無序、有序、推測、非推測等,或其組合。IOP 32可包括電路,且視情況可實施微編碼技術。
互連網狀架構16可為記憶體控制器14、處理器22(經由
L2快取記憶體26)、L2快取記憶體26及CDMA控制器20可藉以通信之任何互連件。互連網狀架構16可實施任何類型之互連件(例如,匯流排、封包介面、點對點鏈路等)。在一實施例中,互連網狀架構16可為互連件階層架構。舉例而言,處理器22及快取記憶體24及26可以包括一致性埠及至記憶體控制器14之埠的「核心複合體」來實施。CDMA控制器20可耦接至一致性埠。在一些實施例中,記憶體控制器14可為多埠的。在一些此等實施例中,CDMA控制器20可耦接至記憶體控制器14上之單獨埠。在其他此等實施例中,CDMA控制器20仍可經由ACP埠而耦接。
記憶體控制器14可經組態以自系統介面單元16接收記憶體請求。記憶體控制器14可經組態以使用針對所附接之記憶體12定義的介面存取記憶體12以完成請求(針對寫入請求將所接收之資料寫入至記憶體12,或回應於讀取請求而提供來自記憶體12之資料)。記憶體控制器14可經組態以與任何類型之記憶體12(諸如,動態隨機存取記憶體(DRAM)、同步DRAM(SDRAM)、雙資料速率(DDR、DDR2、DDR3等)SDRAM、RAMBUS DRAM(RDRAM)、靜態RAM(SRAM),等)介接。記憶體可配置為多個記憶體組,諸如雙列直插式記憶體模組(DIMM)、單列直插式記憶體模組(SIMM)等。在一實施例中,一或多個記憶體晶片以封裝疊加(POP)或晶片疊加(COC)組態附接至積體電路10。
記憶體12可包括一或多個記憶體器件。大體而言,記憶
體器件可為經設計以在寫入操作中根據伴隨資料而提供的位址來儲存資料且在讀取操作中在位址被使用時供應彼資料之任何組件。上文提及之記憶體類型之實例中的任一者可實施於記憶體器件中,且快閃記憶體器件28A至28B亦可為記憶體器件。記憶體器件可為連接至諸如印刷電路板之基板的一個晶片或多個晶片(例如,SIMM或DIMM,或直接連接至IC 10耦接至之電路板),等。
快閃記憶體介面單元30可包括經組態以接收針對快閃記憶體器件28A至28B的讀取及寫入請求且經組態以介接至快閃記憶體器件28A至28B以完成讀取/寫入請求之電路。在一實施例中,讀取/寫入請求可源自CDMA控制器20。快閃記憶體介面單元30可經由一或多個控制暫存器(參見下文所描述之圖2)程式化以執行至/自快閃記憶體器件28A至28B之記憶體傳送(例如,經由PIO操作)。快閃記憶體器件28A至28B可為快閃記憶體,即,此項技術中已知之一種類型的非揮發性記憶體。在其他實施例中,可使用其他形式之非揮發性記憶體。舉例而言,可使用帶後備電池式SRAM、諸如電可抹除可程式化ROM(EEPROM)之各種類型的可程式化ROM等。在再其他實施例中,可使用與記憶體12類似之揮發性記憶體。
雖然本發明實施例描述在快閃記憶體介面單元30中使用命令佇列(FIFO)、巨集記憶體及/或運算元佇列(FIFO),但其他實施例可用任何類型之記憶體或周邊介面在任何周邊組件中實施該等特徵。
注意,其他實施例可包括組件之其他組合,包括圖1中所展示之組件及/或其他組件之子集或超集。雖然可能在圖1中展示給定組件之一例項,但其他實施例可包括該給定組件之一或多個例項。
現轉而參看圖2,展示快閃記憶體介面單元30之一實施例之方塊圖。在所說明實施例中,快閃記憶體介面單元30包括低優先權(LP)命令FIFO 40、高優先權(HP)命令佇列41、快閃記憶體介面(FMI)控制電路42、巨集記憶體44、運算元FIFO 46、快閃記憶體控制器(FMC)48、包括暫存器51之一組FMC控制暫存器50、資料緩衝器52A至52B,及錯誤檢查/校正(ECC)單元54。命令FIFO 40及命令FIFO 41、FMI控制電路42、巨集記憶體44、運算元FIFO 46及緩衝器52A至52B皆耦接至至CDMA控制器20之一內部介面。FMI控制電路42進一步耦接至命令FIFO 40及命令FIFO 41、巨集記憶體44、運算元FIFO 46及FMC控制暫存器50。FMC控制暫存器50進一步耦接至FMC 48,FMC 48耦接至至快閃記憶體器件之一外部介面。FMC 48進一步耦接至緩衝器52A至52B。ECC單元54亦耦接至緩衝器52A至52B。
FMI控制電路42可經組態以自CDMA控制器20接收PIO操作。一些PIO操作可能針對命令FIFO 40及命令FIFO 41、巨集記憶體44或運算元FIFO 46。舉例而言,PIO寫入可用以將命令寫入至命令FIFO 40或命令FIFO 41中,將巨集下載至巨集記憶體44中,或將運算元寫入至運算元FIFO 46
中。可將位址指派給FIFO 40及FIFO 41、巨集記憶體44及運算元FIFO 46中之每一者,該等位址可用於PIO運算元中以定址所要資源。舉例而言,FIFO 40、FIFO 41及FIFO 46可具有單一經指派之位址,此係由於FIFO 40、FIFO 41及FIFO 46可以先進先出方式操作。至位址之PIO寫入可引起FMI控制電路42將伴隨寫入而提供之資料儲存於FIFO 40、FIFO 41或FIFO 46中之下一開放項目中。亦即,可將資料附加至FIFO 40、FIFO 41或FIFO 46之尾部,其中將命令或運算元自FIFO 40、FIFO 41或FIFO 46之頭部移除。巨集記憶體44可具有指派給其之一系列位址,例如,巨集記憶體44之每一字組一位址。至位址之PIO寫入可將所提供之資料字組儲存於巨集記憶體44之已定址的字組中。
FMI控制電路42可處理命令FIFO 40或命令FIFO 41中之命令以程式化各種FMC控制暫存器50,從而引起FMC 48執行至/自快閃記憶體器件28A至28B之特定記憶體傳送。在一實施例中,FMC 48經組態以經由FMC控制暫存器50接收包括位址、晶片啟用、傳送命令等之相對低層級控制。命令FIFO 40及命令FIFO 41中之命令可由FMI控制電路42來解譯且對應FMC控制暫存器50可由FMI控制電路42來寫入。類似地,等待事件之命令可由FMI控制電路42來解譯以讀取一或多個FMC控制暫存器50,從而偵測事件。在FMI控制電路42至FMC 48之間亦可能存在直接控制信號,在一些實施例中(圖2中未展示),FMI控制電路42可回
應於命令而驅動該等直接控制信號及/或FMI控制電路42可回應於命令而監視該等直接控制信號。
FMI控制電路42可經組態以自命令FIFO 40或命令FIFO 41讀取命令(按寫入至彼FIFO之次序)。更大體而言,可支援命令佇列(例如,可能未特別地將命令FIFO 40及命令FIFO 41建構為FIFO,使得佇列中之每一項目可同時對FMI控制電路42可見)。類似地,運算元FIFO 46可為運算元佇列,且FMI控制電路42可回應於命令佇列或巨集記憶體44中之命令而自運算元FIFO 46讀取運算元(按寫入運算元之次序)。
若FIFO 40與FIFO 41兩者為空且接著將命令寫入至LP命令FIFO 40,則FMI控制電路42可自LP命令FIFO 40讀取命令且執行命令。若在FMI控制電路42正處理來自LP命令FIFO 40之命令時將命令寫入至HP FIFO 41,則FMI控制電路42可判定中斷來自FIFO 40之命令的處理以開始處理來自FIFO 41之命令的點。在圖2中,針對此實施例,說明LP命令FIFO 40中之若干項目。在此實施例中,LP命令FIFO 40中之每一項目可包括針對命令之儲存,連同良率位元(「Y」)。若針對給定命令設定良率位元,則可在處理給定命令之後中斷命令之處理。若清除良率位元,則可能不中斷處理。良率位元可為針對至LP命令FIFO 40之PIO寫入的PIO資料之部分。在其他實施例中,可使用其他指示(例如,針對設定及清除狀態具有相反含義的位元、多位元值,等)。此外,其他實施例可在FIFO 40中使用單獨命令
來指示可中斷性。亦即,若存在此等命令,則可定義以下之一命令:該命令之操作係准許FMI控制電路40中斷來自FIFO 40之處理以處理來自FIFO 41的命令。若FIFO 41中不存在命令正等待處理,則FIFO 40中之處理可繼續進行下一命令。
回應於中斷LP命令FIFO 40中之命令的處理以處理HP命令FIFO 41中之命令,在此實施例中,FMI控制電路42可經組態以設定暫存器51中之HPE位元。一旦設定HPE位元,FMI控制電路42便可經組態以處理來自HP命令FIFO 41之命令(若有的話),但可能不處理來自LP命令FIFO 40之命令直至清除HPE位元為止。FMI控制電路42可能不清除HPE位元,而是軟體可藉由寫入暫存器51進行此動作。以此方式,若FMI控制電路42在軟體結束填充命令FIFO 41(例如,歸因於軟體之中斷,將命令傳輸至快閃記憶體介面單元30之延遲,等)之前排空HP命令FIFO 41,則FMI控制電路42可能不會過早地返回至處理來自LP命令FIFO 40之命令。另外,一旦完成高優先權命令序列,軟體便可讀取LP命令FIFO 40以判定在何處中斷較低優先權命令序列。
在一些實施例中,軟體亦可寫入暫存器51以設定HPE位元。進行此動作可引起FMI控制電路42在下一邊界(如藉由Y個位元指示)處中斷LP命令FIFO 40之處理。此操作可准許軟體停止LP命令FIFO 40之處理,且可准許軟體查核LP命令FIFO 40的狀態。類似地,軟體可將等待命令(或未引
起快閃記憶體介面30或控制暫存器50之組態的改變之其他命令)寫入至HP命令FIFO 41,該等待命令可引起FMI控制電路42在適當點處中斷來自LP命令FIFO 40之命令的處理。
如先前所提及,巨集命令可在命令FIFO 40或命令FIFO 41中之一者中,且FMI控制電路42可回應於巨集命令而執行來自巨集記憶體44之命令。在其他實施例中,可以PIO操作之形式將巨集命令傳輸至FMI控制電路42。在再其他實施例中,可在命令FIFO 40或命令FIFO 41中或在PIO操作中遇到巨集命令。巨集命令可包括在巨集記憶體中之開始位址及指示自巨集記憶體44讀取之字組的數目之字組計數。FMI控制電路42可在讀取對應命令FIFO 40或命令FIFO 41中之下一命令(在巨集命令之後)之前執行巨集中之命令。在一實施例中,除命令之外,巨集中之字組亦可包括運算元。其他實施例可使用命令計數而非字組計數。如上文所提及,巨集命令亦可包括迴圈計數,且可將巨集反覆藉由迴圈計數指示之數目次。
自命令FIFO 40及命令FIFO 41及自運算元FIFO 46讀取字組可包括FMI控制電路42自FIFO刪除彼等字組。另一方面,自巨集記憶體44讀取字組可能不涉及刪除該等字組,以使得可重複地執行巨集。
FMC 48可回應於FMC控制暫存器50之內容而執行記憶體傳送,將自快閃記憶體器件28A至28B讀取之資料寫入至緩衝器52A至52B,或將自緩衝器52A至52B讀取之資料
寫入至快閃記憶體器件28A至28B。可以來回(ping-pong)方式使用緩衝器52A至52B,其中對緩衝器52A至52B中之一者填充資料而清空另一者。舉例而言,自快閃記憶體器件28A至28B讀取可包括FMC 48填充緩衝器52A至52B中之一者,而另一緩衝器52A至52B由對記憶體12執行DMA操作的CDMA控制器20清空。至快閃記憶體器件28A至28B之寫入可包括CDMA控制器20對緩衝器52A至52B中之一者填充資料,而FMC 48清空另一緩衝器52A至52B。ECC單元54可產生用於至快閃記憶體器件28A至28B的寫入之ECC資料,且可檢查用於自快閃記憶體器件28A至28B的讀取之ECC資料。
現轉而參看圖3,展示說明FMI控制電路42之一實施例回應於自CDMA控制器20接收PIO操作而進行的操作的流程圖。雖然為了易於理解而按特定次序展示區塊,但可使用其他次序。可在FMI控制電路42中以組合邏輯並行執行區塊。舉例而言,圖3中所說明之決策區塊可為獨立的且可並行執行。可在多個時脈循環內對區塊、區塊之組合及/或作為整體之流程圖進行管線作業。FMI控制電路42可經組態以實施圖3中所說明之操作。
若將PIO寫入定址至LP命令FIFO 40(決策區塊60,「是」支路),則FMI控制電路42可經組態以用來自PIO寫入之資料更新LP命令FIFO 40中之下一項目(區塊62)。亦即,可將來自PIO寫入之資料附加至LP命令FIFO 40之尾部。如上文所提及,PIO資料在此實施例中可為命令及良率位元。
若將PIO寫入定址至HP命令FIFO 41(決策區塊61,「是」支路),則FMI控制電路42可經組態以用來自PIO寫入之資料更新HP命令FIFO 41中之下一項目(區塊63)。亦即,可將來自PIO寫入之資料附加至HP命令FIFO 41之尾部。如上文所提及,PIO資料在此實施例中可為命令。若將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,展示表76,其說明快閃記憶體介面單元30(且更特定言之,FMI控制電路42)之一實施例可支援的例示性命令集。其他實施例可支援任何其他命令集,包括圖4中所展示之命令的子集、該等命令及其他命令之子集及/或該等命令及其他命令之超集。表包括列出每一命令之「命令」欄、指示針對給定命令之運算元的「運算元」欄,及指示命令FIFO 40或命令FIFO 41中由命令佔用的字組之數目之「字組數」欄。
命令之格式在不同實施例中可變化。舉例而言,在一實
施例中,每一命令可包括識別命令集內之命令的作業碼位元組(亦即,可經由一不同的作業碼編碼來識別表76中之每一項目)。形成命令的該一或多個字組中之剩餘位元組可用以指定針對命令之運算元。在各種實施例中,命令可儲存於命令FIFO 40或命令FIFO 41或者巨集記憶體44中。
位址命令(表76中之addr0至addr7)可用以在至快閃記憶體器件28A至28B之介面(更簡明地稱作快閃記憶體介面)上發佈位址位元組。「addr」之後的數字指示在快閃記憶體介面上傳輸之位址位元組的數目(自位址之位元組0開始)。在一實施例中,FMI控制電路42可經組態以暫停,直至已傳輸位址位元組為止,之後執行下一命令。addrX命令可等效於:藉由位址位元組來程式化以下FMC控制暫存器50(在一實施例中,為一或多個位址暫存器),及在一或多個暫存器中程式化傳送數目及讀取/寫入模式。回應於讀取/寫入模式,FMC 48可在快閃記憶體介面上傳輸位址位元組且可在FMC控制暫存器50內之狀態暫存器中用信號發出定址完成中斷。另外,addrX命令可進一步包括等待及清除狀態暫存器中之定址完成中斷。addr0命令可能與addr1至addr7命令不同之處在於:不程式化位址暫存器及位址傳送數目暫存器。取而代之,可使用諸如下文描述之load_next_word或load_from_fifo命令之其他命令來預先程式化此等暫存器。
cmd命令可用以在快閃記憶體介面上發送快閃記憶體介面命令。在一實施例中,快閃記憶體介面命令為一個位元
組。因此,cmd命令之運算元可為命令位元組,可在快閃記憶體介面上予以傳輸。FMI控制電路42可經組態以暫停,直至在快閃記憶體介面上完成cmd命令為止。cmd命令可等效於:藉由命令位元組程式化FMC控制暫存器50中之命令暫存器;設定另一FMC控制暫存器50中之命令模式位元;及等待並清除FMC控制暫存器50內之狀態暫存器中的cmd完成中斷。回應於命令模式位元之設定,FMC 48可經組態以在快閃記憶體介面上傳輸命令位元組,且可將cmd完成中斷寫入至狀態暫存器。
enable_chip命令可用以寫入FMC控制暫存器50之晶片啟用暫存器,其可引起FMC 48基於晶片啟用運算元而在快閃記憶體介面上驅動晶片啟用信號。
xfer_page命令可用以起始至/自快閃記憶體器件28A至28B之頁傳送。回應於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、「暫停」、timed_wait,及wait_for_int。wait_for_rdy命令可用以在頁傳送期間監視快閃記憶體器件28A至28B之狀態。wait_for_rdy命令可包括:等待並清除FMC控制暫存器50之狀態暫存器中的特定「完成」中斷(例如,頁完成);藉由遮罩運算元來遮蔽狀態暫存器中之狀態位元組;及比較經遮蔽之狀態位元組與條件運算元。若經遮蔽之狀態位元組匹配條件運算元,則FMI控制電路42可經組態以執行下一命令。若經遮蔽之狀態位元組不匹配條件運算元,則FMI控制電路42可用信號發出中斷(例如,在各種實施例中,發至IOP 32或處理器22)且可停止執行額外命令,直至IOP 32/處理器22服務於中斷為止。
「暫停」命令可用以暫停由FMI控制電路42進行之命令執行。FMI控制電路42可中止執行命令,直至由在IOP 32/處理器22上執行的將指定之啟用位元寫入於FMC控制暫存器50中之一者中的軟體特別地取消暫停為止。
FMI控制電路42可經組態以經由timed_wait命令而暫停且在若干時脈循環之後再繼續。將時脈循環之數目指定為timed_wait命令之運算元。在一些實施例中,timed_wait命令可用以減緩快閃記憶體介面單元30,此係因為使用命令
FIFO 40、巨集記憶體44及運算元FIFO 46時的可能效能可能超過快閃記憶體器件28A至28B可執行活動之速率。
wait_for_int命令可用以引起FMI控制電路42等待一指定中斷值。運算元可使用「位元」運算元來指定需繼續等待之中斷(irq)及需繼續等待的irq位元之狀態(例如,設定或清除)。
send_interrupt命令可用以將指定中斷發送至IOP 32或處理器22。send_interrupt命令之運算元可指定寫入至FMC控制暫存器50之中斷碼暫存器中的中斷碼,中斷碼可引起發送中斷。
load_next_word及load_from_fifo命令可用以程式化FMC控制暫存器50中之各種暫存器。此等命令之運算元中的一者為待寫入之控制暫存器之暫存器位址。回應於load_next_word命令,FMI控制電路42可自命令FIFO 40讀取下一個字組,且將該字組寫入至已定址的暫存器。回應於load_from_fifo命令,FMI控制電路42可經組態以讀取位於運算元FIFO 46之頭部的字組並將該字組寫入至已定址的暫存器。
「巨集」命令可用以引起FMI控制電路42自巨集記憶體44讀取命令。「巨集」命令包括位址運算元、長度運算元及迴圈計數運算元。位址可識別將自巨集記憶體44讀取之第一字組,且長度可識別巨集之長度(例如,在命令之數目或字組之數目方面)。在一實施例中,長度為字組之數目。迴圈計數可指示待執行之巨集之反覆的數目。在一實
施例中,迴圈計數運算元可比反覆之數目少一(例如,迴圈計數「零」為一次反覆,迴圈計數「一」為兩次反覆等)。一旦巨集完成,便可讀取下一命令FIFO 42(亦即,巨集中可能不存在返回命令)。
「輪詢」命令可用以輪詢FMC控制暫存器50中之任一暫存器以尋找指定值(在使用遮罩欄遮蔽自暫存器所讀取的值之後)。FMI控制電路42可輪詢暫存器,直至偵測到指定值為止,接著進行下一命令。
如以上描述中所註明,作為執行某些命令之部分,FMI控制電路42可監視FMC控制暫存器50內之一或多個狀態暫存器中所記錄的各種中斷。FMI控制電路42可清除中斷且完成對應命令。在命令FIFO 40中無命令之情況下,可改為將中斷轉遞至IOP 32/處理器22(若已啟用)。因此,至FMC控制暫存器50之PIO寫入操作及至IOP 32/處理器22之中斷可為用以執行至/自快閃記憶體器件28A至28B之記憶體傳送的另一機制。
現轉而參看圖5,展示說明處理來自LP命令佇列40之命令的FMI控制電路42之一實施例之操作的流程圖。雖然為了易於理解而按特定次序展示區塊,但可使用其他次序。可在FMI控制電路42中以組合邏輯並行執行區塊。可在多個時脈循環內對區塊、區塊之組合及/或作為整體之流程圖進行管線作業。FMI控制電路42可經組態以實施圖5中所說明之操作。
FMI控制電路42可經組態以自LP命令FIFO 40讀取命令
(區塊80)。若命令並非「巨集」命令(決策區塊82,「否」支路),則FMI控制電路42可經組態以執行命令(區塊84)。一旦命令完成,且若設定良率(Y)位元且在HP命令佇列41中存在有效命令(決策區塊85,「是」支路),則FMI控制電路42可經組態以設定暫存器51中之HPE位元且退出至HP命令處理(例如,至圖6)(區塊87)。類似地,在一些實施例中,FMI控制電路42可經組態以回應於設定HPE位元(例如,藉由寫入暫存器51之軟體)而退出至HP命令處理(或至少中止低優先權處理)。否則(決策區塊84,「否」支路),FMI控制電路42可經組態以檢查字組計數,該字組計數用以判定巨集是否已到達其末端。若命令並非巨集之部分,則字組計數可為零(決策區塊86,「否」支路)。FMI控制電路42可經組態以檢查與「巨集」命令相關聯之迴圈計數。若命令並非巨集之部分,則迴圈計數可為零(決策區塊95,「否」支路)。FMI控制電路42可經組態以判定命令FIFO 40中是否存在另一有效命令(決策區塊88)。亦即,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),且可經組態以檢查字組計數(在此狀況下,可能不存在Y位元且因而決策區塊85可產生「否」支路)。字組計數可大於零(決策區塊86,「是」支路),且FMI控制電路42可經組態以遞減字組計數且自巨集記憶體44讀取下一命令(例如,藉由遞增位址)(區塊94及96)。FMI控制電路42可經組態以處理下一命令(返回至圖5之流程圖中的決策區塊82)。若字組計數為零(決策區塊86,「否」支路),則FMI控制電路42可經組態以檢查迴圈計數。若迴圈計數大於零(決策區塊95,「是」支路),則將執行巨集之另一反覆。FMI控制電路42可遞減迴圈計數(區塊97),重新初始化字組計數及巨集位址(區塊99),且自巨集記憶體44讀取下一命令(亦即,巨集之第一命令)(區塊96)。若字組計數與迴圈計數兩者為零(決策區塊86及95,「否」支路),則巨集完成且FMI控制電路42可在命令佇列40中檢查以尋找下一有效命令(決策區塊88)。
注意,由於檢查每一命令是否為「巨集」命令,因此「巨集」命令亦可儲存於巨集記憶體44中。因此,可將巨集「巢套」,但待執行之最後一個巨集返回至命令FIFO 40,因此在巨集並不返回至呼叫該等巨集的巨集之意義上,並不存在真正的巢套。
圖6為說明處理來自HP命令佇列41之命令的FMI控制電路42之一實施例之操作的流程圖。亦即,可回應於退出如上文關於圖5所論述的LP處理而起始如圖6中所說明之處理(區塊87)。雖然為了易於理解而按特定次序展示區塊,但可使用其他次序。可在FMI控制電路42中以組合邏輯並行執行區塊。可在多個時脈循環內對區塊、區塊之組合及/或作為整體之流程圖進行管線作業。FMI控制電路42可經組態以實施圖6中所說明之操作。
FMI控制電路42可經組態以自HP命令FIFO 40讀取命令(區塊180)。若命令並非「巨集」命令(決策區塊182,「否」支路),則FMI控制電路42可經組態以執行命令(區塊184)。一旦命令完成,FMI控制電路42便可經組態以檢查字組計數,該字組計數用以判定巨集是否已到達其末端。若命令並非巨集之部分,則字組計數可為零(決策區塊186,「否」支路)。FMI控制電路42可經組態以檢查與「巨集」命令相關聯之迴圈計數。若命令並非巨集之部分,則迴圈計數可為零(決策區塊195,「否」支路)。FMI控制電路42可經組態以判定HP命令FIFO 41中是否存在另一有效命令(決策區塊188)。亦即,FMI控制電路42可經組態以判定HP命令FIFO 41是否為空。若存在另一有效命令(決策區塊188,「是」支路),則FMI控制電路42可經組態以讀取並處理下一命令。否則,FMI控制電路42可檢查HPE位元是否清除(決策區塊198)。若HPE位元被清除,則FMI控制電路42可返回至LP命令處理(決策區塊198,「是」
支路)。若HPE位元未被清除(決策區塊198,「否」支路),則FMI控制電路42可閒置,直至有效命令呈現於HP命令FIFO 41中或HPE位元被清除為止。
若命令為「巨集」命令(決策區塊182,「是」支路),則FMI控制電路42可經組態以將字組計數初始化為「巨集」命令之長度運算元且將迴圈計數初始化為「巨集」命令之迴圈計數運算元(區塊190)。FMI控制電路42亦可自巨集記憶體44讀取命令(區塊192)。具體言之,在此狀況下,FMI控制電路42可自巨集記憶體44中之位址讀取第一字組,該位址係作為「巨集」命令之位址運算元而提供。FMI控制電路42可經組態以執行命令(區塊184),且可經組態以檢查字組計數。字組計數可大於零(決策區塊186,「是」支路),且FMI控制電路42可經組態以遞減字組計數且自巨集記憶體44讀取下一命令(例如,藉由遞增位址)(區塊194及196)。FMI控制電路42可經組態以處理下一命令(返回至圖6之流程圖中的決策區塊182)。若字組計數為零(決策區塊186,「否」支路),則FMI控制電路42可經組態以檢查迴圈計數。若迴圈計數大於零(決策區塊195,「是」支路),則將執行巨集之另一反覆。FMI控制電路42可遞減迴圈計數(區塊197),重新初始化字組計數及巨集位址(區塊199),且自巨集記憶體44讀取下一命令(亦即,巨集之第一命令)(區塊196)。若字組計數與迴圈計數兩者為零(決策區塊186及195,「否」支路),則巨集完成且FMI控制電路42可在HP命令FIFO 41中檢查以尋找下一有效命令(決策區塊
188)。
現轉而參看圖7,展示使用巨集執行至快閃記憶體器件28A或28B之多頁寫入之實例的方塊圖。展示巨集記憶體44之內容,其包括三段命令。在巨集記憶體位址0與N-1之間,儲存巨集之N個字組100,其用以完成至前一頁之寫入。在巨集記憶體位址N與N+M-1之間,儲存巨集之M個字組102,其用以開始至下一頁之寫入。在巨集記憶體位址N+M與N+M+P-1之間,儲存巨集之P個字組104,其用以結束至記憶體之最後一頁之寫入。
在圖7中說明LP命令FIFO 40中之命令集,其中FIFO之頭部在LP命令FIFO 40之頂部處且FIFO中之後續命令按沿LP命令FIFO 40向下的次序進行,如圖7中所說明。第一命令為巨集N,M。命令呼叫巨集104(在字組N處開始),且執行M個字組(亦即,如圖6中所說明之巨集102)。因此,至第一頁之寫入得以初始化。可使用巨集0,N+M命令來執行後續頁寫入。此等命令引起執行巨集100及巨集102。可完成至前一頁之寫入(巨集100)且可開始至下一頁之寫入(巨集102)。可使用巨集0,N+M+P命令來寫入最後一頁。此命令引起執行巨集100、102及104,從而完成至倒數第二頁之寫入(巨集100),執行至最後一頁之寫入(巨集102),且完成至最後一頁之寫入並關閉快閃記憶體器件28A或28B(巨集104)。在此實例中,每一「巨集」命令之迴圈計數運算元為零(一次反覆)。然而,在圖7中之第一實例下方所展示之另一實例中,迴圈計數運算元可用以使命令佇列中之命
令甚至更有效率。針對第一頁之巨集N,M命令及針對最後一頁之巨集0,N+M+P命令之迴圈計數可仍為零,從而指定一次反覆。然而,中間頁之寫入皆可使用一「巨集」命令(巨集0,N+M)來實現,其中迴圈計數運算元等於頁計數(C)減去3。考慮第一頁及最後一頁,以及在此實施例中迴圈計數運算元比所要的反覆數目小一之事實,迴圈計數為C-3。如巨集100、102及104說明,經由巨集記憶體44中的巨集之細心配置,可獲得密集且有效率之巨集。巨集可使用load_from_fifo命令以針對每一頁寫入運算元使用不同的運算元,且可在起始LP命令FIFO 40中之命令之前將針對每一頁之運算元載入至運算元FIFO 46中。
巨集102中所包括之命令可建立待寫入之位址、晶片啟用,等。巨集100中所包括之命令可包括用以將前一頁傳送至記憶體之xfer_page,及用以檢查錯誤且使下一頁傳送同步(該下一頁傳送可經由巨集102而初始化)之命令。巨集104可包括最終xfer_page命令,以及用以檢查錯誤及關閉作為寫入之目標的快閃記憶體器件之命令,從而撤銷啟動作用中的頁/區域及/或執行如針對快閃記憶體器件所指定之任何其他操作。
現轉而參看圖8,展示說明將由IOP 32及/或處理器22執行之快閃碼(flash code)的操作之流程圖。雖然為了易於理解而按特定次序展示區塊,但可使用其他次序。快閃碼可包括在由IOP 32及/或處理器22執行時可實施圖8中所說明之操作的指令。
可在積體電路10之操作期間在任何時間執行快閃碼。舉例而言,可執行快閃碼以初始化快閃記憶體介面單元30。亦可在快閃記憶體30已閒置但將被存取之任何時間執行快閃碼,以重組態巨集記憶體44中之巨集,等等。
快閃碼可將任何所要巨集下載至巨集記憶體44(區塊110)。若已儲存於巨集記憶體44中之巨集為所要巨集,或若不存在所要巨集,則可跳過區塊110。快閃碼亦可下載待供命令或巨集使用之任何運算元(區塊112),且若不存在運算元供下載,則可跳過區塊112。快閃碼可將待執行之命令下載至LP命令FIFO 40(區塊114),且命令執行可在快閃記憶體介面單元30中開始。將命令下載至LP命令FIFO 40可包括設定表示操作之一部分的完成的針對彼等命令之Y個位元,使得可准許用於高優先權命令之命令中斷且清除其他Y個位元。若額外命令可供下載(決策區塊116,「是」支路)且彼等命令之優先權高於當前正由快閃記憶體介面單元30執行之命令的優先權(決策區塊120,「是」支路),則快閃碼可將額外命令下載至HP命令FIFO 41(區塊122)。否則(決策區塊120,「否」支路),快閃碼可將命令下載至LP命令FIFO 40(區塊114)。若新的運算元或巨集可供下載(決策區塊118,「是」支路),則快閃碼可返回至區塊110及/或112以下載該等運算元或巨集。另外,在完成HP命令後,快閃碼便可重設暫存器51中之HPE位元(圖8中未展示)。
接下來轉而參看圖9,展示系統150之一實施例的方塊圖。在所說明實施例中,系統150包括耦接至一或多個周邊裝置154及外部記憶體158之積體電路10(來自圖1)的至少一例項。外部記憶體158可包括記憶體12及/或快閃記憶體28A至28B。亦提供電源供應器156,其將供應電壓供應至積體電路10以及將一或多個供應電壓供應至記憶體158及/或周邊裝置154。在一些實施例中,可包括積體電路10之一個以上例項(且亦可包括一個以上外部記憶體158)。
取決於系統150之類型,周邊裝置154可包括任何所要電路。舉例而言,在一實施例中,系統150可為行動器件(例如,個人數位助理(PDA)、智慧型電話等),且周邊裝置154可包括用於各種類型之無線通信(諸如,wifi、藍芽、蜂巢式、全球定位系統等)的器件。周邊裝置154亦可包括額外儲存器,包括RAM儲存器、固態儲存器或磁碟儲存器。周邊裝置154可包括使用者介面器件,諸如顯示螢幕(包括觸控顯示螢幕或多點觸控顯示螢幕)、鍵盤或其他輸入器件、麥克風、揚聲器等。在其他實施例中,系統150可為任何類型之計算系統(例如,桌上型個人電腦、膝上型電腦、工作站、迷你筆記型電腦(net top)等)。
外部記憶體158可包括任何類型之記憶體。舉例而言,外部記憶體158可為SRAM、動態RAM(DRAM)(諸如,同步DRAM(SDRAM))、雙資料速率(DDR、DDR2、DDR3等)SDRAM、RAMBUS DRAM等。外部記憶體158可包括一或多個記憶體模組,記憶體器件(諸如,單列直插式記憶體
模組(SIMM)、雙列直插式記憶體模組(DIMM)等)裝設至該一或多個記憶體模組。
現轉而參看圖10,展示電腦可存取儲存媒體200之方塊圖。大體而言,電腦可存取儲存媒體可包括在使用期間可藉由電腦存取以將指令及/或資料提供至電腦之任何儲存媒體。舉例而言,電腦可存取儲存媒體可包括諸如磁性媒體或光學媒體之儲存媒體,例如,磁碟(固定式或抽取式)、磁帶、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或藍光(Blu-Ray)。儲存媒體可進一步包括可經由諸如通用串列匯流排(USB)介面、快閃記憶體介面(FMI)、串列周邊介面(SPI)等之周邊介面存取之揮發性或非揮發性記憶體媒體,諸如RAM(例如,同步動態RAM(SDRAM)、Rambus DRAM(RDRAM)、靜態RAM(SRAM)等)、ROM、快閃記憶體、非揮發性記憶體(例如,快閃記憶體)。儲存媒體可包括微機電系統(MEMS)。圖10中之電腦可存取儲存媒體200可儲存快閃碼202,快閃碼202可包括可由IOP 32及/或處理器22執行之程式碼。快閃碼202可包括在執行時實施上文關於圖8所描述之操作的指令。大體而言,電腦可存取儲存媒體200可儲存在執行時實施圖8中所展示之操作之一部分或全部的任何指令集。此外,電腦可存取儲存媒體200可儲存待下載至巨集記憶體44之一或多個巨集204、待下載至運算元FIFO 46之一或多個運算元,及/或待下載至命令FIFO 40之一或多個命令。載體媒體可包括電腦可存取儲存媒體以及諸如有線
或無線傳輸之傳輸媒體。
對於熟習此項技術者而言,一旦完全瞭解上述揭示內容,眾多變化及修改便將變得顯而易見。意欲將以下申請專利範圍解譯為包含所有此等變化及修改。
10‧‧‧積體電路
12‧‧‧外部記憶體
14‧‧‧記憶體控制器
16‧‧‧互連網狀架構
18A‧‧‧周邊組件
18B‧‧‧周邊組件
20‧‧‧中央DMA(CDMA)控制器
22‧‧‧處理器
24‧‧‧第1層級(L1)快取記憶體
26‧‧‧第2層級(L2)快取記憶體
28A‧‧‧快閃記憶體
28B‧‧‧快閃記憶體
30‧‧‧快閃記憶體介面單元
32‧‧‧輸入/輸出(I/O)處理器(IOP)
40‧‧‧低優先權(LP)命令先進先出緩衝器(FIFO)
41‧‧‧高優先權(HP)命令佇列
42‧‧‧快閃記憶體介面(FMI)控制電路
44‧‧‧巨集記憶體
46‧‧‧運算元FIFO
48‧‧‧快閃記憶體控制器(FMC)
50‧‧‧FMC控制暫存器
51‧‧‧暫存器
52A‧‧‧資料緩衝器
52B‧‧‧資料緩衝器
54‧‧‧錯誤檢查/校正(ECC)單元
76‧‧‧表
150‧‧‧系統
154‧‧‧周邊裝置
156‧‧‧電源供應器
158‧‧‧外部記憶體
200‧‧‧電腦可存取儲存媒體
202‧‧‧快閃碼
204‧‧‧巨集
206‧‧‧運算元
208‧‧‧命令
圖1為一積體電路、一記憶體及一快閃記憶體之一實施例的方塊圖。
圖2為圖1中所說明之快閃記憶體介面之一實施例的方塊圖。
圖3為說明回應於接收一寫入操作而進行的圖2中所說明之快閃記憶體介面控制電路之一實施例的操作的流程圖。
圖4為說明快閃記憶體介面控制電路所支援的命令之一實施例的表。
圖5為說明回應於自低優先權命令先進先出緩衝器(FIFO)讀取命令而進行的圖2中所展示之快閃記憶體介面控制電路之一實施例的操作的流程圖。
圖6為說明回應於自高優先權命令先進先出緩衝器(FIFO)讀取命令而進行的圖2中所展示之快閃記憶體介面控制電路之一實施例的操作的流程圖。
圖7為一巨集記憶體之實例使用之方塊圖。
圖8為說明圖1中所展示之處理器之一實施例執行的快閃記憶體介面程式碼之一實施例的操作的流程圖。
圖9為包括圖1中所說明之裝置的一系統之一實施例的方塊圖。
圖10為電腦可存取儲存媒體之一實施例的方塊圖。
20‧‧‧中央DMA(CDMA)控制器
28A‧‧‧快閃記憶體
28B‧‧‧快閃記憶體
30‧‧‧快閃記憶體介面單元
40‧‧‧低優先權(LP)命令先進先出緩衝器(FIFO)
41‧‧‧高優先權(HP)命令佇列
42‧‧‧快閃記憶體介面(FMI)控制電路
44‧‧‧巨集記憶體
46‧‧‧運算元FIFO
48‧‧‧快閃記憶體控制器(FMC)
50‧‧‧FMC控制暫存器
51‧‧‧暫存器
52A‧‧‧資料緩衝器
52B‧‧‧資料緩衝器
54‧‧‧錯誤檢查/校正(ECC)單元
Claims (9)
- 一種用以控制一積體電路中之一外部介面之裝置,該裝置包含:一第一命令佇列,其經組態以儲存第一複數個命令,其中該第一命令佇列經進一步組態以儲存識別該第一複數個命令內可准許該第一複數個命令之中斷的點之一或多個指示;一第二命令佇列,其經組態以儲存第二複數個命令;一控制電路,其耦接至該第一命令佇列及該第二命令佇列,且其中該控制電路經組態以回應於偵測到該第二命令佇列中之至少一第二命令而在識別為一可中斷點的一第一命令處中斷該第一複數個命令之處理,且其中該控制電路經組態以回應於該中斷而起始該第二命令之處理;及耦接至該控制電路之複數個控制暫存器,其中該控制電路經組態以更新該複數個控制暫存器中之一者以指示正處理該第二複數個命令,且其中即使該第二命令佇列中該第二複數個命令排空(empty),該控制電路經組態以抑制該第一複數個命令之處理,直至再次更新該複數個控制暫存器中之該控制暫存器以指示將繼續該第一複數個命令的處理為止。
- 如請求項1之裝置,其中該一或多個指示為複數個指示,每一指示與該第一複數個命令之一各別命令相關聯 且指示該第一複數個命令是否可在該各別命令處中斷。
- 一種積體電路,其包含:一記憶體控制器,其經組態以耦接至一或多個記憶體器件;一快閃記憶體介面單元,其經組態以耦接至一或多個快閃記憶體器件,其中該快閃記憶體介面單元包含如請求項1之裝置;一直接記憶體存取(DMA)控制器,其耦接至該記憶體控制器及該快閃記憶體介面單元,其中該DMA控制器經組態以執行該記憶體控制器與該快閃記憶體介面單元之間的DMA操作;及一處理器,其耦接至該DMA控制器,其中該處理器經組態以控制該快閃記憶體介面單元,且其中自該處理器之通信經由該DMA控制器與該快閃記憶體介面之間的一互連件通過該DMA控制器至該快閃記憶體單元,且其中該互連件亦用於該快閃記憶體介面單元與該記憶體控制器之間的該等DMA操作中;其中該處理器經組態以將第一複數個命令寫入至第一命令佇列以控制該快閃記憶體介面單元與該一或多個快閃記憶體器件之間的一第一傳送,且其中該處理器經組態以在該第一傳送的完成之前,將第二複數個命令寫入至第二命令佇列以控制該快閃記憶體介面單元與該一或多個快閃記憶體器件之間的一第二傳送。
- 一種用於處理命令之方法,其包含: 在一介面控制器中處理來自一第一命令佇列之命令以執行一外部介面上之一或多個傳送;偵測與在來自該第一命令佇列之該等命令內的一第一命令相關聯之一指示;在偵測到該指示的一時間偵測一第二命令佇列中之至少一第二命令;回應於偵測到該指示及該至少一第二命令而中斷來自該第一命令佇列之進一步命令處理以處理來自該第二命令佇列的命令;寫入一控制暫存器以指示正處理該第二命令佇列中之該等命令;及即使命令佇列中該至少一第二命令排空(empty),回應於控制暫存器內容而防止來自該第一命令佇列之進一步命令處理。
- 如請求項4之方法,其進一步包含接收一寫入操作,該寫入操作更新該控制暫存器以准許該第一命令佇列中之該等命令的繼續處理。
- 如請求項5之方法,其中該寫入操作係由一處理器發佈。
- 一種儲存複數個指令之電腦可讀儲存媒體,該等指令在執行於亦包括一外部介面單元的一積體電路中之一處理器上時進行下列動作,該外部介面單元包含一第一命令佇列及一第二命令佇列,其中每一命令佇列經組態以儲存用以控制一外部介面上之一傳送的複數個命令: 將第一複數個命令載入至該第一命令佇列中,其中該第一複數個命令之執行引起該外部介面上之一第一傳送;偵測對優先權高於該第一傳送之一傳送的一需要;將第二複數個命令載入至該第二命令佇列中以執行該較高優先權傳送,其中該外部介面單元經組態以中斷該第一傳送之處理以執行該較高優先權傳送;及回應於該第二複數個命令已經完成,寫入一控制暫存器以清除正處理該第二複數個命令之一指示,其中即使該第二命令佇列排空(empty),該外部介面單元經組態以回應於該指示來抑制來自該第一命令佇列之該第一複數個命令之處理。
- 如請求項7之電腦可讀儲存媒體,其中在執行時將該第一複數個命令載入至該第一命令佇列中之該複數個指令包括在執行時載入可中斷該第一複數個命令之點的對應指示之指令。
- 如請求項7之電腦可讀儲存媒體,其中該複數個指令在執行時:偵測對優先權不高於該第一傳送之一第三傳送的一需要;及將第三複數個命令載入至該第一命令佇列中以執行該第三傳送。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/220,940 US9021146B2 (en) | 2011-08-30 | 2011-08-30 | High priority command queue for peripheral component |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201319814A TW201319814A (zh) | 2013-05-16 |
TWI493350B true TWI493350B (zh) | 2015-07-21 |
Family
ID=46801322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101131399A TWI493350B (zh) | 2011-08-30 | 2012-08-29 | 用於周邊組件之高優先權命令佇列 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9021146B2 (zh) |
EP (1) | EP2565795B1 (zh) |
JP (1) | JP5499124B2 (zh) |
KR (1) | KR101408434B1 (zh) |
CN (1) | CN102968289B (zh) |
AU (1) | AU2012216395B2 (zh) |
BR (1) | BR102012021854B1 (zh) |
TW (1) | TWI493350B (zh) |
WO (1) | WO2013032816A1 (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5879982B2 (ja) * | 2011-11-30 | 2016-03-08 | 富士通株式会社 | ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法 |
US20130219088A1 (en) * | 2012-02-22 | 2013-08-22 | Lsi Corporation | Configurable prioritization of data transmission in a data storage topology |
US10002021B2 (en) * | 2012-07-20 | 2018-06-19 | Qualcomm Incorporated | Deferred preemption techniques for scheduling graphics processing unit command streams |
KR20160037827A (ko) * | 2013-01-17 | 2016-04-06 | 엑소케츠 인코포레이티드 | 시스템 메모리로의 연결을 위한 오프로드 프로세서 모듈들 |
TWI493455B (zh) * | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
US9146747B2 (en) * | 2013-08-08 | 2015-09-29 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing configurable computational imaging pipeline |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US9256551B2 (en) * | 2013-08-09 | 2016-02-09 | Apple Inc. | Embedded encryption/secure memory management unit for peripheral interface controller |
US9454310B2 (en) | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
US9883641B2 (en) * | 2014-05-07 | 2018-02-06 | Vivint, Inc. | Sprinkler control systems and methods |
KR102254099B1 (ko) | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
US9460019B2 (en) | 2014-06-26 | 2016-10-04 | Intel Corporation | Sending packets using optimized PIO write sequences without SFENCEs |
US9477631B2 (en) | 2014-06-26 | 2016-10-25 | Intel Corporation | Optimized credit return mechanism for packet sends |
US9665509B2 (en) * | 2014-08-20 | 2017-05-30 | Xilinx, Inc. | Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system |
US20160062925A1 (en) * | 2014-08-28 | 2016-03-03 | Samsung Electronics Co., Ltd. | Method and system for managing storage device operations by a host device |
US20160092118A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Memory write management in a computer system |
KR101730991B1 (ko) | 2014-10-28 | 2017-04-28 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
JP2016116178A (ja) * | 2014-12-17 | 2016-06-23 | ソニー株式会社 | 通信装置及び通信方法 |
CN111857813A (zh) * | 2015-05-18 | 2020-10-30 | 北京忆芯科技有限公司 | 调度微指令序列的方法及装置 |
KR20170060300A (ko) * | 2015-11-24 | 2017-06-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN107564563B (zh) * | 2016-06-30 | 2020-06-09 | 华邦电子股份有限公司 | 存储器装置及其操作方法 |
KR102648180B1 (ko) * | 2016-07-19 | 2024-03-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
CN117555598A (zh) * | 2016-09-28 | 2024-02-13 | 北京忆芯科技有限公司 | 调度方法与装置 |
CN108153582B (zh) * | 2016-12-05 | 2024-01-26 | 北京忆恒创源科技股份有限公司 | Io命令处理方法与介质接口控制器 |
US10387081B2 (en) * | 2017-03-24 | 2019-08-20 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
US10466904B2 (en) * | 2017-03-24 | 2019-11-05 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
US10509569B2 (en) | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
EP3679468A4 (en) * | 2017-12-11 | 2021-04-07 | Hewlett-Packard Development Company, L.P. | Tax event queues |
CN108663971A (zh) * | 2018-06-01 | 2018-10-16 | 北京汉能光伏投资有限公司 | 命令转发方法及装置、太阳能系统和中央控制器 |
CN110568991B (zh) * | 2018-06-06 | 2023-07-25 | 北京忆恒创源科技股份有限公司 | 降低锁引起的io命令冲突的方法与存储设备 |
CN110858127B (zh) * | 2018-08-22 | 2023-09-12 | 慧荣科技股份有限公司 | 数据存储装置 |
US11144240B2 (en) | 2018-08-24 | 2021-10-12 | Micron Technology, Inc. | Memory sub-system for increasing bandwidth for command scheduling |
US10877906B2 (en) * | 2018-09-17 | 2020-12-29 | Micron Technology, Inc. | Scheduling of read operations and write operations based on a data bus mode |
US11269557B2 (en) | 2019-01-09 | 2022-03-08 | Atto Technology, Inc. | System and method for ensuring command order in a storage controller |
US11093244B2 (en) | 2019-08-28 | 2021-08-17 | Micron Technology, Inc. | Command delay |
US11327912B2 (en) * | 2019-09-12 | 2022-05-10 | Qualcomm Incorporated | Controlling the application time of radio frequency front end triggers based on execution of sequences |
JP2023516786A (ja) * | 2020-03-10 | 2023-04-20 | マイクロン テクノロジー,インク. | メモリサブシステムのキューの管理のための方法、システム、及び可読ストレージ媒体 |
US11726713B2 (en) * | 2021-06-25 | 2023-08-15 | Western Digital Technologies, Inc. | Systems and methods for priority command data fetching management |
TWI793966B (zh) * | 2022-01-10 | 2023-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN117827704A (zh) * | 2022-07-19 | 2024-04-05 | 荣耀终端有限公司 | 命令发送方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108743A (en) * | 1998-02-10 | 2000-08-22 | Intel Corporation | Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority |
US20060193260A1 (en) * | 2005-02-24 | 2006-08-31 | George H A | Preemptive packet flow controller |
US20070133531A1 (en) * | 2005-12-14 | 2007-06-14 | Yasuhiro Kodama | Packet forwarding apparatus and method for multicast packets |
TW200818831A (en) * | 2006-02-14 | 2008-04-16 | Intel Corp | Programmable processing unit |
US20100110085A1 (en) * | 2008-10-30 | 2010-05-06 | Microchip Technology Incorporated | Microcontroller with integrated graphical processing unit |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1425173A (en) | 1972-05-03 | 1976-02-18 | Gen Electric Co Ltd | Data processing systems |
US4023143A (en) | 1975-10-28 | 1977-05-10 | Cincinnati Milacron Inc. | Fixed priority interrupt control circuit |
JPS54129942A (en) | 1978-03-31 | 1979-10-08 | Fujitsu Ltd | Direct transfer system between sub-systems |
EP0396833A1 (en) | 1989-05-12 | 1990-11-14 | International Business Machines Corporation | Trace facility for use in a multiprocessing environment |
FR2666425A1 (fr) | 1990-08-31 | 1992-03-06 | Gemplus Card Int | Procede et dispositif de mise a jour d'informations dans une memoire et leur utilisation dans les cartes a memoire. |
US6347051B2 (en) | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
US5353256A (en) | 1993-06-30 | 1994-10-04 | Intel Corporation | Block specific status information in a memory device |
US5742787A (en) | 1995-04-10 | 1998-04-21 | Intel Corporation | Hardware reset of a write state machine for flash memory |
US5799165A (en) | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
US5884059A (en) | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5745724A (en) | 1996-01-26 | 1998-04-28 | Advanced Micro Devices, Inc. | Scan chain for rapidly identifying first or second objects of selected types in a sequential list |
US5790887A (en) | 1996-02-15 | 1998-08-04 | International Business Machines Corporation | Method and apparatus for processing programmed input/output (PIO) operations in a computer system |
US6201739B1 (en) | 1996-09-20 | 2001-03-13 | Intel Corporation | Nonvolatile writeable memory with preemption pin |
US5822244A (en) | 1997-09-24 | 1998-10-13 | Motorola, Inc. | Method and apparatus for suspending a program/erase operation in a flash memory |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6055579A (en) * | 1997-11-17 | 2000-04-25 | Silicon Graphics, Inc. | Distributed control and synchronization of multiple data processors using flexible command queues |
CN1249586C (zh) | 1997-12-22 | 2006-04-05 | Tdk株式会社 | 闪速存储器系统 |
SE9901146D0 (sv) | 1998-11-16 | 1999-03-29 | Ericsson Telefon Ab L M | A processing system and method |
US6286035B1 (en) | 1999-02-01 | 2001-09-04 | Lucent Technologies Inc. | Validating and parsing engine for system configuration and support command messages |
US6604210B1 (en) | 1999-09-09 | 2003-08-05 | International Business Machines Corporation | Method and system for detecting and recovering from in trace data |
US6633564B1 (en) * | 1999-09-22 | 2003-10-14 | Nortel Networks Limited | Method and apparatus for inserting packets into a data stream |
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
ATE392074T1 (de) * | 2000-02-28 | 2008-04-15 | Alcatel Lucent | Vermittlungseinrichtung und vermittlungsverfahren |
US7389497B1 (en) | 2000-07-06 | 2008-06-17 | International Business Machines Corporation | Method and system for tracing profiling information using per thread metric variables with reused kernel threads |
US7185061B1 (en) | 2000-09-06 | 2007-02-27 | Cisco Technology, Inc. | Recording trace messages of processes of a network component |
JP5066702B2 (ja) | 2000-09-29 | 2012-11-07 | アラクリテック・インコーポレイテッド | インテリジェントネットワークストレージインタフェースシステム及びデバイス |
US6779045B2 (en) | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
US6754751B1 (en) | 2001-03-30 | 2004-06-22 | Intel Corporation | Method and apparatus for handling ordered transactions |
JP2003006003A (ja) | 2001-06-18 | 2003-01-10 | Mitsubishi Electric Corp | Dmaコントローラおよび半導体集積回路 |
US6981073B2 (en) | 2001-07-31 | 2005-12-27 | Wis Technologies, Inc. | Multiple channel data bus control for video processing |
US7155568B2 (en) | 2001-09-29 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Transaction generator for initialization, rebuild, and verify of memory |
KR100448905B1 (ko) | 2002-07-29 | 2004-09-16 | 삼성전자주식회사 | 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치 |
CA2508141C (en) | 2002-12-02 | 2009-11-03 | Silverbrook Research Pty Ltd | Dead nozzle compensation |
US7149933B2 (en) | 2003-08-07 | 2006-12-12 | Arm Limited | Data processing system trace bus |
US7069176B2 (en) | 2003-08-07 | 2006-06-27 | Arm Limited | Trace source correlation in a data processing apparatus |
US7187950B2 (en) | 2003-11-14 | 2007-03-06 | Intel Corporation | Command station for mobile radio networks |
FR2863076B1 (fr) | 2003-11-28 | 2006-02-03 | Bull Sa | Systeme cryptographique haut debit a architecture modulaire. |
JP4536361B2 (ja) * | 2003-11-28 | 2010-09-01 | 株式会社日立製作所 | データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法 |
US20050120337A1 (en) | 2003-12-01 | 2005-06-02 | Serrano Mauricio J. | Memory trace buffer |
US20050262309A1 (en) | 2004-04-28 | 2005-11-24 | Frey Robert T | Proactive transfer ready resource management in storage area networks |
US7484058B2 (en) | 2004-04-28 | 2009-01-27 | Emc Corporation | Reactive deadlock management in storage area networks |
US7493426B2 (en) | 2005-01-31 | 2009-02-17 | International Business Machines Corporation | Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control |
KR20080017982A (ko) | 2006-08-23 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 프로그램 방법 |
US8291417B2 (en) | 2006-09-08 | 2012-10-16 | Freescale Semiconductor, Inc. | Trace buffer with a processor |
JP2008117505A (ja) | 2006-11-03 | 2008-05-22 | Spansion Llc | 半導体装置およびその制御方法 |
KR100843136B1 (ko) | 2006-11-14 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법 |
US7627744B2 (en) | 2007-05-10 | 2009-12-01 | Nvidia Corporation | External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level |
DE102007041345B4 (de) | 2007-08-31 | 2010-07-22 | Siemens Ag | X-Core Bildrekonstruktionssystem (IRS) mit x-parallelen Recon-Pipelines |
US8127283B2 (en) | 2007-09-05 | 2012-02-28 | Intel Corporation | Enabling graphical notation for parallel programming |
KR100921787B1 (ko) | 2007-11-01 | 2009-10-15 | 주식회사 이스트후 | 낸드 플래시 메모리 제어장치 |
US7802142B2 (en) | 2007-12-06 | 2010-09-21 | Seagate Technology Llc | High speed serial trace protocol for device debug |
US8621137B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US8151100B2 (en) | 2008-02-06 | 2012-04-03 | Broadcom Corporation | Operating system for a computing device with handheld and extended computing units |
US7984324B2 (en) | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7870345B2 (en) | 2008-03-27 | 2011-01-11 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
KR101486987B1 (ko) | 2008-05-21 | 2015-01-30 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법 |
KR20140059102A (ko) | 2009-06-10 | 2014-05-15 | 마이크론 테크놀로지, 인크. | 메모리 어레이들에서 감소된 읽기 지연시간에 대한 메모리 작업들의 서스펜션 |
US8700878B2 (en) | 2009-06-16 | 2014-04-15 | Freescale Semiconductor, Inc. | Event triggered memory mapped access |
US8004884B2 (en) | 2009-07-31 | 2011-08-23 | International Business Machines Corporation | Iterative write pausing techniques to improve read latency of memory systems |
US8850103B2 (en) | 2009-08-28 | 2014-09-30 | Microsoft Corporation | Interruptible NAND flash memory |
US8131889B2 (en) * | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
US20110321052A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Mutli-priority command processing among microcontrollers |
US9009391B2 (en) * | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
US20120167100A1 (en) | 2010-12-23 | 2012-06-28 | Yan Li | Manual suspend and resume for non-volatile memory |
-
2011
- 2011-08-30 US US13/220,940 patent/US9021146B2/en active Active
-
2012
- 2012-08-22 WO PCT/US2012/051898 patent/WO2013032816A1/en active Application Filing
- 2012-08-23 AU AU2012216395A patent/AU2012216395B2/en active Active
- 2012-08-28 EP EP20120181946 patent/EP2565795B1/en active Active
- 2012-08-29 TW TW101131399A patent/TWI493350B/zh active
- 2012-08-30 CN CN201210315073.0A patent/CN102968289B/zh active Active
- 2012-08-30 KR KR1020120095875A patent/KR101408434B1/ko active IP Right Grant
- 2012-08-30 BR BR102012021854-2A patent/BR102012021854B1/pt active IP Right Grant
- 2012-08-30 JP JP2012204966A patent/JP5499124B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108743A (en) * | 1998-02-10 | 2000-08-22 | Intel Corporation | Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority |
US20060193260A1 (en) * | 2005-02-24 | 2006-08-31 | George H A | Preemptive packet flow controller |
US20070133531A1 (en) * | 2005-12-14 | 2007-06-14 | Yasuhiro Kodama | Packet forwarding apparatus and method for multicast packets |
TW200818831A (en) * | 2006-02-14 | 2008-04-16 | Intel Corp | Programmable processing unit |
US20100110085A1 (en) * | 2008-10-30 | 2010-05-06 | Microchip Technology Incorporated | Microcontroller with integrated graphical processing unit |
Also Published As
Publication number | Publication date |
---|---|
KR20130024860A (ko) | 2013-03-08 |
US9021146B2 (en) | 2015-04-28 |
EP2565795A3 (en) | 2013-09-04 |
EP2565795B1 (en) | 2015-05-20 |
TW201319814A (zh) | 2013-05-16 |
KR101408434B1 (ko) | 2014-06-17 |
JP5499124B2 (ja) | 2014-05-21 |
BR102012021854A2 (pt) | 2013-10-08 |
AU2012216395A1 (en) | 2013-03-21 |
EP2565795A2 (en) | 2013-03-06 |
AU2012216395B2 (en) | 2014-01-09 |
US20130054875A1 (en) | 2013-02-28 |
CN102968289A (zh) | 2013-03-13 |
CN102968289B (zh) | 2016-04-20 |
WO2013032816A1 (en) | 2013-03-07 |
JP2013058205A (ja) | 2013-03-28 |
BR102012021854B1 (pt) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI493350B (zh) | 用於周邊組件之高優先權命令佇列 | |
TWI472923B (zh) | 控制外部介面之裝置及命令處理之方法 | |
US20130179614A1 (en) | Command Abort to Reduce Latency in Flash Memory Access | |
US8918680B2 (en) | Trace queue for peripheral component | |
US20110219171A1 (en) | Virtual channel support in a nonvolatile memory controller | |
US8892794B2 (en) | Using central direct memory access (CDMA) controller to test integrated circuit | |
TWI685744B (zh) | 指令處理方法及使用所述方法的儲存控制器 | |
TW201447573A (zh) | 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法 | |
JP7470685B2 (ja) | 集積回路中の算出ユニットをプログラムおよび制御すること | |
JP5622429B2 (ja) | マイクロコンピュータ | |
US8117427B2 (en) | Motherboard, storage device and controller thereof, and booting method | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
JP5823000B2 (ja) | マイクロコンピュータ |