TWI578163B - 周邊介面電路與周邊記憶體系統 - Google Patents
周邊介面電路與周邊記憶體系統 Download PDFInfo
- Publication number
- TWI578163B TWI578163B TW105110982A TW105110982A TWI578163B TW I578163 B TWI578163 B TW I578163B TW 105110982 A TW105110982 A TW 105110982A TW 105110982 A TW105110982 A TW 105110982A TW I578163 B TWI578163 B TW I578163B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- peripheral
- data buffer
- input
- interface circuit
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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/1673—Details of memory controller using buffers
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/0656—Data buffering arrangements
-
- 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/0683—Plurality of storage devices
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)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Description
本發明是有關於一種介面電路,且特別是有關於一種用以存取周邊記憶體的周邊介面電路及周邊記憶體系統。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。隨身碟就是一種以快閃記憶體作為儲存媒體的可攜式儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環,並且快閃記憶體亦被大量應用於周邊記憶體的使用。
一般而言,主機端會經由周邊介面電路使用合適的週邊介面標準來經由對應的周邊介面以連接周邊記憶體以存取資料。此外,為了加速存取資料的速度,周邊介面電路通常具有先進先出(first-in first-out,FIFO)緩衝器,以儲存預先擷取(pre-fetched)資料,並且具有較週邊記憶體快的存取速度。然而,若所存取資料的位址是不連續的,部分的預先擷取資料,即使在短時間之內就會被存取,也必須從先進先出緩衝器中移除。因此,整個資料存取速度會降低。此外,周邊介面電路會被用來辨識所連接的周邊記憶體。如此一來,在周邊介面電路被實作後,周邊介面電路可能無法辨識新的周邊記憶體。
本發明提供一種基於所儲存之緩衝資料而採用不同存取方式的周邊介面電路、一種彈性地識別所連接的周邊記憶體之種類的方法,以及一種具有所述周邊介面電路的周邊記憶體系統。
本發明的一實施例提供一種周邊介面電路。所述周邊介面電路包括介面排序器、輸入/輸出控制器、暫存器單元與資料緩衝器。介面排序器經由周邊介面耦接周邊記憶體。輸入/輸出控制器經由一或多個匯流排介面耦接匯流排主控制器。介面排序器從所述輸入/輸出控制器接收多個請求且回應於所述請求以存取所述周邊記憶體。輸入/輸出控制器從匯流排主控制器接收暫存器存取請求,並且存取所述暫存器單元以回應所述暫存器存取請求。當從所述匯流排主控制器接收資料存取請求時,所述輸入/輸出控制器判斷所述資料存取請求的目標資料是否存在於所述資料緩衝器中。所述資料緩衝器是經由位址來隨機地被存取。所述暫存器單元控制所述周邊介面電路的行為或反映所述周邊介面電路的狀態,並且所述資料緩衝器保留所述周邊記憶體的一部分或多個部份的複本。
根據本發明的一實施例,所述暫存器單元中的一個暫存器作為指令暫存器,並且當所述指令暫存器被存取時,所述輸入/輸出控制器傳送介面請求至所述介面排序器。
根據本發明的一實施例,所述暫存器單元中的一或多個暫存器被映射至所述資料緩衝器,並且存取所述暫存器實際上是存取所述資料緩衝器。
根據本發明的一實施例,所述資料緩衝器包括一或多組的有效位元、標籤與資料串。所述有效位元用以指示對應的資料串是否有效。所述標籤用以記錄對應的資料串的部份位址。所述資料串用以記錄一或多個所述周邊記憶體的連續位址的資料。
根據本發明的一實施例,所述資料緩衝器被實施為一指令快取。
根據本發明的一實施例,所述輸入/輸出控制器進一步從所述匯流排主控制器接收資料寫入請求。
根據本發明的一實施例,所述資料緩衝器被實施為一資料快取。
本發明的一實施例提供一種周邊記憶體系統。所述周邊記憶體系統包括周邊介面電路、匯流排主控制器與周邊記憶體。所述周邊介面電路包括介面排序器、輸入/輸出控制器、暫存器單元與資料緩衝器。匯流排主控制器經由一或多個匯流排介面耦接所述周邊介面電路。周邊記憶體經由周邊介面耦接所述周邊介面電路。介面排序器從所述輸入/輸出控制器接收多個請求且回應於所述請求以存取所述周邊記憶體。所述資料緩衝器是經由位址來隨機地被存取。當從所述匯流排主控制器接收資料存取請求時,所述輸入/輸出控制器判斷所述資料存取請求的目標資料是否存在於所述資料緩衝器中。所述暫存器單元包括多個暫存器,並且所述暫存器單元控制所述周邊介面電路的行為或反映所述周邊介面電路的狀態。所述資料緩衝器保留所述周邊記憶體的一部分或多個部份的複本,所述匯流排主控制器發起多個請求至所述周邊介面電路,並且所述周邊記憶體會儲存資料且接收來自周邊介面電路的指令。
根據本發明的一實施例,所述暫存器單元中的一個暫存器作為指令暫存器,並且當所述指令暫存器被存取時,所述輸入/輸出控制器傳送介面請求至所述介面排序器。
根據本發明的一實施例,所述暫存器單元中的一或多個暫存器被映射至所述資料緩衝器,並且存取所述暫存器實際上是存取所述資料緩衝器。
根據本發明的一實施例,所述匯流排主控制器發起多個請求以從所述周邊記憶體接收一辨識碼。所述匯流排主控制器根據所述辨識碼判斷所述周邊記憶體的類型,並且請求所述介面排序器操作於合適的傳輸模式。
基於上述,本發明的周邊介面電路具有儲存一或多個部份的周邊記憶體的複本的資料緩衝器。當所述周邊介面電路接收資料存取請求時,所述周邊介面電路先行檢查目標資料是否存在於資料緩衝器中。若所述資料存取請求的所述目標資料存在於所述資料緩衝器中,所述周邊介面電路從所述資料緩衝器回傳資料,作為所述資料存取請求的回應,進而增進資料存取速度。若所述資料存取請求的所述目標資料不存在於所述資料緩衝器中,所述周邊介面電路存取所述周邊記憶體並且至少保留所述目標資料的複本於所述資料緩衝器中。如此一來,可提升執行資料存取的效率與存取目標資料的速度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本發明的一實施例中,周邊介面電路包含資料緩衝器,所述資料緩衝器儲存一或多個部分的周邊記憶體。當所述周邊介面電路接收資料存取請求時,所述周邊介面電路先檢查目標資料是否存在於資料緩衝器中。若所述資料存取請求的所述目標資料存在於所述資料緩衝器中,所述周邊介面電路從所述資料緩衝器回傳資料,作為所述資料存取請求的回應,進而增進資料存取速度。若所述資料存取請求的所述目標資料不存在於所述資料緩衝器中,所述周邊介面電路存取所述周邊記憶體並且至少保留所述目標資料的複本於所述資料緩衝器中。以下會配合圖1與圖2說明本發明的各個實施例。
圖1是根據本發明的一實施例所繪示的周邊介面電路的方塊圖。圖2是根據本發明的一實施例所繪示的周邊介面電路的操作流程圖。請同時參考圖1與圖2,在本實施例中,周邊介面電路100包括輸入/輸出控制器110、介面排序器120、暫存器單元130與資料緩衝器140。介面排序器120經由周邊介面500耦接至周邊記憶體300。輸入/輸出控制器110經由一或多個匯流排介面400耦接至匯流排主控器200。資料緩衝器140是經由位址來隨機地被存取。
在本範例實施例中,匯流排主控制器200為具備運算能力的硬體(例如晶片組、處理器等)。匯流排主控制器200例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似裝置。此外,在另一實施例中,匯流排主控制器200亦可以是直接記憶體存取(Direct Memory Access,DMA)控制器,其亦會經由周邊介面電路100來對周邊記憶體300存取資料。
在本實施例中,匯流排介面400為相容於多種標準的匯流排介面,並且根據廠商的設計,周邊介面電路100可經由1種或是多種匯流排介面400來與匯流排主控制器200連接。此些適用於匯流排介面400的標準包括先進周邊匯流排(Advanced Peripheral Bus,APB)標準、先進高性能匯流排(Advanced High-performance Bus,AHB)標準與先進可擴展介面(Advanced eXtensible Interface,AXI)標準,或是本地記憶體介面(Local Memory Interface,LMI)標準。然而,必須瞭解的是,本發明不限於此,匯流排介面400亦可以是符合周邊零件連接介面(Peripheral Component Interconnect,PCI)標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
在本實施例中,周邊介面500為相容於多種標準的周邊介面。根據周邊記憶體的類型,介面排序器120可經由對應的周邊介面500來與周邊記憶體300連接。此些適用於周邊介面500的標準包括內部積體電路(Inter-Integrated Circuit,I²C)標準、串列周邊介面(Serial Peripheral Interface,SPI)標準與超匯流排(Hyper Bus)標準。然而,必須瞭解的是,本發明實施例不限於此,周邊介面500亦可以是符合電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、通用序列匯流排(Universal Serial Bus,USB)標準或其他適合的標準。
周邊記憶體300用以儲存資料。一般來說,周邊記憶體300用以儲存資料的儲存空間會大於配置於周邊介面電路100的記憶體空間。周邊記憶體300可以是任何型態的非揮發性記憶體儲存裝置。例如,使用快閃記憶體(Flash Memory)或是其他類型的電子抹除式可複寫唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,EEPROM)的儲存裝置。周邊記憶體300亦可以是由揮發性記憶體所構成的儲存裝置。例如,周邊記憶體300可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等。
介面排序器120用以接收來自輸入/輸出控制器110的請求。在接收到資料存取的請求後,介面排序器120會根據介面排序器120與周邊記憶體300之間的周邊介面500的標準與暫存器單元130所表示的參數來使用適當的序列以存取周邊記憶體300。
在本實施例中,輸入/輸出控制器110用以接收來自匯流排主控制器200的請求並且執行對應的操作(S201)。輸入/輸出控制器110會從匯流排主控制器200接收兩種類型的請求:暫存器存取請求與資料存取請求。輸入/輸出控制器110會判斷所接收的請求的類型(S203)。若所接收的請求是暫存器存取請求,輸入/輸出控制器110存取暫存器單元130中的目標暫存器(S205)。若所接收到的請求是資料存取請求,輸入/輸出控制器110先檢查目標資料是否存在於資料緩衝器140中(S207)。若資料存取請求的目標資料存在於資料緩衝器140中,輸入/輸出控制器110存取資料緩衝器140(S209)。若資料存取請求的目標資料不存在於資料緩衝器140中,輸入/輸出控制器110便傳送介面請求至介面排序器120以存取周邊記憶體300(S211),並且至少保留所述目標資料的複本於資料緩衝器140中(S213)。
因為資料緩衝器140的存取速度比起周邊記憶體300快上十或數百倍,可藉由使用資料緩衝器140來有效地改善資料存取的速度。以下將會配合圖式與實施例來詳細說明本發明的實施例的概念。
圖3是根據本發明的一實施例所繪示的周邊記憶體系統的方塊圖。
請參照圖3,在本實施例中,周邊記憶體系統10包括匯流排主控制器200、周邊介面電路100與快閃記憶體310。周邊介面電路100包括介面排序器120、輸入/輸出控制器110、暫存器單元130與資料緩衝器140。輸入/輸出控制器110可經由先進周邊匯流排410與先進可擴展介面匯流排420耦接至匯流排主控制器200。介面排序器120可經由串列周邊介面510耦接至快閃記憶體310。資料緩衝器140經由位址被隨機地存取。
如上所述,介面排序器120用以接收來自輸入/輸出控制器110的請求,並且存取快閃記憶體310以回應所述請求。舉例來說,從輸入/輸出控制器110接收到資料存取的請求後,介面排序器120會基於串列周邊介面協定將所述請求轉換為資料存取序列,以存取快閃記憶體310的資料。除了資料存取請求之外,來自輸入/輸出控制器110的請求可包括適用於快閃記憶體310的抹除操作。抹除操作用以指示快閃記憶體310回傳部分或全部的記憶體為初始狀態,以讓資料可以再被寫入至快閃記憶體310中。
在本實施例中,輸入/輸出控制器110經由先進周邊匯流排410來接收暫存器存取請求,以讀取或寫入暫存器單元130。所述暫存器單元可以控制介面排序器120的行為或是反映介面排序器120的狀態。此外,暫存器單元130中的一個暫存器可作為指令暫存器,並且當指令暫存器被存取時,輸入/輸出控制器110可傳送請求至介面排序器120。更進一步地,暫存器單元130中的一或多個暫存器可被映射至資料緩衝器140,進而匯流排主控制器200可藉由傳送暫存器存取請求來存取資料緩衝器140。
在本實施例中,輸入/輸出控制器110更用以經由先進可擴展介面匯流排420來接收資料存取請求。若資料存取請求被輸入/輸出控制器110所接收,輸入/輸出控制器110先行檢查資料存取請求所指示的目標資料是否存在於資料緩衝器140中。若所述資料存取請求的所述目標資料存在於所述資料緩衝器140中,所述輸入/輸出控制器110便從所述資料緩衝器回傳資料以回應所述資料存取請求。若所述資料存取請求的所述目標資料不存在於所述資料緩衝器140中,所述輸入/輸出控制器110便傳送介面請求至介面排序器120以存取所述快閃記憶體310,並且至少保留所述目標資料的複本於所述資料緩衝器140中。
在本實施例中,經由先進可擴展介面匯流排420的每一資料存取請求是具有目標位址的簡單記憶體存取。每一個目標位址關聯至快閃記憶體310的目標資料。若輸入/輸出控制器110接收到資料存取請求,輸入/輸出控制器110會傳送具有目標位址的資料存取請求至介面排序器120來存取快閃記憶體310。
在本實施例中,請參照圖3,匯流排主控制器200會在周邊記憶體系統11開電後對周邊介面電路100進行初始化程序。於所述初始化程序中,匯流排主控制器200可設定暫存器單元130,藉此,輸入/輸出控制器110可傳送識別請求(例如,“Read ID”指令)至介面排序器120。輸入/輸出控制器110經由介面排序器120從快閃記憶體310接收識別碼(Identification code,ID),作為識別請求的反應。所述識別碼例如是對應快閃記憶體310的製造識別碼(manufacturer ID)或是裝置識別碼(Device ID)。匯流排主控制器200根據所接收到的識別碼來識別快閃記憶體310。接著,匯流排主控制器200會設定所述暫存器單元130,使介面排序器120可操作於適合的資料傳輸模式。舉例來說,在本實施例中,匯流排主控制器200辨識快閃記憶體310支持四通道輸入輸出模式(Quad- I/O mode),匯流排主控制器200會設定暫存器單元130使介面排序器120可操作於四通道輸入輸出模式來存取快閃記憶體310。應注意的是,於上述的初始化程序中,介面排序器120會使用預設的資料傳輸模式(例如,單通道資料傳輸模式)來與周邊記憶體溝通。
有關使用於先進周邊匯流排410與先進可擴展介面匯流排420的介面標準的細節為相關領域所知的技術,不贅述於此。於以下會藉由多個實施例來說明圖1與圖3中的資料緩衝器140的細節。
圖4是根據本發明的一實施例所繪示的資料緩衝器的方塊圖。在本實施例中,資料緩衝器140包括有效位元141、標籤142與資料串143。當周邊記憶體300被輸入/輸出控制器110所存取時,輸入/輸出控制器110會重置有效位元141為“0”,儲存目標資料的複本於資料(0),並且紀錄目標位址於標籤142中。接著,輸入/輸出控制器110會預擷取(pre-fetch)周邊記憶體300中隨後的位址,並且循序地儲存預擷取後的資料(pre-fetched data)於資料(1)~資料(N)中。然後,設定有效位元141為“1”。在此,“N”為正整數,並且本發明不限定“N”的數值。
如上所述,標籤142儲存資料存取請求的目標位址。實際上,標籤142可儲存部分的目標位址,此操作取決於周邊記憶體300的大小以及一個資料儲存單元的大小。假設周邊記憶體300的大小為2
r位元組並且一個資料儲存單元的大小為2
s位元組,其中參數“r”與 “s”為正整數。接著,標籤142會僅儲存目標位址中的位元(r-1)~位元s。舉例來說,當所述周邊記憶體的大小為1M(即,2
20,r=20)位元組且一個資料儲存單位的大小為4(即,2
2,s=2)位元組時,標籤142會僅記錄目標位址中的位元19(即,r-1=20-1=19)~位元 2(即,s=2)。
在本實施例中,若輸入/輸出控制器110接收資料存取請求,輸入/輸出控制器110會藉由目標位址、有效位元141、標籤142、周邊記憶體300的大小與一個資料儲存單元的大小來判斷目標資料是否存在於資料緩衝器140中。假設目標資料的位址為 “A”,標籤142的內容為 “T”,周邊記憶體300的大小為2
r位元組,以及一個資料儲存單元的大小為2
s位元組。基此,資料緩衝器140的位址 “F”會經由下方的公式(1)來構成。
(1)
接著,若所計算出的 “F”介於“0”與“N”之間(即,0 <=F<=N),則目標資料存在於資料緩衝器140中。舉例來說,當 “N”為7、有效位元為 “1”、標籤T的內容為 0x18C63、周邊記憶體的大小為1M(即,2
20)位元組以及一個資料儲存單元的大小為4(即,2
2)位元組時,經由公式(1),當位址A為0x63194時,目標資料存在於資料緩衝器中。因為參數F= A[20-1:2] - T = 0x63194[19:2] – 0x18C63 = 0x2,在0與7之間(即,0<=“0x2”<=7)。
圖5是根據本發明的一實施例所繪示的周邊記憶體系統的操作的方塊圖。換句話說,圖5繪示了操作於上述實施例所說明的記憶體緩衝器140的周邊記憶體系統10。請參照圖4與圖5,假設周邊介面電路100接收到目標位址為0x180的讀取指令的資料存取請求(S501),接著,周邊介面電路100傳送包含位址0x180的讀取指令至周邊記憶體300(S503)。然後,周邊介面電路100從周邊記憶體300接收資料字元(S505),並且在從周邊記憶體300接收到資料字元後,周邊介面電路100回傳資料字元以回應資料存取請求(S507)。此資料字元亦會紀錄在資料緩衝器中的資料(0),並且圖4中的標籤142會對應地更新。接著,會從周邊記憶體300接收隨後位址(即,0x184~0x19F)的七個資料字元,並且循序地將所接收的七個資料字元記錄至資料緩衝器140中的資料(1)~資料(7)(S509)。然後,圖4中的有效位元141會被設定為“1”,並且周邊介面電路100會結束此指令(S511)。
接下來,周邊介面電路100接收目標位址為0x18C與0x184的讀取指令的兩個資料存取請求(S513、S515)。由於目標位址0x18C與0x184皆位於隨後的位址0x184~0x19F內,因此,對應的資料字元分別存在於資料緩衝器的資料(1)與資料(3)中,並且周邊介面電路100會從資料緩衝器140回傳所述資料位元,而不是藉由存取周邊記憶體300(S514、S516)。若周邊介面電路100接收目標位址為0x258的讀取指令的資料存取請求(S517),周邊介面電路100判定此目標資料並不存在於資料緩衝器中,並且傳送包含位址0x258的讀取指令至周邊記憶體300(S519)。後續的操作S521、S523、S525與S527和之前的操作S505、S507、S509與S511相似,不贅述於此。
圖6是根據本發明的一實施例所繪示的資料緩衝器的方塊圖。在本實施例中,資料緩衝器140包括兩個緩衝器組144、145,其中緩衝器組144包括有效位元141、標籤142與資料串143,並且緩衝器組145包括有效位元146、標籤147與資料串148。每一個緩衝器組,其作用的方式與圖4中的資料緩衝器140的前述實施例相同。兩個緩衝器組提供了更多的緩衝空間,並且可以提供更佳的效能。本發明並不限定資料緩衝器140中的緩衝器組的數量。
在另一實施例中,若周邊介面電路100被用以僅接收資料讀取請求時,資料緩衝器140會被實施為指令快取。若周邊介面電路100被用以接收資料讀取請求與資料寫入請求時,資料緩衝器140會被實施為資料快取。
應注意的是,本發明並不限於圖3中的實施例。周邊記憶體電路100可經由其他類型的匯流排介面與周邊介面來連接至匯流排主控制器200與周邊記憶體300。
圖7是根據本發明的一實施例所繪示的周邊記憶體系統的方塊圖。圖8是根據本發明的另一實施例所繪示的周邊記憶體系統的方塊圖。以下會僅說明圖7、圖8與圖3之間的不同之處。圖7、圖8中的元件的細節與圖3中的相同,不再贅述於此。
舉例來說, 請參照圖7,輸入/輸出控制器110經由先進周邊匯流排410與本地記憶體介面(Local Memory Interface,LMI)430耦接至匯流排主控制器200。輸入/輸出控制器110用以經由先進周邊匯流排410接收暫存器存取請求,並且經由本地記憶體介面430接收資料存取請求。介面排序器120經由內部積體電路介面520耦接至電子可抹除可程式化唯讀記憶體(EEPROM)320。
圖8所繪示的是另一實施例。請參照圖8,輸入/輸出控制器110經由先進高性能匯流排440耦接至匯流排主控制器200。輸入/輸出控制器110經由先進高性能匯流排440接收暫存器存取請求與資料存取請求。輸入/輸出控制器110可根據位址來分辨請求的類型。舉例來說,位址在0x0與0x0FFF之間的請求會被視為暫存器存取請求,並且位址在0x100000與0x1FFFFF之間的請求會被視為資料存取請求。介面排序器120經由串列周邊介面510耦接至靜態隨機存取記憶體330。
綜上所述,本發明所提供的周邊記憶體系統與周邊介面電路具有儲存一或多個部份的周邊記憶體的複本的資料緩衝器。當所述周邊介面電路接收資料存取請求時,所述周邊介面電路先檢查目標資料是否存在於資料緩衝器中。若所述資料存取請求的所述目標資料存在於所述資料緩衝器中,所述周邊介面電路從所述資料緩衝器回傳資料,回應所述資料存取請求,進而增進資料存取速度。若所述資料存取請求的所述目標資料不存在於所述資料緩衝器中,所述周邊介面電路存取所述周邊記憶體並且至少保留所述目標資料的複本於所述資料緩衝器中。如此一來,可提升執行資料存取的效率與存取目標資料的速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10、11、12、13‧‧‧周邊記憶體系統
100‧‧‧周邊介面電路
110‧‧‧輸入/輸出控制器
120‧‧‧介面排序器
130‧‧‧暫存器單元
140‧‧‧資料緩衝器
141、146‧‧‧有效位元
142、147‧‧‧標籤
143、148‧‧‧資料串
144、145‧‧‧緩衝器組
200‧‧‧匯流排主控制器
300‧‧‧周邊記憶體
310‧‧‧快閃記憶體
320‧‧‧電子可抹除可程式化唯讀記憶體
330‧‧‧靜態隨機存取記憶體
400‧‧‧匯流排介面
410‧‧‧先進周邊匯流排
420‧‧‧先進可擴展介面
430‧‧‧本地記憶體介面
440‧‧‧先進高性能匯流排
500‧‧‧周邊介面
510‧‧‧串列周邊介面
520‧‧‧內部積體電路介面
S201、S203、S205、S207、S209、S211、S213‧‧‧步驟
S501、S503、S505、S507、S509、S511、S513、S514、S515、S516、S517、S519、S521、S523、S525、S527‧‧‧操作
100‧‧‧周邊介面電路
110‧‧‧輸入/輸出控制器
120‧‧‧介面排序器
130‧‧‧暫存器單元
140‧‧‧資料緩衝器
141、146‧‧‧有效位元
142、147‧‧‧標籤
143、148‧‧‧資料串
144、145‧‧‧緩衝器組
200‧‧‧匯流排主控制器
300‧‧‧周邊記憶體
310‧‧‧快閃記憶體
320‧‧‧電子可抹除可程式化唯讀記憶體
330‧‧‧靜態隨機存取記憶體
400‧‧‧匯流排介面
410‧‧‧先進周邊匯流排
420‧‧‧先進可擴展介面
430‧‧‧本地記憶體介面
440‧‧‧先進高性能匯流排
500‧‧‧周邊介面
510‧‧‧串列周邊介面
520‧‧‧內部積體電路介面
S201、S203、S205、S207、S209、S211、S213‧‧‧步驟
S501、S503、S505、S507、S509、S511、S513、S514、S515、S516、S517、S519、S521、S523、S525、S527‧‧‧操作
圖1是根據本發明的一實施例所繪示的周邊介面電路的方塊圖。 圖2是根據本發明的一實施例所繪示的周邊介面電路的操作流程圖。 圖3是根據本發明的一實施例所繪示的周邊記憶體系統的方塊圖。 圖4是根據本發明的一實施例所繪示的資料緩衝器的方塊圖。 圖5是根據本發明的一實施例所繪示的周邊記憶體系統的操作的方塊圖。 圖6是根據本發明的一實施例所繪示的資料緩衝器的方塊圖。 圖7是根據本發明的一實施例所繪示的周邊記憶體系統的方塊圖。 圖8是根據本發明的一實施例所繪示的周邊記憶體系統的方塊圖。
S201、S203、S205、S207、S209、S211、S213‧‧‧步驟
Claims (19)
- 一種周邊介面電路,包括: 一介面排序器,經由一周邊介面耦接一周邊記憶體; 一輸入/輸出控制器,經由一或多個匯流排介面耦接一匯流排主控制器; 一暫存器單元;以及 一資料緩衝器, 其中該介面排序器從該輸入/輸出控制器接收多個請求且回應於該些請求以存取該周邊記憶體, 當從該匯流排主控制器接收一資料存取請求時,該輸入/輸出控制器判斷該資料存取請求的目標資料是否存在於該資料緩衝器中, 其中該資料緩衝器是經由位址來隨機地被存取, 其中該暫存器單元控制該周邊介面電路的行為或反映該周邊介面電路的狀態,並且該資料緩衝器保留該周邊記憶體的一部分或多個部份的複本。
- 如申請專利範圍第1項所述的周邊介面電路,其中該暫存器單元包括多個暫存器。
- 如申請專利範圍第2項所述的周邊介面電路,其中該暫存器單元的一暫存器作為指令暫存器,並且當該指令暫存器被存取時,該輸入/輸出控制器傳送一介面請求至該介面排序器。
- 如申請專利範圍第2項所述的周邊介面電路,其中該暫存器單元的一或多個暫存器被映射至該資料緩衝器,並且存取該些暫存器實為存取該資料緩衝器。
- 如申請專利範圍第1項所述的周邊介面電路,若該資料存取請求的該目標資料存在於該資料緩衝器中,該輸入/輸出控制器從該資料緩衝器回傳資料,作為該資料存取請求的回應;以及 若該資料存取請求的該目標資料不存在於該資料緩衝器中,該輸入/輸出控制器傳送一介面請求至該介面排序器以存取該周邊記憶體並且至少保留該目標資料的複本於該資料緩衝器中。
- 如申請專利範圍第1項所述的周邊介面電路,其中該資料緩衝器包括一或多組的: 一有效位元; 一標籤;以及 一資料串, 其中該有效位元用以指示對應的資料串的資料是否有效, 該標籤用以記錄對應的資料串的部份位址,並且 該資料串用以記錄一或多個該周邊記憶體的連續位址的資料。
- 如申請專利範圍第1項所述的周邊介面電路,其中該輸入/輸出控制器所接收的資料存取請求只有讀取請求,該資料緩衝器被實施為指令快取。
- 如申請專利範圍第1項所述的周邊介面電路,其中該輸入/輸出控制器所接收的資料存取請求包含讀取請求和寫入請求。
- 如申請專利範圍第8項所述的周邊介面電路,其中該資料緩衝器被實施為資料快取。
- 一種周邊記憶體系統,包括: 一周邊介面電路,其包括: 一介面排序器; 一輸入/輸出控制器; 一暫存器單元;以及 一資料緩衝器; 一匯流排主控制器,經由一或多個匯流排介面耦接該周邊介面電路;以及 一周邊記憶體,經由一周邊介面耦接該周邊介面電路, 其中該介面排序器從該輸入/輸出控制器接收多個請求且回應於該些請求以存取該周邊記憶體,其中該資料緩衝器是經由位址來隨機地被存取, 當從該匯流排主控制器接收一資料存取請求時,該輸入/輸出控制器判斷該資料存取請求的目標資料是否存在於該資料緩衝器中, 其中該暫存器單元控制該周邊介面電路的行為或反映該周邊介面電路的狀態,並且該資料緩衝器保留該周邊記憶體的一部分或多個部份的複本。
- 如申請專利範圍第10項所述的周邊記憶體系統,其中該暫存器單元包括多個暫存器。
- 如申請專利範圍第11項所述的周邊記憶體系統,其中該暫存器單元的一暫存器作為指令暫存器,並且當該指令暫存器被存取時,該輸入/輸出控制器傳送一介面請求至該介面排序器。
- 如申請專利範圍第11項所述的周邊記憶體系統,其中該暫存器單元的一或多個暫存器被映射至該資料緩衝器,並且存取該些暫存器實為存取該資料緩衝器。
- 如申請專利範圍第10項所述的周邊記憶體系統,若該資料存取請求的該目標資料存在於該資料緩衝器中,該輸入/輸出控制器從該資料緩衝器回傳資料,作為該資料存取請求的回應;以及 若該資料存取請求的該目標資料不存在於該資料緩衝器中,該輸入/輸出控制器傳送一介面請求至該介面排序器以存取該周邊記憶體並且保留至少該目標資料的複本於該資料緩衝器中。
- 如申請專利範圍第10項所述的周邊記憶體系統,其中該資料緩衝器包括一或多組的: 一有效位元; 一標籤;以及 一資料串, 其中該有效位元用以指示對應的資料串的資料是有效的, 該標籤用以記錄對應的資料串的部份位址,並且 該資料串用以記錄一或多個該周邊記憶體的連續位址的資料。
- 如申請專利範圍第10項所述的周邊記憶體系統,其中該輸入/輸出控制器所接收的資料存取請求只有讀取請求,該資料緩衝器被實施為指令快取。
- 如申請專利範圍第10項所述的周邊記憶體系統,其中該輸入/輸出控制器所接收的資料存取請求包含讀取請求和寫入請求。
- 如申請專利範圍第17項所述的周邊記憶體系統,其中該資料緩衝器被實施為資料快取
- 如申請專利範圍第10項所述的周邊記憶體系統,其中該匯流排主控制器發起一或多個請求以從該周邊記憶體接收辨識碼, 其中該匯流排主控制器根據該辨識碼判斷該周邊記憶體的類型,並且請求該介面排序器操作於合適的傳輸模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/979,607 US9990311B2 (en) | 2015-12-28 | 2015-12-28 | Peripheral interface circuit |
US14/979,607 | 2015-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI578163B true TWI578163B (zh) | 2017-04-11 |
TW201810058A TW201810058A (zh) | 2018-03-16 |
Family
ID=59087920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105110982A TWI578163B (zh) | 2015-12-28 | 2016-04-08 | 周邊介面電路與周邊記憶體系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9990311B2 (zh) |
CN (1) | CN106919343B (zh) |
TW (1) | TWI578163B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6843508B2 (ja) * | 2016-03-01 | 2021-03-17 | キヤノン株式会社 | 情報処理装置及び情報処理装置の制御方法 |
US10559351B2 (en) * | 2017-02-20 | 2020-02-11 | Texas Instruments Incorporated | Methods and apparatus for reduced area control register circuit |
GB2612799A (en) * | 2021-11-11 | 2023-05-17 | Safran Seats Gb Ltd | Aircraft electrical system |
CN117112463A (zh) * | 2022-04-06 | 2023-11-24 | 星宸科技股份有限公司 | 数据传输控制装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120198129A1 (en) * | 2011-02-02 | 2012-08-02 | Van Aken Stephen P | At least semi-autonomous modules in a memory system and methods |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
TW201439899A (zh) * | 2013-01-02 | 2014-10-16 | Intel Corp | 用以整合進階精簡指令集機器(arm)生態系統之智慧產權物至以外設互聯標準(pci)爲基礎之互聯的方法 |
US20150046625A1 (en) * | 2012-11-20 | 2015-02-12 | Thstyme Bermuda Limited | Solid state drive architectures |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917831B2 (en) * | 2007-06-14 | 2011-03-29 | Freescale Semiconductor, Inc. | Optimization of storage device accesses in RAID systems |
CN101552032B (zh) * | 2008-12-12 | 2012-01-18 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
JP5526697B2 (ja) * | 2009-10-14 | 2014-06-18 | ソニー株式会社 | ストレージ装置およびメモリシステム |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
-
2015
- 2015-12-28 US US14/979,607 patent/US9990311B2/en active Active
-
2016
- 2016-04-08 TW TW105110982A patent/TWI578163B/zh active
- 2016-05-26 CN CN201610355494.4A patent/CN106919343B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120198129A1 (en) * | 2011-02-02 | 2012-08-02 | Van Aken Stephen P | At least semi-autonomous modules in a memory system and methods |
TW201235843A (en) * | 2011-02-02 | 2012-09-01 | Micron Technology Inc | Control arrangements and methods for accessing block oriented nonvolatile memory |
US20150046625A1 (en) * | 2012-11-20 | 2015-02-12 | Thstyme Bermuda Limited | Solid state drive architectures |
TW201439899A (zh) * | 2013-01-02 | 2014-10-16 | Intel Corp | 用以整合進階精簡指令集機器(arm)生態系統之智慧產權物至以外設互聯標準(pci)爲基礎之互聯的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106919343B (zh) | 2020-03-31 |
US20170185541A1 (en) | 2017-06-29 |
CN106919343A (zh) | 2017-07-04 |
US9990311B2 (en) | 2018-06-05 |
TW201810058A (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7171526B2 (en) | Memory controller useable in a data processing system | |
US7958298B2 (en) | System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment | |
TWI709854B (zh) | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 | |
TWI578163B (zh) | 周邊介面電路與周邊記憶體系統 | |
US10733122B2 (en) | System and method for direct memory access in a flash storage | |
TW200406680A (en) | Method, system, and program for handling input/output commands | |
JPWO2020243098A5 (zh) | ||
TWI790456B (zh) | 記憶體定址方法及相關聯的控制器 | |
JP5128093B2 (ja) | 複数のアドレス・キャッシュ・エントリを無効化する装置 | |
TW201426303A (zh) | 資料讀取方法、記憶體控制器與記憶體儲存裝置 | |
US20220300203A1 (en) | Method and apparatus for executing host commands | |
US9274860B2 (en) | Multi-processor device and inter-process communication method thereof | |
BR102013022935A2 (pt) | Dispositivo de memória flash serial de múltiplos fluxos de dados | |
TW202015044A (zh) | 資料處理方法及使用所述方法的儲存控制器 | |
TW202042065A (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
CN114051611A (zh) | 用于非连续存储器的dma分散和聚集操作 | |
TW201732635A (zh) | 資料傳輸方法及伺服器 | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
TWI507883B (zh) | 記憶卡存取裝置、其控制方法與記憶卡存取系統 | |
US10338843B2 (en) | Methods for moving data internally and apparatuses using the same | |
TWI553483B (zh) | 處理器及存取記憶體的方法 | |
JP2010026592A (ja) | メモリデバイスおよびメモリデバイス制御装置 | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
US10261714B2 (en) | Memory controller and memory system including same | |
TWI604306B (zh) | 資料儲存裝置、記憶體控制器及其資料管理方法 |