[go: up one dir, main page]

TWI778363B - 採多級架構控制器的資料儲存裝置 - Google Patents

採多級架構控制器的資料儲存裝置 Download PDF

Info

Publication number
TWI778363B
TWI778363B TW109117976A TW109117976A TWI778363B TW I778363 B TWI778363 B TW I778363B TW 109117976 A TW109117976 A TW 109117976A TW 109117976 A TW109117976 A TW 109117976A TW I778363 B TWI778363 B TW I778363B
Authority
TW
Taiwan
Prior art keywords
chip bus
layer
level
stage
post
Prior art date
Application number
TW109117976A
Other languages
English (en)
Other versions
TW202145018A (zh
Inventor
李安邦
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW109117976A priority Critical patent/TWI778363B/zh
Priority to CN202011430077.4A priority patent/CN113742264B/zh
Priority to US17/204,067 priority patent/US11573730B2/en
Publication of TW202145018A publication Critical patent/TW202145018A/zh
Application granted granted Critical
Publication of TWI778363B publication Critical patent/TWI778363B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種以多級架構控制器控制非揮發式記憶體的技術。所述多級架構控制器採用一上層片內總線以及一下層片內總線,且包括一程式碼加載器、一前級中央處理單元、以及一仲裁器。該程式碼加載器經連結該下層片內總線,進行該多級架構控制器的程式碼加載。該程式碼加載器完成程式碼加載後,該仲裁器仲裁將該程式碼加載器斷開該下層片內總線、切換以該前級中央處理單元連結該下層片內總線,釋出該上層片內總線至該下層片內總線的通信路徑。

Description

採多級架構控制器的資料儲存裝置
本發明係有關於非揮發式記憶體之控制器的硬件設計。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive  RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
如何在硬件設計上提升資料儲存裝置之效能為本技術領域一項重要議題。
本案為非揮發式記憶體揭露一種高效控制技術。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體、以及耦接該非揮發式記憶體的一多級架構控制器。多級架構控制器包含一上層片內總線以及一下層片內總線。該多級架構控制器更包括一程式碼加載器、一前級中央處理器、以及一仲裁器。該程式碼加載器經連結該下層片內總線,進行該多級架構控制器的程式碼加載。該程式碼加載器完成程式碼加載後,該仲裁器仲裁將該程式碼加載器斷開該下層片內總線、切換以該前級中央處理單元連結該下層片內總線。當該前級中央處理單元是經該仲裁器連結該下層片內總線時,將讓出該上層片內總線至該下層片內總線的一第一通信路徑,供其他通信需求使用。多級架構控制器前級以及後級元件之通訊可更順暢。
該多級架構控制器可更包括一後級郵箱,連結該下層片內總線,接收該前級中央處理單元為該多級架構控制器的一後級中央處理單元所發送的郵件。
此段落以非揮發式記憶體之寫入操作為例。該多級架構控制器可更包括連結該上層片內總線的一主機橋接控制器、以及連結該下層片內總線的一後級記憶體。不透過該上層片內總線以及該第一通信路徑,取代該程式碼加載器經該仲裁器連結該下層片內總線的該前級中央處理單元對該後級郵箱發送一寫入要求郵件。該主機橋接控制器則是透過該上層片內總線、該第一通信路徑、以及該下層片內總線,將一寫入資料暫存至該後級記憶體。寫入資料之暫存不受寫入要求郵件之發送延宕。該後級中央處理單元連結該下層片內總線,自該後級郵箱取得該寫入要求郵件後,即刻就可自該後級記憶體取得該寫入資料,程式化至該非揮發式記憶體。
此段落以非揮發式記憶體之讀取操作為例。該多級架構控制器可更包括連結該上層片內總線的一前級指令佇列、以及連結該下層片內總線的一後級記憶體。不透過該上層片內總線以及該第一通信路徑,取代該程式碼加載器經該仲裁器連結該下層片內總線的該前級中央處理單元對該後級郵箱發送一讀取要求郵件。該後級中央處理單元連結該下層片內總線,自該後級郵箱取得該讀取要求郵件後,自至該非揮發式記憶體取得一讀取資料,暫存該讀取資料於該後級記憶體,並在該後級記憶體相應該讀取資料立起一旗標,標示該後級記憶體備有該讀取資料。所述資料儲存裝置係在該前級指令佇列填入一寫入指令,使透過該上層片內總線、該第一通信路徑、以及該下層片內總線,與該後級記憶體交握,進行該旗標之辨識。該旗標之辨識可持續進行,不受讀取要求郵件之發送中斷。
一種實施方式中,該第一通信路徑為該上層片內總線的一第一主接口連結該下層片內總線的一第一從接口形成。該下層片內總線的一第一主接口連結該上層片內總線的一第一從接口,形成該下層片內總線至該上層片內總線的一第二通信路徑。在該仲裁器控制下,該程式碼加載器係經該下層片內總線的一第二從接口連結該下層片內總線,再透過該第二通信路徑,將該程式碼加載至連結該上層片內總線一第二主接口的該前級中央處理單元。該前級中央處理單元經該仲裁器取代該程式碼加載器連結該下層片內總線的該第二從接口時,釋出該第一通信路徑。
該多級架構控制器可更包括一後級郵箱,連結該下層片內總線的一第二主接口,接收連結該下層片內總線該第二從接口的該前級中央處理單元為該多級架構控制器的一後級中央處理單元所發送的郵件。
該多級架構控制器可更包括一主機橋接控制器、以及一後級記憶體。該主機橋接控制器連結該上層片內總線的一第二從接口。該後級記憶體連結該下層片內總線的一第三主接口。該主機橋接控制器係利用該第一通信路徑將一寫入資料暫存至該後級記憶體。
該多級架構控制器可更包括一前級指令佇列,連結該上層片內總線的一第三從接口。該前級指令佇列供填入一寫入指令,以利用該第一通信路徑與該後級記憶體交握,辨識隨著一讀取資料自該非揮發式記憶體暫存至該後級記憶體而立起的一旗標。
該仲裁器仲裁將該程式碼加載器、或該前級中央處理單元連結該下層片內總線的該第二從接口。
一種實施方式中,該上層片內總線以及該下層片內總線為高級可拓展接口(AXI)總線。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構資料中心。例如,伺服器可操作固態硬碟(SSD)陣列形成資料中心。伺服器即可視為主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
第1圖為根據本案一種實施方式實現的資料儲存裝置100。資料儲存裝置100除了具有快閃記憶體102,更可具有一控制器104。主機106係透過該控制器104操作該快閃記憶體102。該控制器104為多級架構(又稱多級架構控制器),各級包括至少一個處理器。圖示控制器104採雙級架構,包括前級(front end)FE以及後級(back end)BE兩級。主機要求經前級FE初步處理後,驅動後級BE實現該快閃記憶體102之存取。本案在前級FE以及後級BE間實施高效通訊。
控制器104可以系統單晶片(SoC)實現。多級架構的系統單晶片(SoC)之效能瓶頸之一為片內總線結構。高級可拓展接口(Advanced eXtensible Interface,簡稱AXI)總線即一種可行方案,係一種高帶寬、低延遲的片內總線,可遵循高級微控制器匯流排架構(Advanced Microcontroller Bus Architecture, 簡稱AMBA)3.0協議。考量成本、功耗、以及面積,AXI總線可規劃為多層架構,不同層的AXI總線彼此再連結通訊。
第2圖圖解控制器104的一種實施方式。分為前級FE(所涵括的元件可以FE開頭標號)以及後級BE(所涵括的元件可以BE開頭標號)的控制器104可以一上層AXI總線202以及一下層AXI總線204實現片內通訊。AXI總線(包括202以及204)提供的接口分為主接口(master I/O)、以及從接口(slave I/O)兩類,不同類接口間點對點通信。上層AXI總線202的一主接口206連結下層AXI總線204的一從接口208,建立上層AXI總線202至下層AXI總線204的通信路徑P1,遵循AXI總線的點對點傳輸特性。下層AXI總線204的一主接口210連結上層AXI總線202的一從接口212,建立下層AXI總線204至上層AXI總線202的通信路徑P2,遵循AXI總線的點對點傳輸特性。
除了從接口212,上層AXI總線202更有其他從接口(slave I/O)。控制器104多個元件NVMe_manual、FE_CMB、FE_DMA、NVMe_Con以及FE_CPU作為主操作端元件連結該些從接口。除了主接口206,上層AXI總線202更有其他主接口(master I/O)。控制器104多個元件FE_TSB以及FE_CPU作為從操作端元件連結該些主接口。
元件NVMe_manual以及NVMe_Con用於實現控制器104與主機106之間的橋接。元件FE_CMB為前級指令佇列(front-end command buffer),可在前級作SSD控制器內部的讀寫儲存緩衝區,或兼做旗標檢查(flag checking)功能。元件FE_DMA為前級的直接記憶體存取(DMA)功能模塊。元件FE_CPU為前級中央處理單元。元件FE_TSB(front-end time share buffer register)可為一靜態隨機存取記憶體(SRAM),可在前級作分時緩衝區,用作臨時池,不同的主機可於此交換傳輸數據。
除了從接口208,下層AXI總線204更有其他從接口(slave I/O)。控制器104多個元件SPI_loader、FE_CPU、BE1_Master、以及BE0_Master作為主操作端元件連結該些從接口。除了主接口210,下層AXI總線204更有其他主接口(master I/O)。控制器104多個元件BE1_mailbox、BE1_Slave、BE0_mailbox、BE0_Slave、FE_Special_Cmd、FE_mailbox作為從操作端元件連結該些主接口。
元件SPI_loader為程式碼加載器,用於自控制器104外部將程式碼載入控制器104內部的運算單元執行。該些運算單元包括歸類為前級FE的中央處理單元FE_CPU、以及歸類為後級BE的中央處理單元。
圖例中,後級BE不限定只有單一中央處理單元,更劃分為兩部分後級BE1(back end 1)以及BE0(back end 0),各自包括中央處理單元、直接存取記憶體、與快閃記憶體控制器,用於快閃記憶體資料的交換與傳輸。後級BE1的中央處理單元可連結該下層AXI總線204的從接口,作為主操作端元件BE1_Master,也可以連結該下層AXI總線204的主接口,作為從操作端元件BE1_Slave。後級BE0的中央處理單元可連結該下層AXI總線204的從接口,作為主操作端元件BE0_Master,也可以連結該下層AXI總線204的主接口,作為從操作端元件BE0_Slave。
主操作端元件BE1_Master除了可以後級BE1之中央處理單元實現,也可以是後級BE1的BOP、HDMA、或Flash_trig_host。主操作端元件BE0_Master除了可以後級BE0之中央處理單元實現,也可以是後級BE0的BOP、HDMA、或Flash_trig_host。從操作端元件BE1_Slave除了可以後級BE1之中央處理單元實現,也可以是後級BE1的動態隨機存取記憶體(DRAM)、暫存記憶體(TSB)、暫存器(REG)、Flash_trig_host、或NVMe_special_cmd。從操作端元件BE0_Slave除了可以後級BE0之中央處理單元實現,也可以是後級BE0的動態隨機存取記憶體(DRAM)、暫存記憶體(TSB)、暫存器(REG)、Flash_trig_host、或NVMe_special_cmd。
後級BE1、BE0更有記憶體作為郵箱BE1_mailbox、BE0_mailbox,接收前級中央處理單元FE_CPU為後級BE1、BE0之中央處理單元發送的郵件。郵箱BE1_mailbox以及BE0_mailbox連結該下層AXI總線204作為從操作端元件。
另外,連結下層AXI總線204作為從操作端的元件FE_Special_cmd以及FE_mailbox屬前級FE。元件FE_Special_cmd(front-end special command)在前級用作主機之快閃記憶體讀取加速。資料由快閃記憶體搬移到後級記憶體(BE TSB)後,後級中央處理單元(BE CPU)會透過寫FE_Special_cmd將資料由後級記憶體(BE TSB)寫回主機。元件FE_mailbox為前級FE之郵箱,接收後級BE1、BE0之中央處理單元為前級中央處理單元FE_CPU發送的郵件。
特別是,本案令程式碼加載器SPI_loader所連結的從接口214更可切換連結該前級中央處理單元FE_CPU。圖例是提供仲裁器(arbitrator)216實現此連結切換。如此一來,前級中央處理單元FE_CPU對後級BE1、BE0至少可採兩種路徑發出要求。
路徑一,前級中央處理單元FE_CPU連結上層AXI總線202的從接口218,經上層AXI總線202的主接口206以及下層AXI總線204的從接口208(通信路徑P1),對下層AXI總線204之主接口220連結的後級郵箱BE1_mailbox、或下層AXI總線204之主接口222連結的後級郵箱BE0_mailbox發送郵件。
另外,程式碼加載器SPI_loader不動作時,仲裁器216會令前級中央處理單元FE_CPU連結從接口214,實現路徑二。此時,前級中央處理單元FE_CPU無須透過上層AXI總線202以及通信路徑P1,就由下層AXI總線204對下層AXI總線204之主接口220連結的後級郵箱BE1_mailbox、或下層AXI總線204之主接口222連結的後級郵箱BE0_mailbox發送郵件。
路徑二不會佔用上層AXI總線202之主接口206至下層AXI總線204之從接口208的通信路徑P1。上層AXI總線202主接口206至下層AXI總線204從接口208的通信路徑P1釋出,可規劃進行其他通信。
圖例中,與主機106橋接的非揮發式記憶體高速介面控制器(又稱主機橋接控制器)NVMe_Con連結上層AXI總線202的從接口224,可即時利用該通信路徑P1連線至下層AXI總線204,對後級BE1、BE0元件(例如,下層AXI總線204之主接口226連結的後級BE1從操作元件BE1_Slave、或下層AXI總線204之主接口228連結的後級BE0從操作元件BE0_Slave)發出通信要求。
一種實施方式中,從操作元件BE1_Slave以及BE0_Slave可為動態隨機存取記憶體(DRAMs)。主機106提出快閃記憶體102寫入要求時,前級中央處理單元FE_CPU早在仲裁器216切換下連結下層AXI總線204的從接口214,直接透過下層AXI總線204傳遞寫入要求郵件至其主接口220、222所連結的後級郵箱BE1_mailbox、BE0_mailbox,告知後級BE1、BE0有快閃記憶體102寫入要求待處理。特別是,寫入要求郵件不佔用通信路徑P1即成功自前級FE傳遞至後級BE。釋出的通信路徑P1可規劃來傳遞寫入資料。上層AXI總線202從接口224連結的非揮發式記憶體高速介面控制器NVMe_Con可透過上層AXI總線202、通信路徑P1、以及下層AXI總線204將寫入資料程式化至下層AXI總線204主接口226、228連結的動態隨機存取記憶體(從操作元件BE1_Slave以及BE0_Slave)。
一種實施方式中,下層AXI總線204之從接口230以及232連結的主操作元件BE1_Master以及BE0_Master為後級BE1、BE0的中央處理單元(CPUs),可透過下層AXI總線204自郵後級箱BE1_mailbox、BE0_mailbox取得寫入要求郵件,再透過下層AXI總線204自動態隨機存取記憶體(從操作元件BE1_Slave以及BE0_Slave)取得其中暫存的寫入資料,程式化至快閃記憶體102。
整理之,寫入資料得以即時透過通信路徑P1備妥於動態隨機存取記憶體(從操作元件BE1_Slave以及BE0_Slave),不因寫入要求郵件之傳遞而拖延。主機106得以高效對快閃記憶體102進行寫入。
此段落討論快閃記憶體102讀取要求。主機106提出快閃記憶體102讀取要求時,前級中央處理單元FE_CPU早在仲裁器216切換下連結下層AXI總線204的從接口214,直接透過下層AXI總線204傳遞讀取要求郵件至其主接口220、222所連結的後級郵箱BE1_mailbox、BE0_mailbox,告知後級BE1、BE0有快閃記憶體102讀取要求待處理。特別是,讀取要求郵件不佔用通信路徑P1即成功自前級FE傳遞至後級BE1、BE0。如此一來,釋出的通信路徑P1可規劃作其他使用。
例如,後級BE1、BE0自快閃記憶體102將讀取資料備妥在動態隨機存取記憶體(從操作元件BE1_Slave以及BE0_Slave)後,會在動態隨機存取記憶體(從操作元件BE1_Slave以及BE0_Slave)立起相關旗標(flag)。連結上層AXI總線202之從接口234之前級指令佇列FE_CMB可供填入一寫入指令(AXI write),使透過上層AXI總線202、該通信路徑P1、以及下層AXI總線204,對動態隨機存取記憶體(從操作元件BE1_Slave、BE0_Slave)進行交握,進行旗標辨識。由於通信路徑P1沒有被前級中央處理單元FE_CPU佔用,所述旗標辨識不會被讀取要求郵件之傳遞打斷。旗標立起的狀況可被即時發現。讀取資料因而可即時自動態隨機存取記憶體(從操作元件BE1_Slave、BE0_Slave)取出,透過下層AXI總線204、下層AXI總線204主接口210至上層AXI總線202從接口212的通信路徑P2、以及上層AXI總線202傳回前級FE,回給主機106。
該仲裁器216可包括多工器,選擇連結該前級中央處理單元FE_CPU至下層AXI總線204之從接口214、或上層AXI總線202之從接口218。所述多工器可由該前級中央處理單元FE_CPU自身控制。程式碼加載器SPI_loader可以是在系統開機時工作,為前級FE、後級BE1、BE0的中央處理單元加載程式碼(ROM code)。程式碼加載完畢,前級中央處理單元FE_CPU根據所載入的程式碼運行,將程式碼加載器SPI_loader與下層AXI總線204之從接口214的連線斷開,並對仲裁器216的多工器進行切換。前級中央處理單元FE_CPU改連結下層AXI總線204之從接口214。
第3圖為流程圖,根據本案一種實施方式描述前級中央處理單元FE_CPU如何切換其對不同層片內總線的使用。
步驟S302,資料儲存裝置100之操作系統開機。下層AXI總線204之從接口214預設連結的是程式碼加載器SPI_loader。
步驟S304,程式碼加載器SPI_loader自控制器104外部將程式碼載入控制器104。透過下層AXI總線204,程式碼加載至後級BE1、BE0的中央處理單元(如,作為從操作端元件BE1_Slave、BE0_Slave接受程式碼加載)供後級BE1、BE0的中央處理單元執行。還有,透過下層AXI總線204、下層AXI總線204主接口210至上層AXI總線202從接口212之通信路徑P2、上層AXI總線202,載入以從操作元件連結上層AXI總線202的該前級中央處理單元FE_CPU。
步驟S306,前級中央處理單元FE_CPU執行所加載的程式碼開始運作,斷開程式碼加載器SPI_loader與下層AXI總線204之從接口214的連結,建立自身與該從接口214的連結。
經前述步驟,資料儲存裝置100啟動完成後,前級中央處理單元FE_CPU不再佔據上層AXI總線202之主接口206至下層AXI總線204之從接口208之通信路徑P1。
以上控制器104也可以由其他結構實現。凡是根據前述概念最佳化片內總線,使控制器104前級FE與後級BE高速通信者,都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存裝置 102:快閃記憶體 104:控制器 106:主機 202:上層AXI總線 204:下層AXI總線 206:上層AXI總線之主接口 208、214、230、232:下層AXI總線之從接口 210、220、222、226、228:下層AXI總線之主接口 212、218、224、234:上層AXI總線之從接口 216:仲裁器 BE:後級 BE0_mailbox、BE1_ mailbox :後級BE0、BE1郵箱 BE0_Master、BE1_Master:後級BE0、BE1連結下層AXI總線204的主操作端元件 BE0_Slave、BE1_Slave :後級BE0、BE1連結下層AXI總線204的從操作端元件 FE:前級: FE_CMB:前級指令佇列 FE_CPU:前級中央處理單元 FE_mailbox :前級郵箱 FE_Special_Cmd、FE_DMA、FE_TSB、NVMe_manual:元件 NVMe_Con:主機橋接控制器 P1、P2:通信路徑 S302…S306:步驟 SPI_loader:程式碼加載器
第1圖為根據本案一種實施方式實現的資料儲存裝置100; 第2圖圖解控制器104的一種實施方式;以及 第3圖為流程圖,根據本案一種實施方式描述前級中央處理單元FE_CPU如何切換其對不同層片內總線的使用。
202:上層AXI總線
204:下層AXI總線:
206:上層AXI總線之主接口
208、214、230、232:下層AXI總線之從接口
210、220、222、226、228:下層AXI總線之主接口
212、218、224、234:上層AXI總線之從接口
216:仲裁器
BE0_mailbox、BE1_mailbox:後級BE0、BE1郵箱
BE0_Master、BE1_Master:後級BE0、BE1連結下層AXI總線204的主操作端元件
BE0_Slave、BE1_Slave:後級BE0、BE1連結下層AXI總線
204的從操作端元件
FE_CMB:前級指令佇列
FE_CPU:前級中央處理單元
FE_mailbox:前級郵箱
FE_Special_Cmd、FE_DMA、FE_TSB、NVMe_manual:元件
NVMe_Con:主機橋接控制器
P1、P2:通信路徑
SPI_loader:程式碼加載器

Claims (18)

  1. 一種資料儲存裝置,包括:一非揮發式記憶體;以及一多級架構控制器,其包含一上層片內總線及一下層片內總線,並耦接該非揮發式記憶體;其中:該多級架構控制器更包括一程式碼加載器、一前級中央處理器、以及一仲裁器;該程式碼加載器經連結該下層片內總線,進行該多級架構控制器的程式碼加載;該程式碼加載器完成程式碼加載後,該仲裁器仲裁將該程式碼加載器斷開該下層片內總線、切換以該前級中央處理單元連結該下層片內總線。
  2. 如請求項1之資料儲存裝置,其中:該多級架構控制器更包括一後級郵箱,連結該下層片內總線,接收該前級中央處理單元為該多級架構控制器的一後級中央處理單元所發送的郵件。
  3. 如請求項2之資料儲存裝置,其中:該多級架構控制器更包括連結該上層片內總線的一主機橋接控制器、以及連結該下層片內總線的一後級記憶體。
  4. 如請求項3之資料儲存裝置,其中: 不透過該上層片內總線、以及該上層片內總線至該下層片內總線之間的一第一通信路徑,取代該程式碼加載器經該仲裁器連結該下層片內總線的該前級中央處理單元對該後級郵箱發送一寫入要求郵件。
  5. 如請求項4之資料儲存裝置,其中:該主機橋接控制器透過該上層片內總線、該第一通信路徑、以及該下層片內總線,將一寫入資料暫存至該後級記憶體。
  6. 如請求項5之資料儲存裝置,其中:該後級中央處理單元連結該下層片內總線,自該後級郵箱取得該寫入要求郵件後,自該後級記憶體取得該寫入資料,程式化至該非揮發式記憶體。
  7. 如請求項2之資料儲存裝置,其中:該多級架構控制器更包括連結該上層片內總線的一前級指令佇列、以及連結該下層片內總線的一後級記憶體。
  8. 如請求項7之資料儲存裝置,其中:不透過該上層片內總線、以及該上層片內總線至該下層片內總線之間的一第一通信路徑,取代該程式碼加載器經該仲裁器連結該下層片內總線的該前級中央處理單元對該後級郵箱發送一讀取要求郵件。
  9. 如請求項8之資料儲存裝置,其中:該後級中央處理單元連結該下層片內總線,自該後級郵箱取得該讀取要求郵件後,自至該非揮發式記憶體取得一讀取資料, 暫存該讀取資料於該後級記憶體,並在該後級記憶體相應該讀取資料立起一旗標,標示該後級記憶體備有該讀取資料。
  10. 如請求項9之資料儲存裝置,係在該前級指令佇列填入一寫入指令,使透過該上層片內總線、該第一通信路徑、以及該下層片內總線,與該後級記憶體交握,進行該旗標之辨識。
  11. 如請求項1之資料儲存裝置,其中:一第一通信路徑為該上層片內總線的一第一主接口連結該下層片內總線的一第一從接口形成。
  12. 如請求項11之資料儲存裝置,其中:該下層片內總線的一第一主接口連結該上層片內總線的一第一從接口,形成該下層片內總線至該上層片內總線的一第二通信路徑;且在該仲裁器控制下,該程式碼加載器係經該下層片內總線的一第二從接口連結該下層片內總線,再透過該第二通信路徑,將該程式碼加載至連結該上層片內總線一第二主接口的該前級中央處理單元。
  13. 如請求項12之資料儲存裝置,其中:該前級中央處理單元經該仲裁器取代該程式碼加載器連結該下層片內總線的該第二從接口時,釋出該第一通信路徑。
  14. 如請求項13之資料儲存裝置,其中:該多級架構控制器更包括一後級郵箱,連結該下層片內總線的一第二主接口,接收連結該下層片內總線該第二從接口的該前 級中央處理單元為該多級架構控制器的一後級中央處理單元所發送的郵件。
  15. 如請求項14之資料儲存裝置,其中:該多級架構控制器更包括一主機橋接控制器、以及一後級記憶體;該主機橋接控制器連結該上層片內總線的一第二從接口;該後級記憶體連結該下層片內總線的一第三主接口;且該主機橋接控制器係利用該第一通信路徑將一寫入資料暫存至該後級記憶體。
  16. 如請求項15之資料儲存裝置,其中:該多級架構控制器更包括一前級指令佇列,連結該上層片內總線的一第三從接口;且該前級指令佇列供填入一寫入指令,以利用該第一通信路徑與該後級記憶體交握,辨識隨著一讀取資料自該非揮發式記憶體暫存至該後級記憶體而立起的一旗標。
  17. 如請求項13之資料儲存裝置,其中:該仲裁器仲裁將該程式碼加載器、或該前級中央處理單元連結該下層片內總線的該第二從接口。
  18. 如請求項1之資料儲存裝置,其中:該上層片內總線以及該下層片內總線為高級可拓展接口(AXI)總線。
TW109117976A 2020-05-29 2020-05-29 採多級架構控制器的資料儲存裝置 TWI778363B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109117976A TWI778363B (zh) 2020-05-29 2020-05-29 採多級架構控制器的資料儲存裝置
CN202011430077.4A CN113742264B (zh) 2020-05-29 2020-12-07 采多级架构控制器的数据储存装置
US17/204,067 US11573730B2 (en) 2020-05-29 2021-03-17 Data storage device with multi-stage controller further including host bridge controller with upper on-chip and lower on-chip back-end memory connection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109117976A TWI778363B (zh) 2020-05-29 2020-05-29 採多級架構控制器的資料儲存裝置

Publications (2)

Publication Number Publication Date
TW202145018A TW202145018A (zh) 2021-12-01
TWI778363B true TWI778363B (zh) 2022-09-21

Family

ID=78706287

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109117976A TWI778363B (zh) 2020-05-29 2020-05-29 採多級架構控制器的資料儲存裝置

Country Status (3)

Country Link
US (1) US11573730B2 (zh)
CN (1) CN113742264B (zh)
TW (1) TWI778363B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW225594B (zh) * 1992-01-02 1994-06-21 Ibm
TW201800929A (zh) * 2016-06-21 2018-01-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TW201821994A (zh) * 2016-12-14 2018-06-16 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI661310B (zh) * 2016-06-22 2019-06-01 美光科技公司 用於操作一記憶體裝置之設備及方法
US10592419B2 (en) * 2015-10-16 2020-03-17 SK Hynix Inc. Memory system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720838B2 (en) * 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US10331353B2 (en) * 2016-04-08 2019-06-25 Branislav Radovanovic Scalable data access system and methods of eliminating controller bottlenecks
TWI676104B (zh) * 2017-04-13 2019-11-01 慧榮科技股份有限公司 記憶體控制器與資料儲存裝置
CN109101186A (zh) * 2017-06-20 2018-12-28 上海宝存信息科技有限公司 数据储存装置与数据储存方法
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US11467834B2 (en) * 2020-04-01 2022-10-11 Samsung Electronics Co., Ltd. In-memory computing with cache coherent protocol

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW225594B (zh) * 1992-01-02 1994-06-21 Ibm
US10592419B2 (en) * 2015-10-16 2020-03-17 SK Hynix Inc. Memory system
TW201800929A (zh) * 2016-06-21 2018-01-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI661310B (zh) * 2016-06-22 2019-06-01 美光科技公司 用於操作一記憶體裝置之設備及方法
TW201821994A (zh) * 2016-12-14 2018-06-16 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
CN113742264B (zh) 2023-09-29
CN113742264A (zh) 2021-12-03
US11573730B2 (en) 2023-02-07
TW202145018A (zh) 2021-12-01
US20210373798A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
US12204758B2 (en) Near-memory compute module
US11562778B2 (en) Memory module and system supporting parallel and serial access modes
CN115495389B (zh) 存储控制器、计算存储装置以及计算存储装置的操作方法
CN108320764B (zh) 半导体设备、存储器模块及其操作方法
KR20230026370A (ko) 플래쉬 집적 고 대역폭 메모리 장치
US9134919B2 (en) Memory device including priority information and method of operating the same
CN105247617B (zh) 混合存储器设备
US10719462B2 (en) Technologies for computational storage via offload kernel extensions
CN108121672A (zh) 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
US11704023B2 (en) Extensible storage system and method
CN103811050A (zh) 存储电路及操作存储电路的方法
TW202143229A (zh) 用以在矽基板及封裝基板上耦接高頻寬記憶體裝置的技術
CN114493978A (zh) 加速器控制器中心
US12340120B2 (en) Storage controller, computational storage device, and operational method of computational storage device
CN116737604A (zh) 内存控制芯片、服务器的内存模组以及服务器
TWI703683B (zh) 用以控制外部封裝記憶體裝置之系統級封裝邏輯及方法
Khalifa et al. Memory controller architectures: A comparative study
TWI778363B (zh) 採多級架構控制器的資料儲存裝置
US20220197836A1 (en) Data storage device with an exclusive channel for flag checking of read data, and non-volatile memory control method
TW202020634A (zh) 多主機控制器及包括所述多主機控制器的半導體裝置
US10379978B2 (en) Semiconductor device and system relating to data mapping
US20250053336A1 (en) Memory device and computing system including the same
US10331366B2 (en) Method of operating data storage device and method of operating system including the same
US20250362830A1 (en) Memory system and operating method thereof
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent