TWI772242B - 記憶裝置以及相關快閃記憶體控制器 - Google Patents
記憶裝置以及相關快閃記憶體控制器 Download PDFInfo
- Publication number
- TWI772242B TWI772242B TW111100238A TW111100238A TWI772242B TW I772242 B TWI772242 B TW I772242B TW 111100238 A TW111100238 A TW 111100238A TW 111100238 A TW111100238 A TW 111100238A TW I772242 B TWI772242 B TW I772242B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- host device
- memory controller
- channels
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- 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/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/287—Multiplexed DMA
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種記憶裝置,包含一連接器以及一快閃記憶體控制器。該連接器係用來連接至一第一主裝置以及一第二主裝置。該快閃記憶體控制器係用來基於一選擇電路選擇該第一主裝置及該第二主裝置的其中一者,以及該快閃記憶體控制器僅處理來自該第一主裝置及該第二主裝置中被選擇之主裝置的指令,並且基於該些指令存取一快閃記憶體模組。
Description
本發明係關於一記憶裝置,尤指一種記憶裝置的故障轉移(failover)機制。
固態硬碟(solid-state drive, SSD)是一種使用積體電路組件來儲存資料的記憶裝置,而且固態硬碟在企業應用諸如資料中心(data center)中變得相當熱門。為了在企業應用中提供更高的可用性,系統通常具有故障轉移機制以容許兩個主裝置或兩個伺服器去存取固態硬碟,也就是說若因為作業系統崩潰或是硬碟損壞等問題造成主要(primary)伺服器存取固態硬碟失敗,待命的伺服器能立即取代主要伺服器以避免服務中斷。
傳統的故障轉移機制使用雙埠(dual-port)固態硬碟以容許兩個伺服器同時存取,然而,雙埠固態硬碟具有兩個快閃記憶體控制器在內部,且相當昂貴。因此,為了降低製造成本,帶有快捷外設互連(Peripheral Component Interconnect Express,簡稱PCIe)開關的單埠(single-port)固態硬碟可被用來取代雙埠固態硬碟的功能,然而,PCIe開關相當昂貴,且PCIe開關的尺寸太大而難以裝進單埠固態硬碟中。因此,如何使用單埠固態硬碟來提供故障轉移機制遂成為熱門的議題。
因此,本發明之一目的在於提供一種用於單埠固態硬碟的故障轉移機制,並且該單埠固態硬碟本身不具有用來與兩個主裝置溝通的PCIe開關,以解決上述問題。
依據本發明一實施例,提供了一種包含有一連接器以及一快閃記憶體控制器的記憶裝置。該連接器係用來連接一第一主裝置以及一第二主裝置。該快閃記憶體控制器係用來基於一選擇訊號選擇該第一主裝置及該第二主裝置的其中一者,而該快閃記憶體控制器僅處理來自該第一主裝置及該第二主裝置中被選擇之主裝置的指令,並且基於所述指令存取一快閃記憶體模組。
例如,該記憶裝置可為一單埠固態硬碟,且該第一主裝置及該第二主裝置不被容許同時透過該快閃記憶體控制器存取該快閃記憶體模組。另外,該第一主裝置在一開始與該快閃記憶體控制器溝通,以及當該快閃記憶體控制器接收到指出該第二主裝置已被選擇的該選擇訊號時,該快閃記憶體控制器自該第二主裝置接收一參考時脈訊號以及一重設訊號,而該快閃記憶體控制器被配置成處理來自該第二主裝置的指令,並且停止處理來自該第一主裝置的指令。
依據本發明另一實施例,揭示了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器係內建於一單埠固態硬碟。該快閃記憶體控制器包含一記憶體以及一微處理器,其中該記憶體可用來儲存一程式碼,以及該微處理器可用來執行該程式碼以透過一控制邏輯電路存取該快閃記憶體模組。該快閃記憶體控制器耦接至一第一主裝置以及一第二主裝置,該微處理器接收用來自該第一主裝置及該第二主裝置中選擇其一的一選擇訊號,而該微處理器僅處理來自該第一主裝置及該第二主裝置中之所被選擇之主裝置的指令,並且基於所述指令存取該快閃記憶體模組,其中該微處理器不被允許同時處理來自該第一主裝置與第二主裝置的指令。另外,該快閃記憶體控制器在一開始與該第一主裝置溝通,以及當該微處理器接收到指出該第二主裝置已被選擇的該選擇訊號時,該微處理器自該第二主裝置接收一參考時脈訊號以及一重設訊號,而該微處理器配置該快閃記憶體控制器處理來自該第二主裝置的指令,並且停止處理來自該第一主裝置的指令。
第1圖為依據本發明一實施例之系統100的示意圖。如第1圖所示,系統100包含兩個主裝置110及120、一記憶裝置諸如一固態硬碟130、以一及背板(backplane)140。主裝置110包含至少一PCIe開關112以及一基板管理控制器(baseboard management controller, BMC)118(在圖示中標示為「BMC」以求簡明),且PCIe開關112包含一上游(upstream)埠114以及複數個下游(downstream)埠(在本實施例中,PCIe開關112包含三個下游埠116_1 ~ 116_3),其中上游埠114是用來連接主裝置110中之一處理電路諸如一中央處理單元(central processing unit, CPU),而下游埠116_1 ~ 116_3中之每一者是用來將外部的裝置連接主裝置110。主裝置120包含至少一PCIe開關122以及一基板管理控制器128在圖示中標示為「BMC」以求簡明,且PCIe開關122包含一上游埠124以及複數個下游埠(在本實施例中,PCIe開關122包含三個下游埠126_1 ~ 126_3),其中上游埠124是用來連接主裝置120中之一處理電路諸如一中央處理單元,而下游埠126_1 ~ 126_3中之每一者是用來將外部的裝置連接主裝置120。固態硬碟130包含一快閃記憶體控制器132、一多工器134(在圖示中標示為「MUX」以求簡明)、一邏輯電路136、一連接器138以及一快閃記憶體模組139,而背板140包含一輸出/輸入(input/output,簡稱IO)擴充器142。在本實施例中,系統110可被應用在一資料中心,也就是說固態硬碟130是用來儲存並透過區域網路(local area network, LAN)或網際網路輸出資料,以及主裝置110及120中之一者是用來透過背板140存取固態硬碟130。
在本實施例中,固態硬碟130的連接器138為包含有四個通道(lane)的「8639連接器」或「U.2連接器」,而這些通道中的兩個通道(例如通道#0及通道#1)耦接至主裝置110的下游埠116_1,並且其他兩個通道(例如通道#2及通道#3)耦接至主裝置120的下游埠126_1。固態硬碟130是一個單埠固態硬碟,也就是說固態硬碟130僅有一個快閃記憶體控制器132,並且僅有快閃記憶體控制器132被容許接收來自主裝置110/120的指令(例如讀取指令或寫入指令)以存取快閃記憶體模組139。需注意的是快閃記憶體控制器132可為安裝在固態硬碟130中之一印刷電路板(printed circuit board, PCB)上的一單封裝(single package),並且這個單封裝僅包含一個用於存取快閃記憶體模組139的裸晶。換言之,在固定硬碟130作為該單埠固態硬碟的情形下,固態硬碟130不能同時被主裝置110及120存取,也就是說固態硬碟130在同一時間僅接收來自一個主裝置110/120(主裝置110及120的其中一者)的指令。在本實施例中,快閃記憶體控制器132被配置成於同一時間僅使用該四個通道中之其中兩者來與主裝置110/120(主裝置110及120的其中一者)溝通,例如,快閃記憶體控制器132被配置成使用連接器138的通道#0及通道#1的訊號/資料。
在系統100的運作中,假設主裝置110是正在存取固態硬碟的可動(active)裝置而主裝置120是無法存取固態硬碟130的待命裝置,基板管理控制器118是用來控制IO擴充器142以產生一選擇訊號SEL給多工器134以及快閃記憶體控制器132。此時,主裝置110產生一參考時脈訊號RefClk#0以及一重設訊號PERst#0,而多工器134依據選擇訊號SEL選擇參考時脈訊號RefClk#0作為一輸出參考時脈訊號RefClk,並且快閃記憶體控制器132使用輸出參考時脈訊號RefClk來執行其運作;而快閃記憶體控制器132另透過邏輯電路136接收PERst #0以重設其內部配置。另外,快閃記憶體控制器132另自多工器134接收選擇訊號SEL以得知主裝置110及120的哪一者是可動的,以供快閃記憶體控制器132進行適當的配置。需注意的是主裝置120(待命裝置)不會產生一參考時脈訊號RefClk#1以及一重設訊號PERst#1。在快閃記憶體控制器132的配置被重設後,主裝置110的中央處理單元能透過PCIe開關112的上游埠114以及下游埠116_1、以及連接器138將指令發送至快閃記憶體控制器132,並且快閃記憶體控制器132依據來自主裝置110的指令存取快閃記憶體模組139。此時,因為快閃記憶體控制器132被配置成僅使用通道#0及通道#1來與主裝置110溝通,因此通道#2及通道#3是被除能的(也就是說快閃記憶體控制器132不處理對應於通道#2及通道#3的訊號)。
在第1圖所示之實施例中,若主裝置110突然存取固態硬碟130失敗,例如,因為主裝置110的作業系統崩潰、主裝置110內的硬碟損壞、下游埠116_1被除能、或任何其他失敗原因,系統100能立即執行故障轉移機制,即主裝置120取代主裝置110。特別是,參照第2圖,因為主裝置110及120總是互相溝通,主裝置120能偵測主裝置110是否可以存取固態硬碟130,例如,主裝置120自主裝置110接收到指出一故障轉移指令的一特別訊號、及/或主裝置120未接收到週期性地自主裝置110發送的訊號、及/或主裝置120發送一訊號至主裝置110但並未接收到回覆、或是任意其他錯誤偵測機制,主裝置120能判斷出主裝置110存取固態硬碟130失敗。一旦主裝置120判斷主裝置110存取固態硬碟130失敗,主裝置120的中央處理單元通知基板管理控制器128以和基板管理控制器118溝通已嘗試除能PCIe開關112的下游埠116_1,並且主裝置120的中央處理單元通知基板管理控制器128以控制IO擴充器142以產生指出主裝置120已被選擇的選擇訊號SEL給多工器134以及快閃記憶體控制器132。此時,主裝置120產生參考時脈訊號RefClk#1以及重設訊號PERst#1,並且多工器134依據選擇訊號SEL選擇參考時脈訊號RefClk#1以作為該輸出參考時脈訊號RefClk,而快閃記憶體控制器132使用該參考時脈訊號RefClk執行其運作;而快閃記憶體控制器132另透過邏輯電路136接收重設訊號PERst#1以重設其內部配置。另外,快閃記憶體控制器132另自多工器134接收選擇訊號SEL以得知主裝置120成為可動裝置而主裝置110成為待命裝置,以供快閃記憶體控制器132進行適當的配置。需注意的是主裝置110(待命裝置)不會產生參考時脈訊號RefClk#0以及重設訊號PERst#0。在PCIe開關112的下游埠116_1被除能後,主裝置120致能PCIe開關112的下游埠126_1。需注意的是,因為快閃記憶體控制器132被配置成僅使用連接器138的通道#0及通道#1,且主裝置120原本對應於連接器138的通道#2及通道#3,因此快閃記憶體控制器可進行一通道反轉運作以成功地和主裝置120溝通。也就是說,在連接器138中之對應於原來的通道#0的腳位(pin)被配置成對應於通道#3,在連接器138中之對應於原來的通道#1的腳位被配置成對應於通道#2,在連接器138中之對應於原來的通道#2的腳位被配置成對應於通道#1,以及在連接器138中之對應於原來的通道#3的腳位被配置成對應於通道#0。另外,PCIe開關122的下游埠126_1的通道被配置成對應於連接器138的通道,例如,PCIe開關122可發送訓練訊號至快閃記憶體控制器132以判斷這些通道是否匹配(match),若這些通道不匹配,PCIe開關122也可執行通道反轉運作以使在下游埠126_1中之對應於原來的通道#0的腳位被配置成對應於通道#1,以及在下游埠126_1中之對應於原來的通道#1的腳位被配置成對應於通道#0。在快閃記憶體控制器132以及PCIe開關122的配置被重設後,主裝置120的中央處理單元能透過PCIe開關122的上游埠124以及下游埠126_1、以及連接器138將指令發送至快閃記憶體控制器132,並且快閃記憶體控制器132依據來自主裝置120的指令存取快閃記憶體模組139。
另外,因為快閃記憶體控制器132總是被配置成僅使用通道#0及通道#1來和主裝置110/120溝通,其他的通道諸如通道#2及通道#3應被控制為除能的以避免固態硬碟130的錯誤運作。在一實施例中,通道#2及通道#3可被主裝置110/120除能。在另一實施例中,通道#2及通道#3可被快閃記憶體控制器132除能,例如,若快閃記憶體控制器132接收到的選擇訊號SEL指出主裝置110是可動的,且上述通道被配置成如第1圖所示,快閃記憶體控制器132直接致能通道#0及通道#1並且除能通道#2及通道#3;而若快閃記憶體控制器132接收到的選擇訊號SEL指出主裝置120是可動的且上述通道原本被配置成如第1圖所示,快閃記憶體控制器132首先進行通道反轉運作已將上述通道配置成如第2圖所示,並且在通道反轉運作完成後接著致能通道#0及通道#1並且除能通道#2及通道#3。
綜上所述,藉由增加多工器134並且將快閃記憶體控制器132設計成具有上述故障轉移機制,系統100能單純地使用固態硬碟130(單埠固態硬碟)達到高可用性的目的,而且固態硬碟130不具有任何PCIe開關在其內。因此,本發明的實施例中之系統100中之固態硬碟130具有較高的可用性以及較低的製造成本。
第3圖為依據本發明一實施例之系統100的故障轉移過程的流程圖。參考上述實施例,該流程如下所述。
步驟300:流程開始。
步驟302:一第一主裝置充當一可動裝置而一第二主裝置充當一待命裝置,並且該第一主裝置存取一固態硬碟。
步驟304:該第二主裝置判斷該第一主裝置無法存取該固態硬碟,並且該第二主裝置除能該第一主裝置的下游埠。
步驟306:該第二主裝置控制該固態硬碟使用來自該第二主裝置的一參考時脈。
步驟308:該第二主裝置發送一重設訊號以重設該固態硬碟的一快閃記憶體控制器。
步驟310:該第二主裝置致能PCIe開關的下游埠,並且開始存取固態硬碟。
第4圖為依據本發明一實施例之快閃記憶體控制器132的示意圖。如第1圖所示,快閃記憶體控制器132可包含一處理電路諸如一微處理器412、一儲存單元諸如一唯讀記憶體(read-only memory, ROM)412M、一控制邏輯電路414、一隨機存取記憶體(random-access memory, RAM)416、以及一傳輸介面電路418,其中以上元件可透過一匯流排互相耦接。隨機存取記憶體416是由一靜態隨機存取記憶體(Static RAM, SRAM)來實施,但本發明不限於此。隨機存取記憶體416可用來提供內部儲存空間給快閃記憶體控制器132,例如,隨機存取記憶體416可被用來當作一緩衝記憶體以供緩衝資料。另外,本實施例中的唯讀記憶體412M是用來儲存一程式碼412C,而微處理器412是用來執行程式碼412C以控制快閃記憶體模組139的存取。請注意,在某些例子中,程式碼412C可被儲存在隨機存取記憶體416或任何類型的記憶體中。此外,控制邏輯電路414可用來控制快閃記憶體模組139,並且可包含一編碼器432、一解碼器434、一隨機化器436、一解隨機化器438以及其他電路。傳輸介面電路418可符合一特定通訊標準(例如串列高級技術附件(Serial Advanced Technology Attachment,簡稱串列ATA或SATA)標準、外設組件互聯(Peripheral Component Interconnect,簡稱PCI)標準、PCIe標準、通用快閃儲存(Universal Flash Storage,簡稱UFS)標準等),並且可依據該特定通訊標準進行通訊,例如透過連接器138來和主裝置110/120進行通訊。
在本實施例中,因為固態硬碟130僅包含一個包含有第4圖所示之元件的快閃記憶體控制器132,溝通於主裝置110/120與快閃記憶體模組139之間的全部指令或資料均必須要透過第4圖所示之由微處理器412控制的原件處理,且快閃記憶體模組139的全部區域均是配置成由單一的快閃記憶體控制器139來存取。
總結來說,在本發明的系統中,藉由提供固態硬碟中的多工器並且設計快閃記憶體控制器以具有上述故障轉移機制,該系統能單純地使用單埠固態硬碟達成高可用性的目的,並且固態硬碟不具有任何PCIe開關在其內。因此,系統100中的固態硬碟具有較高的可用性以及較低的製造成本。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:系統
110,120:主裝置
112,122:PCIe開關
114,124:上游埠
116_1,116_2,116_3,126_1,126_2,126_3:下游埠
118,128:基板管理控制器
130:固態硬碟
132:快閃記憶體控制器
134:多工器
136:邏輯電路
138:連接器
139:快閃記憶體模組
140:背板
142:IO擴充器
SEL:選擇訊號
RefClk,RefClk#0,RefClk#1:輸出參考時脈訊號
PERst#0,PERst#1:重設訊號
300,302,304,306,308,310:步驟
412:微處理器
412M:唯讀記憶體
412C:程式碼
414:控制邏輯電路
416:隨機存取記憶體
418:傳輸介面電路
432:編碼器
434:解碼器
436:隨機化器
438:解隨機化器
第1圖為依據本發明一實施例之一系統的示意圖。
第2圖依據本發明一實施例展示該系統的故障轉移過程。
第3圖為依據本發明一實施例之該系統的故障轉移過程的流程圖。
第4圖為依據本發明一實施例之一快閃記憶體控制器的示意圖。
100:系統
110,120:主裝置
112,122:PCIe開關
114,124:上游埠
116_1,116_2,116_3,126_1,126_2,126_3:下游埠
118,128:基板管理控制器
130:固態硬碟
132:快閃記憶體控制器
134:多工器
136:邏輯電路
138:連接器
139:快閃記憶體模組
140:背板
142:IO擴充器
SEL:選擇訊號
RefClk,RefClk#0,RefClk#1:輸出參考時脈訊號
PERst#0,PERst#1:重設訊號
Claims (8)
- 一種記憶裝置,包含: 一連接器,配置成連接一第一主裝置以及一第二主裝置;以及 一快閃記憶體控制器,用來基於一選擇訊號選擇該第一主裝置及該第二主裝置的其中一者,並且僅處理來自該第一主裝置及該第二主裝置中被選擇之主裝置的指令,以及基於所述指令存取一快閃記憶體模組; 其中該記憶裝置係為一單埠(single-port)固態硬碟(solid-state drive, SSD),且該第一主裝置及該第二主裝置不被容許同時透過該快閃記憶體控制器存取該快閃記憶體模組; 其中該連接器被配置成具有複數個通道(lane),該複數個通道之一第一部分對應於該第一主裝置,該複數個通道之一第二部分對應於該第二主裝置;若該第一主裝置被選擇,該複數個通道之該第一部分被致能(enable),並且該複數個通道之該第二部分不被該快閃記憶體控制器使用來與該第一主裝置進行溝通;以及若該第二主裝置被選擇,該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分不被該快閃記憶體控制器使用來與該第一主裝置進行溝通。
- 如申請專利範圍第1項所述之記憶裝置,其中該快閃記憶體控制器在一開始與該第一主裝置溝通,以及當該快閃記憶體控制器接收到指出該第二主裝置已被選擇的該選擇訊號時,該快閃記憶體控制器執行一通道反轉運作以反轉該複數個通道的通道編號,而該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分被除能。
- 如申請專利範圍第2項所述之記憶裝置,其中當該快閃記憶體控制器接收到指出該第二主裝置已被選擇的該選擇訊號時,該快閃記憶體控制器執行該通道反轉運作以反轉該複數個通道的通道編號,以及該快閃記憶體控制器使該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分被除能。
- 如申請專利範圍第1項所述之記憶裝置,其中該快閃記憶體控制器在一開始與該第一主裝置溝通,以及當該快閃記憶體控制器接收到指出該第二主裝置已被選擇的該選擇訊號時,該快閃記憶體控制器自該第二主裝置接收一參考時脈訊號,而該快閃記憶體控制器被配置來處理來自該第二主裝置的指令,並且停止處理來自該第一主裝置的指令。
- 如申請專利範圍第4項所述之記憶裝置,另包含: 一多工器,用來依據該選擇訊號選擇一第一參考時脈訊號及一第二參考時脈訊號中之一者作為該參考時脈訊號,其中該第一參考時脈訊號對應於該第一主裝置,以及該第二參考時脈訊號對應於該第二主裝置; 其中當該快閃記憶體控制器接收到指出該第二主裝置已被選擇的該選擇訊號時,該多工器選擇該第二參考時脈訊號作為該參考時脈訊號,並且輸出該參考時脈訊號至該快閃記憶體控制器。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體控制器係內建於一單埠(single-port)固態硬碟(solid-state drive, SSD),以及該快閃記憶體控制器包含: 一記憶體,用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以透過一控制邏輯電路存取該快閃記憶體模組; 其中該快閃記憶體控制器耦接至一第一主裝置以及一第二主裝置,該微處理器接收用來自該第一主裝置及該第二主裝置中選擇其一的一選擇訊號,而該微處理器僅處理來自該第一主裝置及該第二主裝置中所被選擇之主裝置的指令,並且基於所述指令存取該快閃記憶體模組;以及該微處理器不被允許同時處理來自該第一主裝置與第二主裝置的指令; 其中耦接於該快閃記憶體控制器的一連接器被配置成具有複數個通道(lane),該複數個通道之一第一部分對應於該第一主裝置,該複數個通道之一第二部分對應於該第二主裝置;若該第一主裝置被選擇,該複數個通道之該第一部分被致能(enable),並且該複數個通道之該第二部分不被該微處理器使用來與該第一主裝置進行溝通;以及若該第二主裝置被選擇,該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分不被該微處理器使用來與該第一主裝置進行溝通。
- 如申請專利範圍第6項所述之快閃記憶體控制器,其中該快閃記憶體控制器在一開始與該第一主裝置溝通,以及當該微處理器接收到指出該第二主裝置已被選擇的該選擇訊號時,該微處理器執行一通道反轉運作以反轉該複數個通道的通道編號,而該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分被除能。
- 如申請專利範圍第7項所述之快閃記憶體控制器,其中當該微處理器接收到指出該第二主裝置已被選擇的該選擇訊號時,該微處理器執行該通道反轉運作以反轉該複數個通道的通道編號,以及該快閃記憶體控制器使該複數個通道之該第二部分被致能,並且該複數個通道之該第一部分被除能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/796,839 US11068421B1 (en) | 2020-02-20 | 2020-02-20 | Memory device and associated flash memory controller |
US16/796,839 | 2020-02-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202215428A TW202215428A (zh) | 2022-04-16 |
TWI772242B true TWI772242B (zh) | 2022-07-21 |
Family
ID=76861608
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110102522A TWI755259B (zh) | 2020-02-20 | 2021-01-22 | 記憶裝置以及相關快閃記憶體控制器 |
TW111100238A TWI772242B (zh) | 2020-02-20 | 2021-01-22 | 記憶裝置以及相關快閃記憶體控制器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110102522A TWI755259B (zh) | 2020-02-20 | 2021-01-22 | 記憶裝置以及相關快閃記憶體控制器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11068421B1 (zh) |
CN (1) | CN113282231B (zh) |
TW (2) | TWI755259B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160203091A1 (en) * | 2015-01-13 | 2016-07-14 | Samsung Electronics Co., Ltd. | Memory controller and memory system including the same |
US20170357609A1 (en) * | 2016-06-10 | 2017-12-14 | Liqid Inc. | Multi-Port Interposer Architectures In Data Storage Systems |
US20180246833A1 (en) * | 2017-02-28 | 2018-08-30 | Cisco Technology, Inc. | DYNAMIC PARTITION OF PCIe DISK ARRAYS BASED ON SOFTWARE CONFIGURATION / POLICY DISTRIBUTION |
US20190138440A1 (en) * | 2017-11-07 | 2019-05-09 | SK Hynix Inc. | Memory system and operating method thereof |
US20200026683A1 (en) * | 2018-07-20 | 2020-01-23 | Samsung Electronics Co., Ltd. | Sff-ta-100x based multi-mode protocols solid state devices |
US20200050402A1 (en) * | 2018-08-08 | 2020-02-13 | Marvell World Trade Ltd. | Managed Switching Between One or More Hosts and Solid State Drives (SSDs) Based on the NVMe Protocol to Provide Host Storage Services |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707330B2 (en) * | 2003-09-18 | 2010-04-27 | Rao G R Mohan | Memories for electronic systems |
US20070140277A1 (en) * | 2005-12-20 | 2007-06-21 | Via Technologies Inc. | Packet transmission apparatus and processing method for the same |
US20070260778A1 (en) * | 2006-04-04 | 2007-11-08 | Ming-Shiang Lai | Memory controller with bi-directional buffer for achieving high speed capability and related method thereof |
CN101025642A (zh) * | 2007-04-12 | 2007-08-29 | 威盛电子股份有限公司 | 调整时钟频率的方法及系统 |
US8245101B2 (en) * | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
JP5449686B2 (ja) * | 2008-03-21 | 2014-03-19 | ピーエスフォー ルクスコ エスエイアールエル | マルチポートメモリ及びそのマルチポートメモリを用いたシステム |
US8892696B1 (en) * | 2012-03-08 | 2014-11-18 | Juniper Networks, Inc. | Methods and apparatus for automatic configuration of virtual local area network on a switch device |
US20130297858A1 (en) * | 2012-04-19 | 2013-11-07 | Stec, Inc. | Systems and methods for providing channel buffer in a solid-state device |
US9223734B2 (en) * | 2013-12-13 | 2015-12-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Switch with synthetic device capability |
JP5931236B1 (ja) * | 2015-02-05 | 2016-06-08 | 力晶科技股▲ふん▼有限公司 | 半導体装置の制御回路及び方法、並びに半導体装置 |
TWM516186U (zh) * | 2015-08-10 | 2016-01-21 | 宏正自動科技股份有限公司 | 雷電分享控制裝置 |
US10884914B2 (en) * | 2016-02-19 | 2021-01-05 | International Business Machines Corporation | Regrouping data during relocation to facilitate write amplification reduction |
KR102507714B1 (ko) * | 2016-05-02 | 2023-03-09 | 삼성전자주식회사 | SRIS를 지원하는 PCIe 장치 |
KR102395190B1 (ko) * | 2017-07-31 | 2022-05-06 | 삼성전자주식회사 | 호스트와 인터페이스를 수행하는 스토리지 장치, 호스트 및 스토리지 장치의 동작방법 |
US10318461B2 (en) * | 2017-08-04 | 2019-06-11 | Dell Products L.P. | Systems and methods for interconnecting GPU accelerated compute nodes of an information handling system |
CN109697179B (zh) * | 2017-10-24 | 2022-06-24 | 英业达科技有限公司 | 硬件资源扩充系统及热插入管理装置 |
US10534733B2 (en) * | 2018-04-26 | 2020-01-14 | EMC IP Holding Company LLC | Flexible I/O slot connections |
US10558376B2 (en) * | 2018-06-28 | 2020-02-11 | Western Digital Technologies, Inc. | Storage system and method for namespace reservation in a multi-queue single-controller environment |
US10831688B2 (en) * | 2018-08-21 | 2020-11-10 | International Business Machines Corporation | Reconfigurable network infrastructure |
US11144326B2 (en) * | 2019-02-19 | 2021-10-12 | Cisco Technology, Inc. | System and method of initiating multiple adaptors in parallel |
US11080225B2 (en) * | 2019-03-18 | 2021-08-03 | Cisco Technology, Inc. | Peer direct mechanism for direct memory access across host devices |
CN110265029A (zh) * | 2019-06-21 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 语音芯片和电子设备 |
US20210042255A1 (en) * | 2019-08-09 | 2021-02-11 | Sony Interactive Entertainment LLC | Methods for Using High-Speed Data Communication Fabric to Enable Cross-System Command Buffer Writing for Data Retrieval in Cloud Gaming |
-
2020
- 2020-02-20 US US16/796,839 patent/US11068421B1/en active Active
-
2021
- 2021-01-22 TW TW110102522A patent/TWI755259B/zh active
- 2021-01-22 TW TW111100238A patent/TWI772242B/zh active
- 2021-02-03 CN CN202110147847.2A patent/CN113282231B/zh active Active
- 2021-06-17 US US17/349,931 patent/US20210311889A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160203091A1 (en) * | 2015-01-13 | 2016-07-14 | Samsung Electronics Co., Ltd. | Memory controller and memory system including the same |
US20170357609A1 (en) * | 2016-06-10 | 2017-12-14 | Liqid Inc. | Multi-Port Interposer Architectures In Data Storage Systems |
US20180246833A1 (en) * | 2017-02-28 | 2018-08-30 | Cisco Technology, Inc. | DYNAMIC PARTITION OF PCIe DISK ARRAYS BASED ON SOFTWARE CONFIGURATION / POLICY DISTRIBUTION |
US20190138440A1 (en) * | 2017-11-07 | 2019-05-09 | SK Hynix Inc. | Memory system and operating method thereof |
US20200026683A1 (en) * | 2018-07-20 | 2020-01-23 | Samsung Electronics Co., Ltd. | Sff-ta-100x based multi-mode protocols solid state devices |
US20200050402A1 (en) * | 2018-08-08 | 2020-02-13 | Marvell World Trade Ltd. | Managed Switching Between One or More Hosts and Solid State Drives (SSDs) Based on the NVMe Protocol to Provide Host Storage Services |
Also Published As
Publication number | Publication date |
---|---|
CN113282231B (zh) | 2024-03-15 |
TWI755259B (zh) | 2022-02-11 |
TW202133158A (zh) | 2021-09-01 |
CN113282231A (zh) | 2021-08-20 |
US20210311889A1 (en) | 2021-10-07 |
TW202215428A (zh) | 2022-04-16 |
US11068421B1 (en) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6243829B1 (en) | Memory controller supporting redundant synchronous memories | |
TWI553650B (zh) | 以記憶體控制器來處理資料錯誤事件之方法、設備及系統 | |
US9983812B1 (en) | Automated node failure detection in an active/hot-standby storage cluster | |
US4939643A (en) | Fault tolerant digital data processor with improved bus protocol | |
US20190147938A1 (en) | Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode | |
JP3251830B2 (ja) | Pciパリティ・エラーに応答する構成を有するpci/isaブリッジ | |
US11614986B2 (en) | Non-volatile memory switch with host isolation | |
JP6280359B2 (ja) | プログラマブルコントローラ | |
US11176297B2 (en) | Detection and isolation of faults to prevent propagation of faults in a resilient system | |
US20070240018A1 (en) | Functional level reset on a per device/function basis | |
US10846256B2 (en) | Multi-endpoint device sideband communication system | |
US8140724B1 (en) | SATA pass through port | |
US11144410B2 (en) | System and method to dynamically increase memory channel robustness at high transfer rates | |
TWI739127B (zh) | 提供系統資料之方法、系統及伺服器 | |
US20070250651A1 (en) | System and Method of Substituting Redundant Same Address Devices on a Multi-Mastered IIC Bus | |
TWI772242B (zh) | 記憶裝置以及相關快閃記憶體控制器 | |
US20140101479A1 (en) | Implementing storage adapter performance control | |
TWI579762B (zh) | 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統 | |
TW202234241A (zh) | 減少停機時間的方法及系統 | |
JP4165499B2 (ja) | コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法 | |
US7401271B1 (en) | Testing system and method of using same | |
US11232197B2 (en) | Computer system and device management method | |
WO2019237535A1 (zh) | 一种存储控制芯片、存储设备及自适应接口方法 | |
WO2010061444A1 (ja) | 情報処理装置、システム制御装置、情報処理装置の制御方法、及び割り込み中継プログラム | |
JP2018005751A (ja) | 情報処理装置の試験装置及び情報処理装置の試験方法 |