TWI591532B - 電腦系統及其硬碟存取方法 - Google Patents
電腦系統及其硬碟存取方法 Download PDFInfo
- Publication number
- TWI591532B TWI591532B TW105115358A TW105115358A TWI591532B TW I591532 B TWI591532 B TW I591532B TW 105115358 A TW105115358 A TW 105115358A TW 105115358 A TW105115358 A TW 105115358A TW I591532 B TWI591532 B TW I591532B
- Authority
- TW
- Taiwan
- Prior art keywords
- hard disk
- access
- processor
- solid state
- memory
- Prior art date
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明是有關於一種硬碟存取技術,且特別是有關於一種電腦系統及其硬碟存取方法。
固態硬碟相對於磁性儲存媒體,具有資料存取速度快、小尺寸以及對撞擊的抗性較佳等優點。然而,固態硬碟中需要具有處理單元處理硬碟存取指令。隨著硬碟尺寸愈來愈大以及定址的複雜度增加,往往需要運算能力更強的處理單元,甚至多個處理單元才能提升固態硬碟的效能。然而,計算能力愈強或是數目愈多的處理單元,將使固態硬碟的成本大幅增加。
因此,如何設計一個新的電腦系統及其硬碟存取方法,以解決上述缺陷,乃為此一業界亟待解決的問題。
因此,本發明之一態樣是在提供一種硬碟存取方法,應用於電腦系統中,硬碟存取方法包含:使固態硬碟中的硬碟處理單元透過固態硬碟中的第一存取通道與處理器進行通訊;使處理器存取並執行記憶體中儲存之硬碟存取
驅動程式,以處理硬碟存取指令;以及使處理器透過第二存取通道存取固態硬碟之儲存模組。
應用本發明之優點在於藉由處理器執行硬碟存取驅動程式處理硬碟存取指令,以對固態硬碟的儲存模組進行存取,使固態硬碟的硬碟處理單元的成本因此大幅下降,且亦可使效能獲得提升,輕易地達到上述之目的。
1‧‧‧電腦系統
10‧‧‧記憶體
100‧‧‧硬碟存取驅動程式
12‧‧‧處理器
120‧‧‧硬碟存取指令
122‧‧‧回應訊息
14‧‧‧固態硬碟
16‧‧‧系統匯流排
18‧‧‧輸出入裝置
20‧‧‧儲存模組
200‧‧‧硬碟處理單元
202‧‧‧第一基底位址暫存器
204‧‧‧第一存取通道
206‧‧‧第二基底位址暫存器
208‧‧‧第二存取通道
210‧‧‧硬碟匯流排
212‧‧‧儲存控制電路
214‧‧‧系統控制電路
216‧‧‧記憶體控制電路
22‧‧‧控制模組
300‧‧‧硬碟存取方法
301-303‧‧‧步驟
第1圖為本發明一實施例中,一種電腦系統之示意圖;第2圖為本發明一實施例中,第1圖的處理器、固態硬碟及系統匯流排更詳細的方塊圖;以及第3圖為本發明一實施例中,一種硬碟存取方法的流程圖。
請參照第1圖。第1圖為本發明一實施例中,一種電腦系統1之示意圖。電腦系統1包含:記憶體10、處理器12以及固態硬碟14。其中,電腦系統1可為例如,但不限於桌上型電腦、筆電或是各種可攜式電子裝置。
記憶體10可為任何可用以儲存資料的儲存裝置,可包含例如但不限於唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或其他類型的記憶體。於一實施例中,處理器12可存取記憶體10中儲存的程式予以執行,以達到處理器12欲完成的功能。
於一實施例中,固態硬碟14與處理器12間透過系統匯流排16相連接,以透過系統匯流排16進行資料傳輸。於一實施例中,系統匯流排16可為快速週邊元件互連(peripheral component interconnect express;PCIe)匯流排。實際上,電腦系統1可更包含其他藉由系統匯流排16與處理器12連接的裝置,例如但不限於南橋晶片、顯示卡、網路卡、光碟機或其他裝置(未繪示)。
於一實施例中,電腦系統1更包含輸出入裝置18。輸出入裝置18實際上可為多個輸出入元件的組合,例如但不限於鍵盤、滑鼠、顯示器及觸控顯示器(未繪示)等的結合。
於一實施例中,上述的記憶體10可儲存有硬碟存取驅動程式100。處理器12將可存取並執行硬碟存取驅動程式100。舉例來說,在電腦系統1初始化時,儲存於硬碟中的存取驅動程式100可被讀取至系統記憶體如隨機存取記憶體中,以由處理器12進行存取並執行。
處理器12可藉由執行存取驅動程式100來處理硬碟存取指令120,俾對固態硬碟14進行存取。於一實施例中,硬碟存取指令120是由例如,但不限於輸出入裝置18接收使用者的輸入所產生。進一步地,處理器12可在存取固態硬碟14後,產生回應訊息122至輸出入裝置18,例如但不限於在顯示器上產生畫面,以對使用者進行提示。
以下將就固態硬碟14的結構,以及固態硬碟14與處理器12的運作進行更詳細的說明。
請同時參照第2圖。第2圖為本發明一實施例中,第1圖的處理器12、固態硬碟14及系統匯流排16更詳細的方塊圖。固態硬碟14包含儲存模組20以及控制模組22。於一實施例中,儲存模組20為快閃記憶體,配置以儲存資料。
控制模組22包含:硬碟處理單元200、第一基底位址暫存器(base address register;BAR)202、第一存取通道204、第二基底位址暫存器206及第二存取通道208。
於一實施例中,控制模組22更包含硬碟匯流排210。硬碟處理單元200、第一存取通道204及第二存取通道208均連接於硬碟匯流排210。因此,控制模組22中的各元件間,可透過硬碟匯流排210進行通訊。
於一實施例中,控制模組22更包含儲存控制電路212,連接於儲存模組20以及硬碟匯流排210間。對於儲存模組20的任何存取動作,均需透過儲存控制電路212進行。
第一基底位址暫存器202配置以儲存第一裝置記憶體定址,而第二基底位址暫存器206則配置以儲存第二裝置記憶體定址。於一實施例中,第一及第二裝置記憶體定址是在固態硬碟14初始化時,由電腦系統1所分配於記憶體10中的一段輸出入記憶體區塊,並同時將此記憶體區塊的位址儲存在第一基底位址暫存器202和第二基底位址暫存
器206。當處理器12存取記憶體10中的第一裝置記憶體定址和第二裝置記憶體定址時,相當於存取固態硬碟14。
於一實施例中,第一存取通道204和第二存取通道208分別為直接記憶體存取(direct memory access;DMA)通道,並對應於第一基底位址暫存器202和第二基底位址暫存器206。雖然固態硬碟14實際上是單一裝置,但由於第一基底位址暫存器202和第二基底位址暫存器206儲存的記憶體定址並不相同,因此處理器12將視為兩個不同的裝置,而將分別透過第一存取通道204和第二存取通道208來與固態硬碟14溝通。
硬碟處理單元200透過第一存取通道204與處理器12進行通訊。更詳細地說,硬碟處理單元200是經過硬碟匯流排210,透過第一存取通道204以及系統匯流排16與處理器12進行通訊,於第2圖中是繪示為路徑A。此外,硬碟處理單元200可經由硬碟匯流排210,透過儲存控制電路212存取固態硬碟14之儲存模組20,於第2圖中是繪示為路徑B。
硬碟存取驅動程式100在由處理器12執行後,可做為一虛擬運算核心,以處理硬碟存取指令120,並經由第二存取通道208存取固態硬碟14之儲存模組20。更詳細地說,處理器12可透過系統匯流排16,經由第二存取通道208、硬碟匯流排210及儲存控制電路212存取儲存模組20,於第2圖中是繪示為路徑C。對路徑C來說,硬碟存取
指令120是由處理器12獨立進行處理和運算,不需透過硬碟處理單元200直接存取固態硬碟14之儲存模組20。
因此,於一實施例中,處理器12執行的硬碟存取驅動程式100可和硬碟處理單元200協調以共同進行運算,以達到存取及監控管理固態硬碟14的功效。
以存取固態硬碟14來說,處理器12執行的硬碟存取驅動程式100可和硬碟處理單元200分擔硬碟存取指令120的處理。此時,處理器12可同時透過第一存取通道204以及第二存取通道208存取儲存模組20。換句話說,處理器12可藉由硬碟處理單元200透過路徑A和路徑B存取儲存模組20,以及藉由硬碟存取驅動程式100透過路徑C存取儲存模組20。
需注意的是,處理器12透過第一存取通道204和第二存取通道208存取固態硬碟14時,實際上是經由媒體存取控制器(media access controller;MAC)和實體層(PHY)(未繪示)等底層硬體來進行資料的傳送。
於另一實施例中,硬碟存取指令120可完全由處理器12執行硬碟存取驅動程式100處理。此時,處理器12僅藉由硬碟存取驅動程式100透過路徑C來存取儲存模組20。而硬碟處理單元200則僅對固態硬碟14的電路進行監控管理而不處理硬碟存取指令120。於一實施例中,硬碟處理單元200可藉由例如,但不限於控制模組22更包含的系統控制電路214來進行監控管理。
在部份硬碟存取技術中,僅採用固態硬碟14內部的控制模組22中的硬碟處理單元200來處理對固態硬碟14的儲存模組20的存取。當儲存模組20的儲存量愈大或是定址方式愈趨複雜時,必需設置更高階的硬碟處理單元200或是多顆硬碟處理單元200,以達到較高的存取速度。然而這樣的方式將使固態硬碟14的成本大幅上升。
因此,藉由將第二裝置記憶體定址寫入第二基底位址暫存器206並設置第二存取通道208,處理器12將可執行硬碟存取驅動程式12處理硬碟存取指令120,以對固態硬碟14的儲存模組20進行存取。儲存模組20的存取運算量將可由處理器12分擔,甚或完全由處理器12負責,使硬碟處理單元200僅需負擔系統監控的任務。固態硬碟14的成本將因此大幅下降,且亦可使效能獲得提升。
於一實施例中,控制模組22更包含記憶體控制電路216,電性連接於硬碟匯流排210。處理器12可執行硬碟存取驅動程式100透過系統匯流排16、第二存取通道208以及硬碟匯流排210,控制記憶體控制電路216儲存待寫入資料124至第1圖的記憶體10的一個快取區塊,以延長固態硬碟14的讀寫壽命。
在部份技術中,記憶體控制電路216是連接至系統的動態隨機存取記憶體(未繪示),以提供上述的快取機制。而由於上述的硬碟存取驅動程式12是由處理器12所執行,處理器12可直接向記憶體10要求快取區塊進行資料的暫存,而可大幅提升效率。
請參照第3圖。第3圖為本發明一實施例中,一種硬碟存取方法300的流程圖。硬碟存取方法300可應用於如第1圖所繪示的電腦系統1中。硬碟存取方法300包含下列步驟(應瞭解到,在本實施方式中所提及的步驟,除特別敘明其順序者外,均可依實際需要調整其前後順序,甚至可同時或部分同時執行)。
於步驟301,使固態硬碟14中的硬碟處理單元200透過固態硬碟14中的第一存取通道204與處理器12進行通訊。其中第一存取通道204對應於第一基底位址暫存器202。
於步驟302,使處理器12存取並執行記憶體10中儲存之硬碟存取驅動程式100,以處理硬碟存取指令120。
於步驟303,使處理器12透過第二存取通道208存取固態硬碟14之儲存模組20。其中第二存取通道208對應於第二基底位址暫存器206。
需注意的是,上述的步驟中,部分可視實作的需求而調整順序或增減,不為上述的順序及內容所限。
雖然本案內容已以實施方式揭露如上,然其並非配置以限定本案內容,任何熟習此技藝者,在不脫離本案內容之精神和範圍內,當可作各種之更動與潤飾,因此本案內容之保護範圍當視後附之申請專利範圍所界定者為準。
12‧‧‧處理器
14‧‧‧固態硬碟
16‧‧‧系統匯流排
20‧‧‧儲存模組
200‧‧‧硬碟處理單元
202‧‧‧第一基底位址暫存器
204‧‧‧第一存取通道
206‧‧‧第二基底位址暫存器
208‧‧‧第二存取通道
210‧‧‧硬碟匯流排
212‧‧‧儲存控制電路
214‧‧‧系統控制電路
216‧‧‧記憶體控制電路
22‧‧‧控制模組
Claims (9)
- 一種硬碟存取方法,應用於一電腦系統中,其中該電腦系統包含一處理器、一記憶體以及一固態硬碟,該硬碟存取方法包含:使該固態硬碟中的一硬碟處理單元透過該固態硬碟中的一第一存取通道與該處理器進行通訊;使該處理器存取並執行該記憶體中儲存之一硬碟存取驅動程式,以處理一硬碟存取指令;以及使該處理器透過一第二存取通道存取該固態硬碟之一儲存模組。
- 如請求項1所述之硬碟存取方法,更包含:使一第一基底位址暫存器儲存一第一裝置記憶體定址,其中該第一存取通道對應於該第一基底位址暫存器;以及使一第二基底位址暫存器儲存一第二裝置記憶體定址,其中該第二存取通道對應於該第二基底位址暫存器。
- 如請求項1所述之硬碟存取方法,更包含:使該處理器與該硬碟處理單元共同處理該硬碟存取指令,以透過該第一存取通道以及該第二存取通道存取該固態硬碟之該儲存模組。
- 如請求項1所述之硬碟存取方法,更包含:僅使該處理器處理該硬碟存取指令存取該固態硬碟之該儲存模組;以及 僅使該硬碟處理單元對該固態硬碟之電路進行監控管理。
- 如請求項1所述之硬碟存取方法,其中該控制模組更包含一儲存控制電路,該硬碟存取方法更包含:使該處理器透過該第二存取通道以及該儲存控制電路存取該儲存模組。
- 如請求項1所述之硬碟存取方法,其中該控制模組更包含一記憶體控制電路,該硬碟存取方法更包含:使該處理器配置執行該硬碟存取驅動程式透過該第二存取通道控制該記憶體控制電路儲存一待寫入資料至該記憶體之一快取區塊。
- 如請求項1所述之硬碟存取方法,其中該固態硬碟與該處理器透過一系統匯流排相連接,且該系統匯流排為快速週邊元件互連系統匯流排。
- 如請求項1所述之硬碟存取方法,其中該儲存模組為一快閃記憶體。
- 如請求項1所述之硬碟存取方法,其中該第一存取通道以及該第二存取通道分別為一直接記憶體存取通道。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115358A TWI591532B (zh) | 2016-05-18 | 2016-05-18 | 電腦系統及其硬碟存取方法 |
US15/598,307 US10235050B2 (en) | 2016-05-18 | 2017-05-17 | System and method for direct disk accessing |
US16/293,770 US10776011B2 (en) | 2016-05-18 | 2019-03-06 | System and method for accessing a storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115358A TWI591532B (zh) | 2016-05-18 | 2016-05-18 | 電腦系統及其硬碟存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI591532B true TWI591532B (zh) | 2017-07-11 |
TW201741858A TW201741858A (zh) | 2017-12-01 |
Family
ID=60048242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105115358A TWI591532B (zh) | 2016-05-18 | 2016-05-18 | 電腦系統及其硬碟存取方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10235050B2 (zh) |
TW (1) | TWI591532B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820180B2 (en) * | 2002-04-04 | 2004-11-16 | International Business Machines Corporation | Apparatus and method of cascading backup logical volume mirrors |
CN101149664A (zh) | 2007-10-26 | 2008-03-26 | 华为技术有限公司 | 固态硬盘及处理其管理数据的方法 |
US7921178B2 (en) * | 2008-12-04 | 2011-04-05 | Voltaire Ltd. | Device, system, and method of accessing storage |
US8904105B2 (en) * | 2011-03-15 | 2014-12-02 | Dell Products L.P. | System and method for performing raid I/O operations in PCIE-based storage resources |
TW201612736A (en) | 2014-09-29 | 2016-04-01 | Acer Inc | Storage apparatus and data transferring method thereof |
-
2016
- 2016-05-18 TW TW105115358A patent/TWI591532B/zh active
-
2017
- 2017-05-17 US US15/598,307 patent/US10235050B2/en active Active
-
2019
- 2019-03-06 US US16/293,770 patent/US10776011B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170336975A1 (en) | 2017-11-23 |
US20190196714A1 (en) | 2019-06-27 |
US10776011B2 (en) | 2020-09-15 |
US10235050B2 (en) | 2019-03-19 |
TW201741858A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100909119B1 (ko) | 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법 | |
US20190073132A1 (en) | Method and system for active persistent storage via a memory bus | |
US20200081848A1 (en) | Storage device and system | |
US10943183B2 (en) | Electronics device performing software training on memory channel and memory channel training method thereof | |
EP3647932A1 (en) | Storage device processing stream data, system including the same, and operation method thereof | |
US20150324309A1 (en) | Communication via a memory interface | |
JP2017194959A (ja) | NVMe装置に対しカーネルモードアクセス及び使用者モードアクセスを同時に可能にする方法及びホストコンピュータシステム並びに非一時的コンピュータ読出可能記録媒体 | |
TW201714090A (zh) | 記憶體裝置、記憶體定址方法與包括有形儲存媒體的物品 | |
US9324388B2 (en) | Allocating memory address space between DIMMs using memory controllers | |
TW202101227A (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
JP2017519294A (ja) | フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc) | |
US10877918B2 (en) | System and method for I/O aware processor configuration | |
US9971549B2 (en) | Method of operating a memory device | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
US10528283B2 (en) | System and method to provide persistent storage class memory using NVDIMM-N with an NVDIMM-P footprint | |
JP2017097861A (ja) | メモリデバイスおよび方法 | |
JP2019175427A (ja) | コンピュータシステム及びその動作方法 | |
TWI591532B (zh) | 電腦系統及其硬碟存取方法 | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
US11221931B2 (en) | Memory system and data processing system | |
TWI718858B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN107422981B (zh) | 硬碟存取方法 | |
US11099762B2 (en) | Multi host controller and semiconductor device including the same | |
US11544013B2 (en) | Array-based copy mechanism utilizing logical addresses pointing to same data block | |
US12067403B2 (en) | Core mapping based on latency in a multiple core processor |