




本案係有關於資料儲存裝置的控制器架構。This case is about the controller architecture of the data storage device.
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。There are many forms of non-volatile memory-for example, flash memory (flash memory), magnetoresistive random access memory (Magnetoresistive RAM), ferroelectric random access memory (Ferroelectric RAM), resistive random access Memory (Resistive RAM), Spin Transfer Torque-RAM (STT-RAM), etc. are used for long-term data storage, and can be used as a storage medium to realize a data storage device.
一資料儲存裝置是以一控制器控制一非揮發式記憶體。該控制器之設計為本技術領域一項重要課題。A data storage device uses a controller to control a non-volatile memory. The design of the controller is an important subject in the technical field.
本案一種實施方式以多階層架構設計一中央處理單元(central processing unit),使之應用於一資料儲存裝置的一控制器。關於該中央處理單元中不同階層之間的指令傳送,本案令發送端具有複數個指令佇列(command queues),使複數筆指令得以佇列於其中,即時傳送給接收端。一種實施方式中,一第一指令佇列存有一第一指令,一第二指令則由一第二指令佇列儲存;第二指令之佇列不受第一指令延滯。接收端收到該第一指令後會回復發送端一確收反饋。由於發送端早已在該第二指令佇列備妥該第二指令,一旦獲得該第一指令的該確收反饋,即可自該第二指令佇列將該第二指令傳送至接收端。An embodiment of the present invention designs a central processing unit with a multi-level architecture, which is applied to a controller of a data storage device. Regarding the command transmission between different levels in the central processing unit, in this case, the sending end has a plurality of command queues (command queues), so that a plurality of commands can be queued in it and transmitted to the receiving end in real time. In one embodiment, a first instruction queue stores a first instruction, and a second instruction is stored by a second instruction queue; the second instruction queue is not delayed by the first instruction. After receiving the first instruction, the receiving end will reply to the sending end with an acknowledgement feedback. Since the sending end has already prepared the second command in the second command queue, once the acknowledgement feedback of the first command is obtained, the second command can be transmitted from the second command queue to the receiving end.
一種實施方式中,接收端有複數個儲存器。發送端所提供的該等指令佇列分別對應該等儲存器。一種實施方式中,對應一第一儲存器的一第一指令佇列存有以該第一儲存器為目的地的一第一指令,以一第二儲存器為目的地的一第二指令則由對應該第二儲存器的一第二指令佇列儲存;第二指令之佇列不受第一指令延滯。該第一指令存入該第一儲存器後,一確收反饋回傳發送端。由於發送端早已在該第二指令佇列備妥該第二指令,一旦獲得該第一指令的該確收反饋,即可自該第二指令佇列將該第二指令傳送至該第二儲存器。In one embodiment, the receiving end has a plurality of storages. The command queues provided by the sending end respectively correspond to the memories. In one embodiment, a first command queue corresponding to a first storage contains a first command destined for the first storage, and a second command destined for a second storage Stored by a second command queue corresponding to the second storage; the second command queue is not delayed by the first command. After the first command is stored in the first storage, a confirmation feedback is sent back to the sending end. Since the sender has already prepared the second command in the second command queue, once the acknowledgement feedback of the first command is obtained, the second command can be transferred from the second command queue to the second storage Device.
一種實施方式中,接收端為多核設計,具有複數個處理器,各自對應有儲存器。一第一指令佇列對應一第一處理器,用於暫存以該第一處理器中的一第一儲存器為目的地的指令。一第二指令佇列對應一第二處理器,用於暫存以該第二處理器中的一第二儲存器為目的地的指令。一種實施方式中,以該第一儲存器為目的地的一第一指令是填入該第一指令佇列,以該第二儲存器為目的地的一第二指令是填入該第二指令佇列;第二指令之佇列不受第一指令延滯。該第一指令存入該第一處理器上的該第一儲存器後,一確收反饋回傳發送端。由於發送端早已在該第二指令佇列備妥該第二指令,一旦獲得該第一指令的該確收反饋,即可自該第二指令佇列將該第二指令傳送至該第二處理器上的該第二儲存器。In one embodiment, the receiving end is a multi-core design, with a plurality of processors, each corresponding to a memory. A first instruction queue corresponds to a first processor and is used to temporarily store instructions destined for a first memory in the first processor. A second instruction queue corresponds to a second processor and is used to temporarily store instructions destined for a second memory in the second processor. In one embodiment, a first instruction destined to the first storage is filled in the first instruction queue, and a second instruction destined to the second storage is filled in the second instruction Queue; The second command queue is not delayed by the first command. After the first instruction is stored in the first storage on the first processor, a confirmation feedback is sent back to the sending end. Since the sender has already prepared the second command in the second command queue, once the acknowledgement feedback of the first command is obtained, the second command can be transferred from the second command queue to the second process The second storage on the device.
一種實施方式中,複數個指令佇列是採輪詢(round robin)方式輪流使用發送端與接收端之間的傳輸介面。In one embodiment, the plurality of instruction queues is a round robin (round robin) method in turn using the transmission interface between the sending end and the receiving end.
一種實施方式中,各指令佇列採先入先出(FIFO)儲存結構,更顯著增強指令佇列能力。In one embodiment, each instruction queue adopts a first-in first-out (FIFO) storage structure, which significantly enhances the instruction queue capability.
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。The following describes the embodiments in detail and the accompanying drawings to explain the content of the present invention in detail.
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。The following description lists various embodiments of the present invention. The following description introduces the basic concept of the present invention and is not intended to limit the content of the present invention. The actual scope of invention shall be defined in accordance with the scope of patent application.
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。Non-volatile memory can be flash memory (Flash Memory), magnetoresistive random access memory (Magnetoresistive RAM), ferroelectric random access memory (Ferroelectric RAM), resistive memory (Resistive RAM, RRAM ), spin transfer torque random access memory (Spin Transfer Torque-RAM, STT-RAM), etc., provide storage media for long-term data storage. The following uses flash memory as an example for discussion.
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC),或是將快閃記憶體、控制器以及DRAM包裝在一起。Today's data storage devices often use flash memory as a storage medium to realize products such as memory cards, USB flash devices, solid state drives (SSD), etc. One application is to use a multi-chip package, package the flash memory and its controller together-called an embedded flash memory module (such as eMMC), or package the flash memory, controller, and DRAM in together.
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。A data storage device using flash memory as a storage medium can be applied to various electronic devices. The electronic device includes a smart phone, a wearable device, a tablet computer, a virtual reality device, etc. The computing module of the electronic device can be regarded as a host, which operates the data storage device used to access the flash memory.
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為主機,操作所連結之固態硬碟,以存取其中快閃記憶體。A data storage device using flash memory as a storage medium can also be used to construct a data center. For example, a server may operate a solid state drive (SSD) array to form a data center. The server can be regarded as a host, operating the connected solid-state drive to access the flash memory.
資料儲存裝置提供控制器,用以根據主機指令操作快閃記憶體。第1圖圖解根據本案一種實施方式實現的資料儲存裝置100。The data storage device provides a controller for operating the flash memory according to the instructions of the host. FIG. 1 illustrates a
資料儲存裝置100包括快閃記憶體102以及控制器104,資料儲存裝置100可更包括DRAM,用以暫存資料,其中,DRAM可配置於資料儲存裝置100中,或由主機106所配置的DRAM所虛擬而成。主機106可透過PCIe介面、SATA介面或SAS(Serial Attached SCSI)介面來控制資料儲存裝置100的運作,根據快速非揮發式記憶體(NVMe)或AHCI規範與該控制器104通信。The
該控制器104具有中央處理單元(CPU)108以及快閃記憶體控制器(如,NAND flash controller,簡稱NFC)110。根據該主機106下達的主機指令,該中央處理單元108操作該快閃記憶體控制器110對該快閃記憶體102進行讀/寫以及各種管理。The
本案採多階層架構實現該中央處理單元108。如圖所示,該中央處理單元108包括前端(Front End,簡稱FE)112以及後端(Back End,簡稱BE)114。前端(FE)112以及後端(BE)114之間存在指令傳輸需求。前端(FE)112主要負責處理來自主機的主機指令,在主機指令完成接收、排序、除錯等處理,或是下載主機指令的使用者資料之後,前端(FE) 112可將主機指令傳送至後端(BE)114。後端(BE)114執行主機指令,例如,將主機指令轉換成操作指令,再由快閃記憶體控制器110依據操作指令以操作快閃記憶體102,其中,操作指令可例如是讀取、寫入、抺除、重置指令、取得參數(Get Features)或設定參數(Set Features)等指令。後端(BE)114再依據快閃記憶體控制器110的執行結果而產生主機指令的執行結果,並將主機指令的執行結果回傳至前端(FE)112。In this case, the
為了加速主機指令的處理,本案設置有複數個指令佇列(Command Queues,詳示於後續圖示)以供前端(FE) 112使用,如此一來,複數筆主機指令得以佇列於複數個指令佇列,即時傳送給後端(BE)114,其中,複數個指令佇列較佳設置在中央處理單元(CPU)108的內部記憶體(較佳為SRAM)中,亦可設置在DRAM中。假如有4筆主機指令以及2個指令佇列,第1-2筆主機指令佇列至第1指令佇列,第3-4筆主機指令佇列至第2指令佇列。當前端(FE) 112傳送主機指令至後端(BE)114時,可以同時或依序傳送第1指令佇列中的第1筆主機指令以及第2指令佇列中的第3筆主機指令。待第1筆主機指令執行完畢(執行結果為成功)之後,再傳送第1指令佇列中的第2筆主機指令至後端(BE)114。待第3筆主機指令執行完畢(執行結果為成功)之後,再傳送第2指令佇列中的第4筆主機指令至後端(BE)114。In order to speed up the processing of host commands, a plurality of command queues (Command Queues, detailed in the subsequent figure) are provided for the front end (FE) 112 to use, so that a plurality of host commands can be queued in a plurality of commands The queue is sent to the back-end (BE) 114 in real time, wherein the plurality of command queues are preferably arranged in the internal memory (preferably SRAM) of the central processing unit (CPU) 108, and may also be arranged in the DRAM. If there are 4 host commands and 2 command queues, the first 1-2 host command queues to the first command queue, and the third 3-4 host command queues to the second command queue. When the front-end (FE) 112 sends host commands to the back-end (BE) 114, it can send the first host command in the first command queue and the third host command in the second command queue simultaneously or sequentially. After the first host command is executed (the execution result is successful), the second host command in the first command queue is sent to the back-end (BE) 114. After the third host command is executed (the execution result is successful), the fourth host command in the second command queue is sent to the back-end (BE) 114.
由上述中可知,指令佇列的數目愈多,前端(FE)112可同時或依序傳送愈多主機指令至後端(BE)114,無需等待一筆主機指令執行完畢後才能傳送下一筆主機指令。另外,每一指令佇列可獨立運作,當其中之一指令佇列中的一筆主機指令執行完畢後,前端(FE)112亦可立即傳送此指令佇列中的下一筆主機指令至後端(BE)114,不會受到其他指令佇列的主機指令的執行結果的影響,因此,中央處理單元(CPU)108可以更高效率的方式來執行主機指令。As can be seen from the above, the greater the number of command queues, the more front-end (FE) 112 can send more host commands to the back-end (BE) 114 simultaneously or sequentially, without waiting for the completion of a host command before the next host command can be sent. . In addition, each command queue can operate independently. When one host command in one of the command queues is executed, the front end (FE) 112 can also immediately send the next host command in the command queue to the back end ( BE) 114 is not affected by the execution results of the host commands of other command queues. Therefore, the central processing unit (CPU) 108 can execute the host commands in a more efficient manner.
一種實施方式中,本案設置有複數個儲存器在後端(BE)114,每一儲存器分別對應其中一個指令佇列。In one embodiment, a plurality of storages are provided in the back-end (BE) 114 in this case, and each storage corresponds to one of the command queues.
第2圖圖解根據本案一種實施方式所實現的中央處理單元200,處理系統202為前端(FE),處理系統204為後端(BE)。處理系統202以及處理系統204之間以內連206連結。一種實施方式是根據高級可拓展介面(AXI,簡稱Advanced Extensible Interface)實現內連206通信。處理系統202具有處理器208、指令控制器210以及儲存器模組212。處理系統204具有處理器214、指令控制器216以及儲存器模組218。處理器208所填入至指令控制器210中指令佇列的主機指令經由內連206而傳遞至儲存器模組218中的其中之一儲存器。處理器214所填入至指令控制器216中指令佇列的回覆指令經由內連206傳遞至儲存器模組212中的其中之一儲存器。其中,回覆指令可表示執行結果為成功或失敗。處理系統202以及處理系統204都有機會為指令的發送端或接收端。為了簡化說明,以下討論只關於單一傳輸方向(前端FE為發送端,後端BE為接收端)。另一傳輸方向(後端BE為發送端,且前端FE為接收端)則採類似機制實施。FIG. 2 illustrates a
如圖所示,指令控制器210包括複數個指令佇列220_1…220_n,分別對應處理系統204中的儲存器模組218中的複數個儲存器222_1…222_n。各指令佇列可包括多個暫存器,用以儲存主機指令的參數,例如:目的地位址(儲存器222_1…222_n之一為主機指令傳送的目的地)、指令細節(OP Code、指令運算元…等)、有效位元標示(Byte Enable Signals)…等。儲存器222_1…222_n可能是動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、信箱(Mailbox)…等。處理系統202欲發送主機指令(以Cmd_i示意,i為編號)至處理系統204時,處理器208將目的地位址寫入指令佇列220_i之暫存器。目的地位址填寫完後,指令控制器210將指令佇列220_i的內容彙整為傳輸規格(如,AXI規格),並要求內連206以進行主機指令Cmd_i的傳送。之後,內連206將主機指令Cmd_i傳送到儲存器模組218中的儲存器222_i。儲存器222_i確收後,確收反饋(ACK)回傳至指令控制器210,表示主機指令Cmd_i已傳送完成。由於主機指令Cmd_i已傳送完成,因此,內連206可進入待機或準備狀態以等待下一個要求。指令控制器210可提供結束信號通知處理器208。於收到主機指令之後,接收端的處理器214則開始執行儲存器222_i所接收到的主機指令Cmd_i。As shown, the
由於處理系統202具有複數個指令佇列220_1…220_n,所以處理器208不需等待對應至主機指令Cmd_i的回覆指令,可直接將下一筆主機指令(以Cmd_j示意,j為編號,以儲存器222_j為目的地)交予指令控制器210。另外,處理器208無須考慮主機指令Cmd_i的傳遞狀況,當內連206進行主機指令Cmd_i的傳送時,即可將主機指令Cmd_j存入對應的指令佇列220_j,完成指令佇列220_j之暫存器填寫。暫存器填寫完後,指令控制器210將指令佇列220_j的內容彙整為傳輸規格(如,AXI規格),並要求內連206以進行主機指令Cmd_j的傳送。在指令Cmd_i的確收反饋之後,內連206開始傳送主機指令Cmd_j,將主機指令Cmd_j傳送到儲存器模組218中的儲存器222_j。重覆上述步驟,只要內連206閒置,中央處理單元200可不斷地將主機指令從前端FE傳送至後端BE,因此,可大幅度地增加主機指令傳送的效率。Since the
由於指令佇列220_1…220_n與儲存器222_1…222_n存在一對一對應關係,指令佇列220_1…220_n可簡化設計,略去目的地位址、有效位元標示…等暫存器。指令佇列的硬體成本因而有效控制。指令佇列的填寫、以及透過內連206之傳輸也更加有效率。Since the instruction queues 220_1...220_n and the memories 222_1...222_n have a one-to-one correspondence, the instruction queues 220_1...220_n can simplify the design, omitting the destination address, valid bit label, etc. registers. The hardware cost of the command queue is therefore effectively controlled. The filling of the command queue and the transmission through the
一種實施方式中,接收端為多核設計,具有複數個處理器,各自有對應的儲存器。發送端所提供的複數個指令佇列分別對應該等儲存器。In one embodiment, the receiving end is a multi-core design, with a plurality of processors, each having a corresponding storage. The plurality of command queues provided by the sending end respectively correspond to the storages.
第3圖圖解根據本案一種實施方式所實現的一中央處理單元300。處理系統302為前端(FE)。處理系統304_1…304_4則組成多核的後端(BE)。處理系統304_1…304_4除了各自具有一處理器,也各自具有一儲存器,對應編號為306_1…306_4。處理系統302上的指令佇列308_1…308_4分別對應該等處理系統304_1…304_4,以所對應處理系統上的儲存器(306_1…306_4)作為主機指令傳送的目的地。處理系統302欲發送指令佇列308_i的主機指令(以Cmd_i示意)至處理系統304_i(i為編號)上儲存器306_i,處理系統302將指令佇列308_i之暫存器內容彙整為傳輸規格(如,AXI規格),透過內連傳送到儲存器306_i。無須考慮指令Cmd_i的傳遞狀況,處理系統302可將下一筆主機指令Cmd_j存入對應的指令佇列308_j,完成指令佇列308_j之暫存器填寫以及傳輸格式彙整。儲存器306_i確收後,回傳確收反饋。 一旦自處理系統304_i收到主機指令Cmd_i的確收反饋(確定內連可利用),指令佇列308_j將早已備妥在指令佇列308_j的主機指令Cmd_j經由內連傳送到處理系統304_j的儲存器306_j。FIG. 3 illustrates a
處理系統302可對處理系統304_1…304_4發出同樣指令,例如,暫停時脈指令。指令佇列308_1…308_4之填寫不受彼此內容是否成功透過內連傳送到接收端而干擾。指令佇列308_1…308_4一一被填入暫停時脈指令,可一起被觸發使其中內容彙整為傳輸規格(如,AXI規格),以最佳效率使用內連,近乎不間斷地輪流透過內連寫入各個處理系統的儲存器(306_1…306_4)。處理系統304_1…304_4因而近乎同步地暫停時脈。The
一種實施方式中,複數個指令佇列是採輪詢(Round Robin)方式輪流使用發送端與接收端之間的傳輸介面。In one embodiment, the plurality of command queues are in a round robin (Round Robin) manner, and the transmission interface between the sending end and the receiving end is used in turn.
第4圖為根據本案一種實施方式所實現的處理系統400,其中包括處理器402、指令控制器404以及儲存器406 。作為發送端時,處理器402提供主機指令交由指令控制器404發送。作為接收端時,所接收的回覆指令儲存至儲存器406,再由處理器402執行或判斷。指令控制器404採用輪詢(Round Robin)技術。FIG. 4 is a
指令控制器404包括複數個指令佇列410_1、410_2、410_3以及410_4、以及輪詢控制器412。指令佇列410_1、410_2、410_3以及410_4分別具有輪詢佇列(Round Robin Queues) 414_1、414_2、414_3以及414_4。處理器402填入各指令佇列410_1、410_2、410_3以及410_4的指令係在該等輪詢佇列414_1、414_2、414_3以及414_4中排隊,在輪到自己時,由輪詢控制器412發送出去。接收端的確收反饋也將由該輪詢控制器412以輪詢確認信號會報指令佇列410_1、410_2、410_3以及410_4,使輪詢佇列414_1、414_2、414_3以及414_4中排隊的下一個指令得以交由輪詢控制器412發送出去。The
圖示更顯示本案提供專用指令佇列的技術使得處理器402僅需將待填數據填入指令佇列410_1、410_2、410_3即可。處理器402可在待填數據之後發出觸發信號,使得待填以及既定的指令數據彙整為內連傳輸規格,在所對應的輪詢佇列排隊。各指令佇列也可根據此觸發信號告知該輪詢控制器412有指令排隊待發送。The figure further shows that the technology of providing a dedicated command queue in this case allows the
一種實施方式中,各指令佇列採先入先出(FIFO)儲存結構,更顯著增強指令佇列能力。In one embodiment, each instruction queue adopts a first-in first-out (FIFO) storage structure, which significantly enhances the instruction queue capability.
第5圖根據本案一種實施方式圖解分別包括先入先出(FIFO)緩衝器502_1、502_2、502_3以及502_4的指令佇列504_1、504_2、504_3以及504_4。如此一來,各指令佇列的指令佇列能力更強。關於同一指令佇列,無需考慮前一個主機指令的傳輸狀況,就可以把後續主機指令填入先入先出緩衝器。FIG. 5 illustrates an instruction queue 504_1, 504_2, 504_3, and 504_4 including first-in first-out (FIFO) buffers 502_1, 502_2, 502_3, and 502_4, respectively, according to an embodiment of the present case. In this way, the instruction queue capability of each instruction queue is stronger. Regarding the same command queue, it is possible to fill subsequent host commands into the first-in first-out buffer without considering the transmission status of the previous host command.
在其他實施方式中,指令控制器中的複數個指令佇列可能是對應其他屬性而提供。除了令複數個指令佇列分別對應複數個裝置,複數個指令佇列也可以是相應複數種功能而提供。各指令因而可略去指令屬性之資訊就填入所對應的指令佇列。In other embodiments, the plurality of instruction queues in the instruction controller may be provided corresponding to other attributes. In addition to making a plurality of command queues correspond to a plurality of devices, the plurality of command queues can also be provided for a corresponding plurality of functions. Each command can thus omit the information of the command attribute and fill in the corresponding command queue.
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。Although the present invention has been disclosed as above with preferred embodiments, it is not intended to limit the present invention. Anyone who is familiar with this skill can do some modifications and retouching without departing from the spirit and scope of the present invention. Therefore, the present invention The scope of protection shall be as defined in the scope of the attached patent application.
100‧‧‧資料儲存裝置100‧‧‧Data storage device
102‧‧‧快閃記憶體102‧‧‧Flash memory
104‧‧‧控制器104‧‧‧Controller
106‧‧‧主機106‧‧‧Host
108‧‧‧中央處理單元108‧‧‧Central Processing Unit
110‧‧‧快閃記憶體控制器110‧‧‧Flash memory controller
112‧‧‧前端(FE)112‧‧‧Front End (FE)
114‧‧‧後端(BE)114‧‧‧Backend (BE)
200‧‧‧中央處理單元200‧‧‧Central Processing Unit
202、204‧‧‧處理系統202, 204‧‧‧ processing system
206‧‧‧內連206‧‧‧Inline
208、214‧‧‧處理器208, 214‧‧‧ processor
210、216‧‧‧指令控制器210、216‧‧‧Command controller
212、218‧‧‧處理系統202以及204各自具有的一儲存器模組A storage module in each of the 212, 218‧‧‧
220_1…220_n‧‧‧指令佇列220_1…220_n‧‧‧Command queue
222_1…222_n‧‧‧儲存器222_1…222_n‧‧‧storage
300‧‧‧‧‧‧中央處理單元300‧‧‧‧‧‧Central Processing Unit
302‧‧‧處理系統302‧‧‧ processing system
304_1…304_4‧‧‧處理系統304_1…304_4‧‧‧‧ processing system
306_1…306_4‧‧‧儲存器306_1…306_4‧‧‧storage
308_1…308_4‧‧‧指令佇列308_1…308_4‧‧‧Command queue
400‧‧‧處理系統400‧‧‧ processing system
402‧‧‧處理器402‧‧‧ processor
404‧‧‧指令控制器404‧‧‧Command controller
406‧‧‧儲存器406‧‧‧Storage
410_1…410_4‧‧‧指令佇列410_1…410_4‧‧‧Command queue
412‧‧‧輪詢控制器412‧‧‧ Polling controller
414_1…414_4‧‧‧輪詢佇列414_1…414_4‧‧‧ Polling queue
502_1…502_4‧‧‧先入先出(FIFO)緩衝器502_1…502_4‧‧‧‧First In First Out (FIFO) buffer
504_1…504_4‧‧‧指令佇列。504_1…504_4‧‧‧‧ queue
第1圖圖解根據本案一種實施方式實現的一資料儲存裝置100; 第2圖圖解根據本案一種實施方式所實現的一中央處理單元200; 第3圖圖解根據本案一種實施方式所實現的一中央處理單元300,其中包括多核的後端(BE) ; 第4圖為根據本案一種實施方式所實現的處理系統400,其中指令控制器404採用輪詢(round robin)技術;以及 第5圖根據本案一種實施方式圖解分別包括先入先出(FIFO)緩衝器502_1、502_2、502_3以及502_4的指令佇列504_1、504_2、504_3以及504_4。Figure 1 illustrates a
300‧‧‧中央處理單元300‧‧‧Central Processing Unit
302‧‧‧處理系統302‧‧‧ processing system
304_1…304_4‧‧‧處理系統304_1…304_4‧‧‧‧ processing system
306_1…306_4‧‧‧儲存器306_1…306_4‧‧‧storage
308_1...308_4‧‧‧指令佇列308_1...308_4‧‧‧Command queue
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910048210.0ACN110858127B (en) | 2018-08-22 | 2019-01-18 | data storage device |
| US16/416,327US11113102B2 (en) | 2018-08-22 | 2019-05-20 | Data storage device |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862720942P | 2018-08-22 | 2018-08-22 | |
| US62/720,942 | 2018-08-22 |
| Publication Number | Publication Date |
|---|---|
| TWI684130Btrue TWI684130B (en) | 2020-02-01 |
| TW202009691A TW202009691A (en) | 2020-03-01 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107143390ATWI684130B (en) | 2018-08-22 | 2018-12-04 | Data storage device |
| Country | Link |
|---|---|
| TW (1) | TWI684130B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI235916B (en)* | 2000-02-21 | 2005-07-11 | Hewlett Packard Co | Multilevel cache structure and method using multiple issue algorithm with over subscription avoidance for high bandwidth cache pipeline |
| TWM369528U (en)* | 2008-08-05 | 2009-11-21 | Super Talent Electronics Inc | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
| TW201510723A (en)* | 2009-09-03 | 2015-03-16 | Pioneer Chip Technology Ltd | Page based management of flash storage |
| TW201734806A (en)* | 2016-03-22 | 2017-10-01 | 英特爾公司 | Multi-level memory management |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI235916B (en)* | 2000-02-21 | 2005-07-11 | Hewlett Packard Co | Multilevel cache structure and method using multiple issue algorithm with over subscription avoidance for high bandwidth cache pipeline |
| TWM369528U (en)* | 2008-08-05 | 2009-11-21 | Super Talent Electronics Inc | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
| TW201510723A (en)* | 2009-09-03 | 2015-03-16 | Pioneer Chip Technology Ltd | Page based management of flash storage |
| TW201734806A (en)* | 2016-03-22 | 2017-10-01 | 英特爾公司 | Multi-level memory management |
| Publication number | Publication date |
|---|---|
| TW202009691A (en) | 2020-03-01 |
| Publication | Publication Date | Title |
|---|---|---|
| US11960725B2 (en) | NVMe controller memory manager providing CMB capability | |
| CN106104500B (en) | Method and apparatus for storing data | |
| CN103838687B (en) | Bunkerage including its computing system and its data transferring method | |
| CN102460405B (en) | Method and system for controlling host memory access by memory device | |
| US10453501B2 (en) | Hybrid LPDDR4-DRAM with cached NVM and flash-NAND in multi-chip packages for mobile devices | |
| CN105589661B (en) | Data storage device, data processing system and method of operation | |
| US9563367B2 (en) | Latency command processing for solid state drive interface protocol | |
| US9778859B2 (en) | Doorless protocol having multiple queue read requests in flight | |
| US20230185743A1 (en) | Non-volatile storage system and data storage access protocol for non-volatile storage devices | |
| JP6134453B2 (en) | Command queuing | |
| US9652199B2 (en) | Doorbell-less protocol for solid state drive interface | |
| US8521934B1 (en) | Multi-port context-based host controller | |
| CN109815172B (en) | Device controller and storage device including the same | |
| US20170075572A1 (en) | Extending hardware queues with software queues | |
| TW201131368A (en) | Command queue for peripheral component | |
| TW201104440A (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
| WO2016127552A1 (en) | Direct memory access (dma) controller and data transmission method | |
| US20150081955A1 (en) | Acknowledgement-less protocol for solid state drive interface | |
| CN106662895B (en) | Computer equipment and method for reading and writing computer equipment data | |
| CN108696454A (en) | Transforming buffers for exclusive access by driver layers to write instant data streams | |
| CN110858127B (en) | data storage device | |
| TWI684130B (en) | Data storage device | |
| CN111796915A (en) | Interrupt-optimized data storage device and system | |
| TWI360746B (en) | Signal relay device and method for accessing exter |