TW201721349A - 主機介面控制器以及儲存裝置控制方法 - Google Patents

主機介面控制器以及儲存裝置控制方法 Download PDF

Info

Publication number
TW201721349A
TW201721349A TW105114085A TW105114085A TW201721349A TW 201721349 A TW201721349 A TW 201721349A TW 105114085 A TW105114085 A TW 105114085A TW 105114085 A TW105114085 A TW 105114085A TW 201721349 A TW201721349 A TW 201721349A
Authority
TW
Taiwan
Prior art keywords
buffer group
buffer
group
read
address
Prior art date
Application number
TW105114085A
Other languages
English (en)
Other versions
TWI603183B (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 上海兆芯集成電路有限公司
Publication of TW201721349A publication Critical patent/TW201721349A/zh
Application granted granted Critical
Publication of TWI603183B publication Critical patent/TWI603183B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4082Address Buffers; level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

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)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

高開機效能的主機介面控制器,以一緩衝器模式設定暫存器設定開機程序中,主機介面控制器內第一與第二緩衝器組的操作模式。在主機一中央處理單元的高速緩衝存儲器啟動前,上述第一與第二緩衝器組操作於一高速緩衝存儲器模式,以回應該中央處理單元對該主機介面控制器所控制之儲存裝置之相同位址的重複讀取要求。該高速緩衝存儲器啟動後,上述第一與第二緩衝器組在操作於一乒乓緩衝器模式,以回應該中央處理單元對該儲存裝置發出之連續位址的讀取要求。

Description

主機介面控制器以及儲存裝置控制方法
本發明係有關於主機介面控制器。
儲存裝置可透過一通訊介面與主機連結。主機上需對應該通訊介面設置一主機介面控制器,在主機之中央處理單元操作下,通過該通訊介面讀取該儲存裝置。
高效之主機介面控制器為本技術領域追尋目標。
根據本案一種實施方式實現的一主機端介面控制器包括一控制模組、第一緩衝器組、第二緩衝器組與緩衝器模式設定暫存器。第一緩衝器組與第二緩衝器組,暫存讀取自一儲存單元的資料,以回應一中央處理單元的讀取要求。於一開機程序中,緩衝器模式設定暫存器係根據該中央處理單元的一高速緩衝存儲器啟動與否切換設定。上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動前操作於一高速緩衝存儲器模式,以回應該中央處理單元對相同位址的重複讀取要求。上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動後操作於一乒乓緩衝器模式,以回應該中央處理單元發出之連續位址的讀取要求。
根據本案另一種實施方式實現的儲存裝置控制方法包括:在一儲存裝置與一中央處理單元之間的一主機介面控制器提供第一緩衝器組以及第二緩衝器組,暫存讀取自該儲存單元的資料,以回應該中央處理單元的讀取要求;於一開機程序中,切換上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動前操作於一高速緩衝存儲器模式,以回應該中央處理單元對相同位址的重複讀取要求,並切換上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動後操作於一乒乓緩衝器模式,以回應該中央處理單元發出之連續位址的讀取要求。
本案技術使得電腦系統之開機效率大為提升。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧電腦系統
102‧‧‧主機介面控制器
104‧‧‧儲存裝置
106‧‧‧高速緩衝存儲器
108‧‧‧動態隨機存取記憶體
110‧‧‧緩衝器模式設定暫存器
112‧‧‧控制模組
B1、B2‧‧‧第一、第二緩衝器組
C2P_Addr[5:2]‧‧‧讀取位址之低位內容
C2P_Addr[23:6]‧‧‧讀取位址之高位內容
Comp‧‧‧比較器
CPU‧‧‧中央處理單元
Data_DW0...Data_DW15‧‧‧資料
DW0_Addr[23:6]...DW15_Addr[23:6]‧‧‧高位位址
DWn_Addr[23:6]‧‧‧比對用高位位址
‘H’/’M‘‧‧‧已預取/未預取
Mux‧‧‧多工器
n‧‧‧目標索引
R1、R2‧‧‧第一、第二暫存器組
ROM_Code‧‧‧唯讀碼
S202...S210、S302...S320、S402...S406‧‧‧步驟
第1圖圖解根據本案一種實施方式實現的一電腦系統100;第2圖為流程圖,圖解第一以及第二緩衝器組B1與B2的高速緩衝存儲器模式如何回應中央處理單元發出的讀取要求;第3A、3B圖為流程圖,圖解第一以及第二緩衝器組B1與B2的乒乓緩衝器模式如何回應中央處理單元發出的讀取要求;以及第4圖為流程圖,圖解電腦系統100的一開機程序中第一與第二緩衝器組B1與B2的操作模式切換,所述開機程序係執行儲存裝置104內的唯讀程式碼ROM_Code作基本輸入輸出系統(BIOS)開機程序。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖圖解根據本案一種實施方式實現的一電腦系統100,其中包括中央處理單元CPU、主機介面控制器102、儲存裝置104。中央處理單元CPU包括一高速緩衝存儲器(cache memory)106,且更耦接一動態隨機存取記憶體(DRAM)108。儲存裝置104包括一唯讀程式碼ROM_Code。主機介面控制器102包括一控制模組112、一緩衝器模式設定暫存器110、第一緩衝器組B1、第二緩衝器組B2、第一暫存器組R1、第二暫存器組R2、多工器Mux以及比較器Comp。
第一緩衝器組B1以及第二緩衝器組B2係設計來降低主機介面控制器102頻繁發出指令讀取儲存裝置104所造成的系統負擔。以串行外設接口(SPI)介面為例,對應的主機介面控制器(如,SPI控制器)需發出一位元組(byte)的讀取命令、外加三位元組(byte)的讀取位址,才能自儲存裝置104讀取一筆讀回資料。由於每筆讀回資料的長度可由主機介面控制器102決定,即是說,主機介面控制器102所發出的自儲存裝置104讀取資料的讀取命令后的3byte的讀取位址僅僅是起始位址,而並未沒有結束位址,主機介面控制器102可自行控制結束位址。故本案特意在主機介面控制器102設置的第一緩衝器組B1以及第二緩衝器組B2使得主機介面控制器102對儲存裝置104的單筆讀取為大資料量,而不受中央處理單元CPU所發下來的 讀取指令中的要讀取之資料長度的限制。主機介面控制器102無須頻繁下達讀取命令以讀取該儲存裝置104,即可將資料大筆由儲存裝置104預取至第一緩衝器組B1以及第二緩衝器組B2回應中央處理單元CPU發出的讀取要求。
至於對應第一緩衝器組B1以及第二緩衝器組B2設置的第一暫存器組R1、第二暫存器組R2、多工器Mux以及比較器Comp則是用來確認中央處理單元CPU所要求的儲存裝置104資料是否已預取於第一或第二緩衝器組B1或B2中。
特別是,本案關於開機程序中,控制模組112依據中央處理單元CPU對儲存裝置104資料的需求,適應性地切換第一緩衝器組B1以及第二緩衝器組B2之操作模式。緩衝器模式設定暫存器110即是用來設定第一與第二緩衝器組B1與B2的操作模式。這裡以在開機過程中的資料讀取為例,但本發明並不以此為限。在其它實施方式中,只要是對儲存裝置104分階段讀取,在不同階段的讀取資料的地址連續性不同的應用中,都可以使用本發明之技術以適應性地切換第一緩衝器組B1以及第二緩衝器組B2之操作模式。
在一開機程序中,中央處理單元CPU包括三階段操作。第一階段,高速緩衝存儲器106以及該動態隨機存取記憶體108都未啟動,中央處理單元CPU頻繁重複讀取該唯讀程式碼ROM_Code中相同地址的內容,而高速緩衝存儲器106尚未啟動,先前技術的主機介面控制器120必須頻繁根據中央處理單元CPU的讀取請求重複下達對應相同位址的讀取請求至儲存裝置104,效率低下。第二階段,高速緩衝存儲器106啟動,中 央處理單元CPU對該唯讀程式碼ROM_Code的讀取要求多為連續位址。第三階段,動態隨機存取記憶體108也啟動,中央處理單元CPU要求大尺寸搬移唯讀程式碼ROM_Code至該動態隨機存取記憶體108,由於中央處理單元CPU在此階段下達的讀取請求的地址是連續而不重複的,中央處理單元CPU的讀取請求在高速緩衝存儲器106往往是不命中的狀態,因此先前技術的主機介面控制器120必須需要根據每筆讀取請求對儲存裝置104下達讀取指令(如,SPI控制器102需根據每筆讀取請求對儲存裝置104下達包含一位元組的讀取命令、外加三位元組的讀取位址的讀取指令)。整理之,高速緩衝存儲器106啟動前的讀取要求重複性高,高速緩衝存儲器106啟動後的讀取要求多為連續位址。
本發明中於開機程序,緩衝器模式設定暫存器110根據該中央處理單元CPU的高速緩衝存儲器106啟動與否切換設定。高速緩衝存儲器106啟動前(第一階段),第一與第二緩衝器組B1與B2操作於一高速緩衝存儲器模式,以回應中央處理單元CPU對相同位址的重複讀取要求。高速緩衝存儲器106啟動後(第二、第三階段,在其它實施例中,也可以僅在第三階段),第一緩衝器組B1與第二緩衝器組B2操作於一乒乓緩衝器模式,以回應中央處理單元CPU發出之連續位址的讀取要求。其中,所謂高速緩衝存儲器模式係控制模組112令第一以及第二緩衝器組B1與B2快取儲存該主機介面控制器102以第一以及第二緩衝器組B1與B2的多個緩衝器行之尺寸為讀取資料長度讀取自該儲存裝置104的資料。值得注意的是,如第1圖所示,第 一緩衝器組B1以及第二緩衝器組B2分別包括8個緩衝器行,如第一緩衝器組B1包括緩衝器行Data_DW0~Data_DW7,第二緩衝器組B1包括緩衝器行Data_DW8~Data_DW15;每個緩衝器行的尺寸舉例而言為4byte;於一實施例中,在開機過程的第一個階段,重複讀取的地址範圍大約是64byte,因此設置整個第一以及第二緩衝器組B1與B2的尺寸為64byte;中央處理單元CPU所發出之讀取要求所要求的資料舉例而言以4byte為單位,但本發明並不以此為限。在此實施方式中的高速緩衝存儲器模式下,控制模組112向儲存裝置104下達的一次讀取命令的讀取資料長度不必僅限於中央處理單元CPU所要求的4byte,而可以是以第一和第二緩衝器組B1和B2的複數個緩衝器行之尺寸(如4byte/8byte/16byte)為讀取資料長度,具體每次讀取的尺寸例如可藉由設置主機介面控制器102中的某個寄存器(未繪示)來設置,如此可以不必頻繁對儲存裝置104下達讀取指令(如,SPI控制器102需根據每筆讀取請求對儲存裝置104下達包含一位元組的讀取命令、外加三位元組的讀取位址的讀取指令)而一次讀取多行緩衝器的資料回來。所謂乒乓緩衝器模式係控制模組112令第一緩衝器組B1以及第二緩衝器組B2以乒乓模式交替為預取緩衝器組,緩衝儲存預取自該儲存裝置104之位址連續之資料,例如當第一緩衝器組B1和第二緩衝器組B2之一者作為預取緩衝器組時,控制模組102自儲存裝置104預取第一位址開始之連續位址之資料並将其緩衝儲存至該預取緩衝器組(B1或B2),並且以第一緩衝器組B1和第二緩衝器組B2之另一者(B2或B1)中之資料(假設之前充當該預取緩衝器組 時預取的資料)回應中央處理單元CPU發出之對第二位址之資料的讀取要求。在一實施方式中,預取緩衝器組的選擇條件如下:在連續讀取(即CPU本次發出請求的位址與其發出之前一讀取請求的位址連續)的位址指示到第二緩衝器組B2的首行緩衝器Data_DW8時,第一緩衝器組B1即可切換作預取緩衝器組,緩衝儲存的內容係預取自儲存裝置104,接續第二緩衝器組B2末位緩衝器Data_DW15的位址;或在連續讀取的位址指示到第一緩衝器組B1的首行緩衝器Data_DW0時,第二緩衝器組B2即可切換作預取緩衝器組,緩衝儲存的內容係預取自儲存裝置104,接續第一緩衝器組B1末行緩衝器Data_DW7的位址。在此實施方式中的乒乓緩衝器模式模式下,控制模組112自行控制自儲存裝置104每次向儲存裝置104下達讀取指令所讀取資料之資料長度,例如在需要終止預取至預取緩衝器組時停止,無需寄存器配置,但本發明並不以此為限。
此段落說明第一暫存器組R1、第二暫存器組R2、多工器Mux以及比較器Comp之操作。這裡以中央處理單元CPU發出的讀取請求(C2P request)的讀取位址C2P_Addr[23:0]為24bit,每次讀取4個地址(例如4byte資料)為例說明,但本發明並不以此為限。第一暫存器組R1對應第一緩衝器組B1,儲存第一緩衝器組B1所儲存之資料Data_DW0...Data_DW7的位址資訊DW0_Addr[23:6]...DW7_Addr[23:6],此實施例係高位位址。第二暫存器組R2對應第二緩衝器組B2,儲存第二緩衝器組B2所儲存之資料Data_DW8...Data_DW15的位址資訊DW8_Addr[23:6]...DW15_Addr[23:6],此實施例係高位位址。 第一與第二緩衝器組B1與B2組成一表格,該表格以儲存至上述第一與第二緩衝器組B1與B2的資料Data_DW0...Data_DW15的低位位址(理解為DW0_Addr[5:2]...DW15_Addr[5:2])為索引。多工器MUX以中央處理單元CPU發出的讀取請求的讀取位址之低位內容C2P_Addr[5:2]為一目標索引n,自上述第一以及第二暫存器組R1與R2取出一比對用高位位址DWn_Addr[23:6]。比較器Comp比較該比對用高位位址DWn_Addr[23:6]是否符合該讀取位址之高位內容C2P_Addr[23:6]。若比對用高位位址DWn_Addr[23:6]符合該讀取位址之高位內容C2P_Addr[23:6],則比較器Comp輸出’H’代表中央處理單元CPU要求的資料已預取並緩衝存儲於第一或第二緩衝器組B1或B2。若比對用高位位址DWn_Addr[23:6]不符合該讀取位址之高位內容C2P_Addr[23:6],則比較器Comp輸出’M’代表中央處理單元CPU要求的資料未預取緩衝存儲於第一或第二緩衝器組B1或B2。如果判斷到中央處理單元CPU要求讀取位址的資料已預取並緩衝存儲於第一或第二緩衝器組B1或B2中,則控制模組112以目標索引n(即C2P_Addr[5:2])對應的緩衝器行的資料回應中央處理單元CPU。
第2圖為流程圖,圖解第一以及第二緩衝器組B1與B2的高速緩衝存儲器模式如何回應中央處理單元發出的讀取要求。步驟S202接收中央處理單元CPU指示的讀取位址C2P_Addr[23:0]。步驟S204以讀取位址之低位內容C2P_Addr[5:2]為目標索引n,自第一與第二暫存器組R1與R2取出比對用高位位址DWn_Addr[23:6]。步驟S206判斷比對用高 位位址DWn_Addr[23:6]是否符合讀取位址之高位內容C2P_Addr[23:6]。若不符合,步驟S208以第一和第二緩衝器組B1和B2的複數個緩衝器行之尺寸為讀取資料長度讀取儲存裝置104,並隨之以此更新第一與第二緩衝器組B1與B2所存儲的資料以及第一與第二暫存器組R1與R2所存儲的位址資訊,且步驟S210根據目標索引n自更新後的第一以及第二緩衝器組B1與B2取出資料Data_DWn回應中央處理單元CPU的讀取要求。但本發明並不限制步驟S210執行時機,即並不一定要等待步驟S208之自儲存裝置104讀取的資料全部預取並更新第一與第二緩衝器組B1與B2完成之後才執行步驟S210,以回應中央處理單元CPU的讀取要求;在優選的實施方式中,當自儲存裝置104讀取中央處理單元CPU的讀取要求所請求的資料(如4byte)即立即回應CPU以加快響應CPU的速度。若步驟S206判斷比對用高位位址DWn_Addr[23:6]符合讀取位址之高位內容C2P_Addr[23:6],中央處理單元CPU要求的資料早已預取於上述第一或第二緩衝器組B1或B2時,流程直接進行步驟S210,根據目標索引n自上述第一以及第二緩衝器組B1與B2取出資料回應Data_DWn該中央處理單元CPU的讀取要求。
第3A、3B圖為流程圖,圖解第一以及第二緩衝器組B1與B2的乒乓緩衝器模式如何回應中央處理單元發出的讀取要求。步驟S302接收中央處理單元CPU指示的讀取位址。步驟S304判斷該讀取位址是與中央處理單元CPU指示的一在前讀取位址連續。若否,步驟S306以讀取位址之低位內容C2P_Addr[5:2]為目標索引n,自第一與第二暫存器組R1與R2 取出比對用高位位址DWn_Addr[23:6]。步驟S308判斷比對用高位位址DWn_Addr[23:6]是否符合讀取位址之高位內容C2P_Addr[23:6]。若不符合(即說明讀取位址C2P_Addr[23:2]的資料未預取於第一以及第二緩衝器組B1和B2中),步驟S309停止對當前第一以及第二緩衝器組B1與B2中的預取緩衝器組的預取操作。由於第一以及第二緩衝器組B1與B2工作於乒乓緩衝器模式下時,如果步驟S304的判斷結果為不連續並且步驟S308的判斷結果為不符合,則說明CPU所下達的讀取請求很大程度上可能已經跳轉到另一段尚未預取的地址進行連續讀取了,這裡再在當前的預取緩衝器組的位址範圍附近進行資料預取已經意義不大,因此本實施例於此會停止對當前第一以及第二緩衝器組B1與B2中的預取緩衝器組的預取操作,並執行步驟S310自儲存裝置104讀取當前CPU下達的讀取位址C2P_Addr[23:2]開始的連續位址的資料,並且以所讀取的讀取位址C2P_Addr[23:2]開始的連續位址的資料自該讀取位址C2P_Addr[23:2]的低位地址C2P_Addr[5:2]對應的目標索引n續更新第一與第二緩衝器組B1與B2直至更新至第一與第二緩衝器組B1與B2中的最後一個索引(例如Data_DW15),並隨之更新第一與第二暫存器組R1與R2,且步驟S312根據目標索引n自更新後的第一以及第二緩衝器組B1與B2取出資料Data_DWn回應中央處理單元CPU的讀取要求。但本發明並不限制步驟S312執行時機,即並不一定要等待步驟310之自儲存裝置104讀取的資料全部預取並更新第一與第二緩衝器組B1與B2完成之後才執行步驟S312,以回應中央處理單元CPU的讀取要求;在優選 的實施方式中,當自儲存裝置104讀取中央處理單元CPU的讀取要求所請求的資料(如4byte)即立即回應CPU以加快響應CPU的速度。若步驟S308判斷比對用高位位址DWn_Addr[23:6]符合讀取位址之高位內容C2P_Addr[23:6]時,即說明中央處理單元CPU要求的資料早已預取於上述第一以及第二緩衝器組B1與B2,流程直接進行步驟S312,根據目標索引n自上述第一以及第二緩衝器組B1與B2取出資料回應Data_DWn該中央處理單元CPU的讀取要求。在其他實施方式中,與前一筆讀取請求不連續但命中時(即步驟S308的符合分支),也執行步驟S309和S310,即會停止當前預取緩衝器的預取操作,並跳至當前讀取位址C2P_Addr[23:2]+1的位址開始預取操作。倘若步驟S304判斷出該讀取位址與一在前讀取位址連續,流程進入第3B圖步驟S314,接續自第一與第二緩衝器組B1與B2取得資料回應CPU讀取要求,完善運用乒乓緩衝器連綿將位址連續資料自儲存裝置104預取至第一與第二緩衝器組B1與B2的特性。步驟S316判斷該讀取位址對應的目標索引n是否指示第一或第二緩衝器組B1或B2的首行緩衝器。若是,步驟S318於目標索引n指示第一緩衝器組B1的首行緩衝器時切換以第二緩衝器組B2為預取緩衝器組,並於目標索引n指示第二緩衝器組B2的首行緩衝器時切換以第一緩衝器組B1為預取緩衝器組,且步驟S320讀取儲存裝置104,填滿預取緩衝器組。若否,則暫不切換第一與第二緩衝器組B1與B2中的預取緩衝器組的身份,而是執行自儲存裝置104的預取操作,直至填滿當前的預取緩衝器。
第4圖為流程圖,圖解電腦系統100的一開機程序 中第一與第二緩衝器組B1與B2的操作模式切換,所述開機程序係執行儲存裝置104內的唯讀程式碼ROM_Code作基本輸入輸出系統(BIOS)開機程序。步驟S402判斷中央處理單元CPU之高速緩衝存儲器106是否啟動。高速緩衝存儲器106若未啟動,步驟S404以高速緩衝存儲器模式(參閱第2圖)操作第一與第二緩衝器組B1與B2,使重複讀取機率高的唯讀碼ROM_Code內容緩衝存儲於第一與第二緩衝器組B1與B2,方便回應中央處理單元CPU。高速緩衝存儲器106若已啟動,步驟S406設定該緩衝器模式設定暫存器110,使第一或第二緩衝器組B1或B2以乒乓緩衝器模式(參閱第3A、3B圖)操作,使連續位址的唯讀碼ROM_Code內容連綿預取於第一或第二緩衝器組B1或B2,方便回應中央處理單元CPU讀取位址大面積連續的唯讀碼ROM_Code至動態隨機存取記憶體108的讀取請求。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧電腦系統
102‧‧‧主機介面控制器
104‧‧‧儲存裝置
106‧‧‧高速緩衝存儲器
108‧‧‧動態隨機存取記憶體
110‧‧‧緩衝器模式設定暫存器
112‧‧‧控制模組
B1、B2‧‧‧第一、第二緩衝器組
C2P_Addr[5:2]‧‧‧讀取位址之低位內容
C2P_Addr[23:6]‧‧‧讀取位址之高位內容
Comp‧‧‧比較器
CPU‧‧‧中央處理單元
Data_DW0...Data_DW15‧‧‧資料
DW0_Addr[23:6]...DW15_Addr[23:6]‧‧‧高位位址
DWn_Addr[23:6]‧‧‧比對用高位位址
‘H’/’M‘‧‧‧已預取/未預取
Mux‧‧‧多工器
n‧‧‧目標索引
R1、R2‧‧‧第一、第二暫存器組
ROM_Code‧‧‧唯讀碼

Claims (20)

  1. 一種主機介面控制器,耦接一中央處理單元,該主機介面控制器包括:控制模組;第一緩衝器組與第二緩衝器組,暫存讀取自一儲存單元的資料,以回應該中央處理單元的讀取要求;以及緩衝器模式設定暫存器,於一開機程序中根據該中央處理單元的一高速緩衝存儲器啟動與否切換設定,使上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動前操作於一高速緩衝存儲器模式,以回應該中央處理單元對相同位址的重複讀取要求,並使上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動後操作於一乒乓緩衝器模式,以回應該中央處理單元發出之連續位址的讀取要求。
  2. 如申請專利範圍第1項所述之主機介面控制器,其中:在該高速緩衝存儲器模式下,該控制模組以該第一緩衝器組和該第二緩衝器組的複數個緩衝器行之尺寸為讀取資料長度自該儲存裝置讀取資料並緩衝儲存於上述第一緩衝器組以及第二緩衝器組。
  3. 如申請專利範圍第1項所述之主機介面控制器,其中:在該乒乓緩衝器模式下,上述控制模組控制上述第一緩衝器組以及第二緩衝器組以乒乓模式交替為預取緩衝器組,當上述第一緩衝器組和第二緩衝器組之一者作為該預取緩衝器組時,上述控制模組自一儲存裝置預取第一位址之資料並將其緩衝儲存至该預取緩衝器組,並且以上述第一緩衝器組和 第二緩衝器組之另一者中之資料回應該中央處理單元發出之對第二位址之資料的讀取要求。
  4. 如申請專利範圍第1項所述之主機介面控制器,其中:在該乒乓緩衝器模式下,該控制模組自行控制自該儲存裝置讀取資料之資料長度。
  5. 如申請專利範圍第1項所述之主機介面控制器,更包括:第一暫存器組,對應上述第一緩衝器組,並儲存上述第一緩衝器組所儲存之資料的位址資訊;以及第二暫存器組,對應上述第二緩衝器組,並儲存上述第二緩衝器組所儲存之資料的位址資訊。
  6. 如申請專利範圍第5項所述之主機介面控制器,其中:上述第一暫存器組係儲存上述第一緩衝器組所儲存之資料的高位位址;上述第二暫存器組係儲存上述第二緩衝器組所儲存之資料的高位位址;且上述第一緩衝器組以及第二緩衝器組組成一表格,該表格係以儲存至上述第一緩衝器組以及第二緩衝器組的資料的低位位址為索引。
  7. 如申請專利範圍第5項所述之主機介面控制器,更包括:一多工器,以該中央處理單元發出之一讀取位址之低位內容為一目標索引,自上述第一暫存器組以及第二暫存器組取出一比對用高位位址;以及一比較器,比較該比對用高位位址是否符合該讀取位址之高位內容以判斷該讀取位址的資料是否已預取並緩衝存儲於 上述第一緩衝器組或第二緩衝器組中,其中,如果判斷到該第二位址的資料已預取並緩衝存儲於上述第一緩衝器組或第二緩衝器組中,則該控制模組以該目標索引對應的資料回應該中央處理單元發出之該讀取要求。
  8. 如申請專利範圍第1項所述之主機介面控制器,其中:於上述第一緩衝器組以及第二緩衝器組操作於該高速緩衝存儲器模式、且該中央處理單元發出之一讀取位址的資料未預取於上述第一緩衝器組以及第二緩衝器組時,該控制模組以該第一緩衝器組和該第二緩衝器組的複數個緩衝器行之尺寸為讀取資料長度讀取該儲存裝置,並隨之更新上述第一緩衝器組與第二緩衝器組。
  9. 如申請專利範圍第1項所述之主機介面控制器,其中:於上述第一緩衝器組以及第二緩衝器組操作於該乒乓緩衝器模式、且該中央處理單元發出之一讀取位址與該中央處理單元發出之一在前讀取位址不連續、且該讀取位址的資料未預取於上述第一緩衝器組以及第二緩衝器組時,該控制模組自該儲存裝置讀取該讀取位址開始之連續位址之資料,並且以所讀取之該讀取位址開始之連續位址之資料自該讀取位址對應之目標索引續更新上述第一緩衝器組以及第二緩衝器組直至更新至上述第一緩衝器組以及第二緩衝器組中最後一個索引。
  10. 如申請專利範圍第1項所述之主機介面控制器,其中:於上述第一緩衝器組以及第二緩衝器組操作於該乒乓緩衝器模式、且該中央處理單元發出之一讀取位址與該中央處理 單元發出之一在前讀取位址連續時,該控制模組判斷該讀取位址對應之目標索引是否指示上述第一緩衝器組的首行緩衝器、或上述第二緩衝器組的首行緩衝器;於該目標索引指示上述第一緩衝器組的首行緩衝器時,該控制模組切換以該第二緩衝器組為上述預取緩衝器組;於該目標索引指示上述第二緩衝器組的首行緩衝器時,該控制模組切換以該第一緩衝器組為上述預取緩衝器組。
  11. 一種儲存裝置控制方法,包括:在一儲存裝置與一中央處理單元之間的一主機介面控制器提供第一緩衝器組以及第二緩衝器組,暫存讀取自該儲存單元的資料,以回應該中央處理單元的讀取要求;於一開機程序中,切換上述第一緩衝器組與第二緩衝器組在該中央處理單元的一高速緩衝存儲器啟動前操作於一高速緩衝存儲器模式,以回應該中央處理單元對相同位址的重複讀取要求,並切換上述第一緩衝器組與第二緩衝器組在該高速緩衝存儲器啟動後操作於一乒乓緩衝器模式,以回應該中央處理單元發出之連續位址的讀取要求。
  12. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:在該高速緩衝存儲器模式下,以該第一緩衝器組和該第二緩衝器組的複數個緩衝器行之尺寸為讀取資料長度自該儲存裝置讀取資料並緩衝儲存於上述第一緩衝器組以及第二緩衝器組。
  13. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:在該乒乓緩衝器模式下,控制上述第一緩衝器組以及第二緩 衝器組以乒乓模式交替為預取緩衝器組,當上述第一緩衝器組和第二緩衝器組之一者作為該預取緩衝器組時,上述控制模組自一儲存裝置預取第一位址之資料並將其緩衝儲存至該預取緩衝器組,並且以上述第一緩衝器組和第二緩衝器組之另一者中之資料回應該中央處理單元發出之對第二位址之資料的讀取要求。
  14. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:在該乒乓緩衝器模式下,自行控制自該儲存裝置讀取資料之資料長度。
  15. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:提供第一暫存器組,對應上述第一緩衝器組,並儲存上述第一緩衝器組所儲存之資料的位址資訊;以及提供第二暫存器組,對應上述第二緩衝器組,並儲存上述第二緩衝器組所儲存之資料的位址資訊。
  16. 如申請專利範圍第5項所述之儲存裝置控制方法,其中:上述第一暫存器組係儲存上述第一緩衝器組所儲存之資料的高位位址;上述第二暫存器組係儲存上述第二緩衝器組所儲存之資料的高位位址;且上述第一緩衝器組以及第二緩衝器組組成一表格,該表格係以儲存至上述第一緩衝器組以及第二緩衝器組的資料的低位位址為索引。
  17. 如申請專利範圍第15項所述之儲存裝置控制方法,更包括:以該中央處理單元發出之一讀取位址之低位內容為一目標 索引,自上述第一暫存器組以及第二暫存器組取出一比對用高位位址;比較該比對用高位位址是否符合該讀取位址之高位內容以判斷該讀取位址的資料是否已預取並緩衝存儲於上述第一緩衝器組或第二緩衝器組中;以及於判斷到該第二位址的資料已預取並緩衝存儲於上述第一緩衝器組或第二緩衝器組中時,以該目標索引對應的資料回應該中央處理單元發出之該讀取要求。
  18. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:於上述第一緩衝器組以及第二緩衝器組操作於該高速緩衝存儲器模式、且該中央處理單元發出之一讀取位址的資料未預取於上述第一緩衝器組以及第二緩衝器組時,以該第一緩衝器組和該第二緩衝器組的複數個緩衝器行之尺寸為讀取資料長度讀取該儲存裝置,並隨之更新上述第一緩衝器組與第二緩衝器組。
  19. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:於上述第一緩衝器組以及第二緩衝器組操作於該乒乓緩衝器模式、且該中央處理單元發出之一讀取位址與該中央處理單元發出之一在前讀取位址不連續、且該讀取位址的資料未預取於上述第一緩衝器組以及第二緩衝器組時,自該儲存裝置讀取該讀取位址開始之連續位址之資料,並且以所讀取之該讀取位址開始之連續位址之資料自該讀取位址對應之目標索引續更新上述第一緩衝器組以及第二緩衝器組直至更新至上述第一緩衝器組以及第二緩衝器組中最後一個索引。
  20. 如申請專利範圍第11項所述之儲存裝置控制方法,更包括:於上述第一緩衝器組以及第二緩衝器組操作於該乒乓緩衝器模式、且該中央處理單元發出之一讀取位址與該中央處理單元發出之一在前讀取位址連續時,判斷該讀取位址對應之目標索引是否指示上述第一緩衝器組的首行緩衝器、或上述第二緩衝器組的首行緩衝器;於該目標索引指示上述第一緩衝器組的首行緩衝器時,切換以該第二緩衝器組為上述預取緩衝器組;於該目標索引指示上述第二緩衝器組的首行緩衝器時,切換以該第一緩衝器組為上述預取緩衝器組。
TW105114085A 2015-12-09 2016-05-06 主機介面控制器以及儲存裝置控制方法 TWI603183B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510902677.9A CN105512054B (zh) 2015-12-09 2015-12-09 主机接口控制器以及储存装置控制方法

Publications (2)

Publication Number Publication Date
TW201721349A true TW201721349A (zh) 2017-06-16
TWI603183B TWI603183B (zh) 2017-10-21

Family

ID=55720055

Family Applications (2)

Application Number Title Priority Date Filing Date
TW104142055A TWI627530B (zh) 2015-12-09 2015-12-15 主機介面控制器以及儲存裝置控制方法
TW105114085A TWI603183B (zh) 2015-12-09 2016-05-06 主機介面控制器以及儲存裝置控制方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW104142055A TWI627530B (zh) 2015-12-09 2015-12-15 主機介面控制器以及儲存裝置控制方法

Country Status (3)

Country Link
US (2) US9910598B2 (zh)
CN (1) CN105512054B (zh)
TW (2) TWI627530B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613763B2 (en) * 2016-04-21 2020-04-07 Adesto Technologies Corporation Memory device having multiple read buffers for read latency reduction
JP6494139B1 (ja) * 2018-01-11 2019-04-03 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN110321136B (zh) * 2019-07-04 2023-03-21 北京集创北方科技股份有限公司 数据存取装置、方法和芯片
CN110673786B (zh) 2019-09-03 2020-11-10 浪潮电子信息产业股份有限公司 数据缓存的方法和装置
CN112748861B (zh) * 2019-10-31 2024-06-07 伊姆西Ip控股有限责任公司 用于提供信息的方法、电子设备和计算机程序产品
US11994994B2 (en) 2022-04-25 2024-05-28 Analog Devices International Unlimited Company Smart prefetch buffer and queue management

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4788656A (en) * 1984-05-25 1988-11-29 The Johns Hopkins University Cache memory and pre-processor
US6453388B1 (en) * 1992-06-17 2002-09-17 Intel Corporation Computer system having a bus interface unit for prefetching data from system memory
US5854911A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Data buffer prefetch apparatus and method
US6940523B1 (en) * 2000-11-15 2005-09-06 Koninklijke Philips Electronics N.V. On the fly data transfer between RGB and YCrCb color spaces for DCT interface
US20060020721A1 (en) * 2004-05-26 2006-01-26 Microchip Technology Incorporated Configurable ping-pong buffers for USB buffer descriptor tables
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US20070297433A1 (en) 2006-06-26 2007-12-27 Mediatek Inc. Method and apparatus for double buffering
US8095745B1 (en) * 2006-08-07 2012-01-10 Marvell International Ltd. Non-sequential transfer of data from a memory
US8806293B2 (en) * 2008-10-09 2014-08-12 Micron Technology, Inc. Controller to execute error correcting code algorithms and manage NAND memories
CN101727403A (zh) * 2008-10-15 2010-06-09 深圳市朗科科技股份有限公司 数据存储系统、设备及方法
KR101662829B1 (ko) * 2009-11-19 2016-10-05 삼성전자주식회사 다중 프로세서 및 그것의 캐시 일관성 관리 장치 및 방법
TWI421769B (zh) * 2009-12-28 2014-01-01 Apacer Technology Inc 增加電子裝置開機速度之方法
TWI399645B (zh) * 2010-01-15 2013-06-21 Silicon Motion Inc 管理記憶體讀出資料之方法以及記憶裝置
CN102262602A (zh) * 2010-05-26 2011-11-30 比亚迪股份有限公司 一种用于ahb总线的数据读取装置及方法
CN101930404B (zh) * 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US9009414B2 (en) * 2010-09-21 2015-04-14 Texas Instruments Incorporated Prefetch address hit prediction to reduce memory access latency
US8880847B2 (en) * 2010-09-28 2014-11-04 Texas Instruments Incorporated Multistream prefetch buffer
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2013052562A1 (en) 2011-10-05 2013-04-11 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
CA2762563A1 (en) * 2011-12-23 2013-06-23 Ibm Canada Limited - Ibm Canada Limitee Data prefetching and coalescing for partitioned global address space languages
US8996772B1 (en) * 2012-02-15 2015-03-31 Cypress Semiconductor Corporation Host communication device and method with data transfer scheduler
TWI497495B (zh) * 2012-07-02 2015-08-21 Winbond Electronics Corp 用於讀取nand快閃記憶體的方法和設備
US9135172B2 (en) * 2012-08-02 2015-09-15 Qualcomm Incorporated Cache data migration in a multicore processing system
US8862858B1 (en) * 2012-09-28 2014-10-14 Emc Corporation Method and system for fast block storage recovery
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US9710173B2 (en) * 2014-05-20 2017-07-18 Micron Technology, Inc. Read cache memory with DRAM class promotion

Also Published As

Publication number Publication date
TW201721401A (zh) 2017-06-16
CN105512054A (zh) 2016-04-20
TWI627530B (zh) 2018-06-21
US20170168846A1 (en) 2017-06-15
TWI603183B (zh) 2017-10-21
US9857981B2 (en) 2018-01-02
CN105512054B (zh) 2018-11-09
US20170168723A1 (en) 2017-06-15
US9910598B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
TWI603183B (zh) 主機介面控制器以及儲存裝置控制方法
TWI442318B (zh) 間接暫存器存取之系統及方法
US9141549B2 (en) Memory system with read and write caches and method of controlling memory system with read and write caches
CN107621959B (zh) 电子装置及其软件训练方法、计算系统
WO2016169318A1 (zh) 扩展内存的访问方法、设备以及系统
JP2016520905A (ja) ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ
CN111143234A (zh) 存储设备、包括这种存储设备的系统及其操作方法
KR20180009217A (ko) 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US20090049232A1 (en) Execute-in-place implementation for a nand device
EP2936323A1 (en) Speculative addressing using a virtual address-to-physical address page crossing buffer
JP2010157129A (ja) 半導体記憶装置
JP2001075866A (ja) 記憶装置を動作する方法および記憶装置
KR102441992B1 (ko) 분리 메모리 관리 방법 및 장치
US10482019B2 (en) Storage apparatus and control method thereof
CN105608020B (zh) 主机接口控制器以及储存装置控制方法
KR100532417B1 (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
CN102792296A (zh) 移动终端中请求页面调度方法、控制器以及移动终端
US8645630B2 (en) Stream context cache system
JP2000347934A (ja) キャッシュメモリ装置
JP2005025740A (ja) ホットルーチンメモリを有するマイクロプロセッサシステム及びその使用方法
US20080195805A1 (en) Micro Controller Unit System Including Flash Memory and Method of Accessing the Flash Memory By the Micro Controller Unit
JP2004038601A (ja) キャッシュメモリ装置
JP6384151B2 (ja) 記憶装置、制御装置、記憶装置の制御方法、及びプログラム
JP2002182901A (ja) コプロセッサデータアクセス制御装置、その方法およびその命令フォーマット
EP1901169A1 (en) Arrangement with instruction cache