TWI764417B - 符合擴展式串列周邊介面規格的裝置與系統 - Google Patents

符合擴展式串列周邊介面規格的裝置與系統

Info

Publication number
TWI764417B
TWI764417B TW109143227A TW109143227A TWI764417B TW I764417 B TWI764417 B TW I764417B TW 109143227 A TW109143227 A TW 109143227A TW 109143227 A TW109143227 A TW 109143227A TW I764417 B TWI764417 B TW I764417B
Authority
TW
Taiwan
Prior art keywords
data
xspi
signal
interface
slave device
Prior art date
Application number
TW109143227A
Other languages
English (en)
Other versions
TW202203044A (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 TW202203044A publication Critical patent/TW202203044A/zh
Application granted granted Critical
Publication of TWI764417B publication Critical patent/TWI764417B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

利用符合擴展式串列周邊介面(xSPI)規格的xSPI介面來改良連續讀取動作的方法與裝置係被提供。在一方面,此裝置包括記憶體、緩衝器、多個輸入接腳、及處理器。記憶體用以儲存資料。緩衝器用以接收來自裝置外部的資料,並將接收到的資料傳輸至記憶體。此些輸入接腳用以耦接至xSPI介面。處理器用以透過xSPI介面來選擇多個從屬裝置的一從屬裝置。處理器傳送指令資料至從屬裝置,以進行資料讀取。處理器透過xSPI介面來接收選定的從屬裝置的資料,接收xSPI介面的資料選通訊號線的訊號,並且依據所接收的訊號來決定資料讀取動作。

Description

符合擴展式串列周邊介面規格的裝置與系統
本揭露書係有關於符合擴展式串列周邊介面規格的裝置與系統。
符合擴展式串列周邊介面(Expanded Serial Peripheral Interface,xSPI)規格之xSPI介面已經導入至現代電子裝置與系統中,以作為具有高資料吞吐量(high data throughput)、低訊號腳位計數(low signal count)以及一些向下相容性(backward compatibility)等特性的介面。xSPI介面允許多個與xSPI介面相容的從屬裝置(slave device)透過xSPI介面進行存取。xSPI規格是一種同步串列通訊介面規格(synchronous serial communication interface specification),配置於具有單一主裝置與一或多個從屬裝置之一主多從架構,並透過共享匯流排以全雙工模式(full duplex mode)與電子裝置進行通訊。xSPI匯流排包括一資料選通訊號線(data strobe line),資料選通訊號線載有由從屬裝置所驅動的資料選通訊號,並且對齊(aligned)於轉移至主裝置的資料,用以將來自從屬裝置的資料轉移至主裝置。
一般來說,在一些方面,本揭露的主題涵蓋一種符合擴展式串列周邊介面(Expanded Serial Peripheral Interface,xSPI)規格的裝置,此裝置包括一記憶體、一緩衝器、多個輸入接腳、以及一處理器。記憶體用以儲存資料。緩衝器用以接收來自此裝置外部的資料,並將所接收之資料轉移至記憶體。多個輸入接腳用以耦接至xSPI介面。處理器用以透過xSPI介面,以從多個從屬裝置中選擇的一個從屬裝置。處理器用以傳送指令資料至所選定的從屬裝置,以進行資料讀取。處理器用以透過xSPI介面來接收所選定的從屬裝置的資料。處理器更用以接收xSPI介面的資料選通訊號線(data strobe line)的訊號,並依據所接收之訊號來決定資料讀取動作。
裝置的實施方式可包括以下特徵的一或多個。例如,在一些實施方式中,處理器係用以藉由以下操作來依據接收到的一資料選通訊號來決定資料讀取動作:當於資料選通訊號線上接收到交替的形式之資料選通訊號時,將接收到的資料封包儲存至緩衝器,並且將緩衝器的儲存資料轉移至記憶體。
在一些實施方式中,處理器更用以藉由以下操作來依據接收到的一資料選通訊號來決定資料讀取動作:當於資料選通訊號線上接收到為一恆定值的該資料選通訊號時,暫停或中斷資料讀取動作。在一些實施方式中,暫停或中斷資料讀取動作的 步驟包括:透過處理器來讀取記憶體的當前資料儲存位址(current data storing address),以作為中間位址(intermediate address),並且儲存中間位址。
在一些實施方式中,處理器更用以依據接收到的從恆定值改變為交替之形式之資料選通訊號來重新繼續資料讀取動作;處理器藉由以下操作來重新繼續資料讀取動作:讀取所儲存之中間位址,透過xSPI介面來接收從選定的從屬裝置傳來的資料,以及將接收到的資料儲存至緩衝器,並且將緩衝器所儲存之資料從緩衝器轉移至記憶體的中間位址。在一些實施方式中,此裝置用以透過xSPI介面來提供時脈訊號(clock signal)至從屬裝置,一旦資料讀取動作開始時,裝置用以維持此時脈訊號。
在一些實施方式中,資料封包係邊緣對齊(edge aligned)於資料選通訊號,並且緩衝器接收的資料係中心對齊(center aligned)於時脈訊號。在一些實施方式中,指令資料包括命令指令、位址資訊與虛擬週期(dummy cycle)。位址資訊包括從屬裝置的來源位址、目的地位址與從屬裝置之起始讀取位址的至少其中之一。
一般來說,在另一方面,本揭露的主題可包括一種符合xSPI規格的裝置,裝置包括一記憶體與一裝置控制器。記憶體用以儲存資料。裝置控制器包括一處理器、一控制器緩衝器、以及一計數器。處理器用以控制裝置的資料讀取。控制器緩衝器連接至處理器,控制器緩衝器用以接收來自記憶體的資料並儲存此資料。控制器緩衝器更用以於xSPI介面輸出此資料。其中控制 器緩衝器用以基於確定裝置已準備好進行資料傳輸且控制器緩衝器已經填滿,來輸出資料。計數器連接至處理器與控制器緩衝器,計數器用以監測(monitor)從控制器緩衝器至xSPI介面的資料傳輸。其中處理器依據計數器的監測結果來確定裝置是否準備好進行資料傳輸。
裝備的實施方式可包括以下的一或多個特徵。例如,在一些實施方式中,裝置更用以藉由以下操作於一資料選通訊號線上輸出一訊號,此訊號指示針對資料讀取的此裝置的狀態:基於控制器緩衝器已經填滿的狀態,於此資料選通訊號線上輸出交替形式之訊號至xSPI介面。基於此裝置尚未準備就緒的判定,於資料選通訊號線上輸出具有一恆定值之訊號出至xSPI介面。在一些實施方式中,裝置用以藉由以下操作確定裝置是否準備就緒:基於儲存於控制器緩衝器的資料中的已輸出至xSPI介面之資料的一比例,以確定裝置是否準備就緒。
在一些實施方式中,此比例的值係位於70%至75%的範圍內。在一些實施方式中,裝置用以藉由以下操作確定裝置是否準備就緒:基於儲存於控制器緩衝器的資料的最後資料封包(last data packet)係輸出至xSPI介面之狀態,以確定裝置是否準備就緒。在一些實施方式中,xSPI介面於裝置以及讀取裝置的資料之主裝置之間提供通訊與互連(interconnection),主裝置讀取裝置的資料,此裝置用以透過xSPI介面來控制資料傳輸。
在一些實施方式中,裝置用以接收此主裝置提供之時脈訊號,並且此裝置用以輸出交替訊號,交替訊號同步(synchronized)於時脈訊號。在一些實施方式中,裝置還包括多工器(multiplexer)。此多工器用以透過xSPI介面來輸出資料選通訊號至主裝置。此多工器包括第一輸入接腳、一第二輸入接腳、一選擇接腳(select pin)。第一輸入接腳連接至裝置的時脈訊號輸入接腳。第二輸入接腳連接至一零線(zero line),零線承載一個位元之零訊號(bit zero signal)。選擇接腳連接至處理器,選擇接腳用以依據此裝置是否準備就緒的判定,來選擇第一輸入接腳與第二輸入接腳的其中之一的訊號,以作為一輸出訊號。其中基於裝置尚未準備就緒且控制器緩衝器已經填滿的判定,多工器選擇第一輸入接腳的時脈訊號,以作為輸出之資料選通訊號。其中基於裝置尚未準備就緒的判定,多工器選擇第二輸入接腳的一個位元之零訊號,以作為輸出之資料選通訊號。
在一些實施方式中,裝置用以透過xSPI介面來接收指令資料,其中指令資料包括命令指令、位址資訊與虛擬週期。位址資訊包括裝置的記憶體的來源位址、目的地位址與起始讀取位址的至少其中之一。在一些實施方式中,基於裝置尚未準備就緒的判定,此裝置係用以:將資料從記憶體傳輸至控制器緩衝器,或是處理儲存於控制器緩衝器的資料。
一般來說,在另一方面,本揭露的主題可包括一種符合xSPI規格的系統,此系統包括主裝置、多個從屬裝置、及一 xSPI介面。xSPI介面將主裝置連接至多個從屬裝置。此xSPI介面包括晶片選擇訊號線(chip select signal line)、多條資料輸入/輸出訊號線(data I/O line)、一時脈訊號線、一資料選通訊號線。此晶片選擇訊號線承載了晶片選擇訊號,以指示多個從屬裝置的選定(selected)的從屬裝置,其中主裝置提供晶片選擇訊號至多個從屬裝置。此些資料輸入/輸出訊號線用以傳輸資料於主裝置與多個從屬裝置之間。時脈訊號線承載了時脈訊號,主裝置提供時脈訊號至多個從屬裝置。其中一旦資料讀取動作開始時,主裝置維持時脈訊號。資料選通訊號線承載了資料選通訊號,選定的從屬裝置提供資料選通訊號,資料選通訊號透過xSPI介面來傳送至主裝置。其中基於資料選通訊號為交替的形式,主裝置用以接收從選定的從屬裝置傳送而來的資料。其中基於資料選通訊號為恆定值的形式,主裝置用以確定選定的從屬裝置尚未準備好進行資料傳輸。
在一些實施方式中,回應於選定的從屬裝置尚未準備好進行資料傳輸的判定,主裝置暫停或中斷接收來自選定的從屬裝置的資料。在一些實施方式中,選定的從屬裝置用以傳送多個資料封包,資料封包邊緣係對齊於資料選通訊號,其中多個從屬裝置接收的資料係中心對齊於時脈訊號。在一些實施方式中,選定的從屬裝置包括多工器,多工器藉由選擇時脈訊號與恆定值訊號的其中之一,以輸出訊號於資料選通訊號線。在一些實施方式中,回應於資料選通訊號從恆定值的形式改變為交替的形式, 主裝置用以重新繼續(resume)從選定的從屬裝置接收資料。在一些實施方式中,在選定的從屬裝置尚未準備就緒時,選定的從屬裝置用以將選定的從屬裝置的記憶體的資料轉移至選定的從屬裝置的控制器緩衝器,或是處理儲存於選定的從屬裝置的控制器緩衝器的資料。
本技術可實施於記憶體裝置通訊。特別的是,本技術可導入到一主多從(single master-multiple slave)記憶體裝置系統(具有xSPI介面),以改善當選定的從屬裝置針對資料讀取為忙碌狀態時的內部(inter)通訊。此外,本技術利用從屬裝置所驅動的資料選通訊號線,將對應於從屬裝置之狀態的各種訊號傳輸至系統的主裝置。
本技術可用於各種類型的非揮發性記憶體裝置,例如是NOR快閃記憶體(flash memory)、NAND快閃記憶體、電阻式隨機存取記憶體(Resistive Random-Access Memory,RRAM),相變化隨機存取記憶體(Phase-Change Random-Access Memory,PCRAM)等。額外地(Additionally)或替代地(Alternatively),本技術可用於各種類型的裝置與系統,像是安全數位(Secure Digital,SD)卡,嵌入式多媒體卡(Embedded Multimedia Card,eMMC)或固態硬碟(Solid-State Drive,SSD)、嵌入式系統等。
一或多個實施例的細節將搭配底下所附圖式來進行說明。藉由說明書、圖式與申請專利範圍,本發明的其他方面、特徵與優點將變得顯而易見。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100,200,300,700:系統
105:擴展式串列周邊介面匯流排
110~110n,220,320,330,720:從屬裝置
112~112n:裝置控制器
113~113n:處理器
114~114n:內部記憶體
116~116n,122:記憶體
119:計數器
120,210,310,710:主裝置
124:緩衝器
230:時脈訊號線
240:晶片選擇訊號線
250:資料輸入/輸出線
260,750:資料選通訊號線
510:命令區段
520:忙碌區段
530:資料區段
600:時序圖
730:多工器
740:時脈訊號線
760:零線
CK:時脈訊號
CS,CS0,CS1:晶片選擇訊號
I/O[7:0]:資料
T1,T2,T3:時間點
1’b0:位元零訊號
D0,D1,D2,D3,D4,D5~Dn,Dn+1:資料封包
第1圖繪示使用xSPI介面的記憶體裝置系統的示例。
第2圖繪示包括一主裝置與一從屬裝置透過xSPI介面進行通訊的系統之示例。
第3圖繪示包括單一主裝置與多個從屬裝置透過xSPI介面進行通訊的系統之示例。
第4圖繪示第1圖的記憶體裝置系統的從屬裝置之示例。
第5圖繪示當主裝置讀取從屬裝置的資料時,可應用的簡化之資料結構之示例。
第6圖繪示依據本揭露的實施例之當主裝置讀取從屬裝置的資料時,可應用的時序圖。
第7圖繪示了提供第6圖所述的資料選通訊號控制之記憶體裝置系統之示例。
在各個圖式的相同參考編號與名稱表示相同元件。也應理解,圖式所示的各種範例性實施方式僅是說明性表示,而且圖式不一定按比例繪製。
本揭露相關於透過介面(例如是符合擴展式串列周邊介面(Expanded Serial Peripheral Interface,xSPI)規格的介面,以下將符合xSPI規格的介面簡稱為「xSPI介面」)進行記憶體裝置的通訊 與互連(interconnection)。特別地,本揭露相關於在對應的從屬裝置(slave device)忙碌時,用以改良主裝置(master device)的資料讀取動作的方法與裝置。
xSPI匯流排係為針對非揮發性(non-volatile)記憶體裝置系統進行開發且與xSPI規格相容的串列同步通訊(serial synchronous communication)匯流排。xSPI匯流排支援主多從匯流排拓撲(single master-multiple slave bus topology),具有記憶體裝置系統的主裝置所提供的同步時脈訊號(synchronous clock signal)。xSPI匯流排還支援24位元與32位元定址(addressing)、單倍資料率(Single Data Rate,SDR)與雙倍資料率(Double Data Rate,DDR)裝置的資料速率選擇(data rate option)以及記憶體裝置之間的多線介面(multiple-wire interface),多線介面包括4線介面、7線介面、8線介面、11線介面與12線介面。在具有xSPI匯流排的記憶體裝置系統中,一旦從屬裝置被選擇,指令資料(instruction data)則透過xSPI匯流排的資料輸入/輸出訊號線(data I/O line)從主裝置傳送至被選定的從屬裝置。針對由主裝置發起的資料讀取動作,被選定的從屬裝置藉由輸出其控制器緩衝器(controller buffer)的資料封包,並且使得輸出的資料封包(packet)與資料選通訊號(data strobe signal)的上升緣(raising edge)或下降緣(falling edge)同步(資料選通訊號也是由附屬裝置所驅動),來控制資料傳輸動作。從屬裝置也驅動資料選通訊號。在從屬裝置內,指定資料(designated data)係由從屬裝置的記憶體被讀取,並暫存(temporarily stored)於從屬裝置的控制器緩衝 器,以透過xSPI介面來讓主裝置讀取資料。藉由這種配置,當從屬裝置的控制器緩衝器已經填滿(即指定資料的大小超過控制器緩衝器的大小,且控制器緩衝器達到容量限制(capacity limit))時,針對主裝置之資料讀取要求,從屬裝置傳送資料封包至主裝置。或者,當指定資料的大小係小於控制器緩衝器的大小,但所有的指定資料已經從從屬裝置的記憶體累積於控制器緩衝器時,從屬裝置也傳送資料封包至主裝置。然而,在這種情況下,在資料傳輸期間,若從屬裝置處於忙碌的話,則xSPI規格不支援連續資料讀取動作。
資料選通訊號係由從屬裝置輸出,從屬裝置用以指示主裝置,從屬裝置正進行連續資料讀取動作。當從屬裝置準備好進行資料傳輸,並且從屬裝置的控制器緩衝器已被指定資料填滿,或指定資料已累積於從屬裝置的控制器緩衝器時,控制器輸出為交替的形式(alternating)的資料選通訊號至資料選通訊號線。藉由將輸出資料封包的邊緣對齊(edge aligning)於資料選通訊號,使得從屬裝置透過xSPI介面來輸出資料封包。從屬裝置藉由這種配置,將具有交替形式的資料選通訊號透過xSPI介面傳送至主裝置,用以向主裝置指示從屬裝置已準備好進行資料讀取動作。另一方面,當從屬裝置尚未準備就緒,或是指定資料並未完全地累積(fully accumulated)於從屬裝置的控制器緩衝器時,控制器可輸出持續的低位準訊號(consistently low signal)至資料選通訊號線。持續 的低位準訊號係傳送至主裝置,主裝置可將持續的低位準訊號解讀成指示從屬裝置仍處於忙碌中。
依據接收到的資料選通訊號,主裝置用以決定對應的資料讀取。例如,當接收到的資料選通訊號為交替的形式時,主裝置解讀為從屬裝置正執行資料傳輸。因此,主裝置讀取xSPI匯流排上傳送的資料,並且主裝置將接收到的資料儲存於主裝置的記憶體。另一方面,當接收到的資料選通訊號為恆定值(constant)(例如持續的低位準形式)時,主裝置解讀為從屬裝置處於忙碌中,並且從屬裝置不會執行資料傳輸。因此,主裝置可暫停或中斷透過xSPI介面的資料輸入/輸出訊號線的資料接收,並且主裝置暫存從屬裝置的資料儲存位址(data storing address)。在一些實施方式中,當從屬裝置指示了從屬裝置為忙碌時,主裝置可執行其他動作。例如,回應於從屬裝置處於忙碌中之指示,主裝置可取消選擇(de-select)此從屬裝置,並選擇另一個從屬裝置,以透過xSPI介面的資料輸入/輸出訊號線來進行另一個從屬裝置的資料讀取/寫入動作。
在本揭露中,從屬裝置藉由監測(monitor)透過xSPI匯流排傳輸的資料,來確定從屬裝置之資料讀取動作的狀態。例如,從屬裝置可使用嵌入式計數器(embedded counter)來監測控制器緩衝器的總儲存量(total capacity)的多少比例已經輸出。若比例之值等於或大於預設值,則從屬裝置針對資料傳輸,決定將從屬裝置從準備就緒狀態(ready)變更為忙碌狀態(busy)。在另一個示例 中,從屬裝置監測從控制器緩衝器傳送出來的資料封包的數量。當一個最後的資料封包(last data packet)已透過xSPI介面輸出時,則從屬裝置針對資料傳輸,決定將從屬裝置從準備就緒狀態變更為忙碌狀態。
第1圖繪示使用xSPI介面之系統100的一示例。系統100包括一個或多個從屬裝置110~110n與主裝置120。符合xSPI規格的主裝置120包括記憶體122,記憶體122用於儲存資料。主裝置120還包括緩衝器124,緩衝器124用以接收來自主裝置120外部的資料,並且緩衝器124將接收到的資料轉移至主裝置120的記憶體122。此外,主裝置120包括多個輸入接腳(pin)(未繪示),輸入接腳用以耦接至一xSPI介面。主裝置120還包括一處理器(未繪示),用以透過xSPI介面,以從多個從屬裝置中選擇一個從屬裝置。處理器更用以傳送指令資料至所選定的從屬裝置,以進行資料讀取。處理器更可透過xSPI介面來接收所選定的從屬裝置的資料,並接收xSPI介面的一資料選通訊號線的一訊號,並依據所接收之訊號來決定資料讀取動作。符合xSPI規格的從屬裝置110~110n之各者可包括裝置控制器112及記憶體116(例如從屬裝置110n包括裝置控制器112n及記憶體116n)。裝置控制器112包括一處理器113及一內部記憶體114(例如裝置控制器112n包括一處理器113n及一內部記憶體114n)。內部記憶體114可作為裝置控制器112的控制器緩衝器。記憶體116用以儲存資料。處理器113用以控制從屬裝置110的資料讀取。內部記憶體114連接至處理器113,並且內部記憶體114用以接收來自記憶體116的資料,並儲 存此資料。內部記憶體114更用以於一xSPI介面輸出此資料。其中內部記憶體114用以基於確定從屬裝置110已準備好進行資料傳輸,並且內部記憶體114已經填滿,來輸出此資料。裝置控制器112更可包括一計數器(未繪示於第1圖中),計數器連接至處理器與內部記憶體114,並且計數器用以監測從內部記憶體114至xSPI介面的資料傳輸。其中處理器依據計數器的監測結果來確定從屬裝置110是否準備好進行資料傳輸。
在一些實施方式中,從屬裝置110~110n是記憶體裝置。例如,從屬裝置110可以是嵌入式多媒體卡(embedded multimedia card,eMMC)、安全數位卡(secure digital,SD card)、固態硬碟(solid-state drive,SSD)、快閃記憶卡(flash memory card)、動態隨機存取(dynamic random-access)記憶卡(DDR或SDRAM)或其他合適的儲存器。在一些實施方式中,從屬裝置110是智慧型手錶(smart watch)、數位相機(digital camera)或媒體播放器(media player)。在一些實施方式中,從屬裝置110是主裝置(例如主裝置120)選擇的從屬裝置。
記憶體裝置系統100具有主多從匯流排拓撲,主多從匯流排拓撲具有xSPI匯流排105,xSPI匯流排105使主裝置120與一或多個從屬裝置110~110n進行通訊。
裝置控制器112是一般用途微處理器(general-purpose microprocessor)或特殊應用微控制器(application-specific microcontroller)。在一些實施方式中,裝置控制器112是從屬裝置110 的記憶體控制器。以下部分依據裝置控制器112為記憶體控制器的實施方式來描述各種技術。然而,以下部分的所述技術也適用於裝置控制器112為另一種類型之控制器的實施方式。
處理器113用以執行指令和處理資料。指令包括韌體(firmware)指令和/或其他程式(program)指令,韌體指令與程式指令分別作為韌體碼(code)和/或其他程式碼而儲存於次要(secondary)記憶體中。在其他合適的資料中,資料包括程式資料,程式資料對應於韌體和/或其他處理器執行的程式。在一些實施方式中,處理器113是一般用途微處理器或特殊應用微控制器。處理器113也稱為中央處理單元(Central Processing Unit,CPU)。
處理器113從內部記憶體114存取指令與資料。內部記憶體114作為裝置控制器112的控制器緩衝器。在一些實施方式中,內部記憶體114是靜態隨機存取記憶體(Static Random Access Memory,SRAM)或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。例如,在一些實施方式中,當從屬裝置110是eMMC、SD卡或智慧型手錶時,內部記憶體114是SRAM。在一些實施方式中,當從屬裝置110是數位相機或媒體播放器時,內部記憶體114是DRAM。在一些實施方式中,如第1圖所示,內部記憶體114是快取(cache)記憶體,快取記憶體包含於裝置控制器112中。在運行期間,內部記憶體114儲存指令碼和/或資料,指令碼對應於處理器113執行之指令,而資料為處理器113請求之資料。
裝置控制器112將指令碼和/或資料從記憶體116轉移至內部記憶體114。在一些實施方式中,記憶體116是非揮發性記憶體(例如,NAND或NOR快閃記憶體裝置,或一些其他合適的非揮發性記憶體裝置),非揮發性記憶體用於指令和/或資料的長期儲存(long-term storage)。在記憶體116為NAND或NOR快閃記憶體的實施方式中,從屬裝置110是快閃記憶體裝置(例如,快閃記憶卡),並且裝置控制器112是NAND或NOR快閃控制器。例如,在一些實施方式中,當從屬裝置110是eMMC或SD卡時,記憶體116是NAND或NOR快閃記憶體。在一些實施方式中,當從屬裝置110是數位相機時,記憶體116是SD卡。在一些實施方式中,當從屬裝置110是媒體播放器時,記憶體116是硬碟。
如前述,xSPI匯流排105為串列同步通訊匯流排,串列同步通訊匯流排係針對主裝置120與從屬裝置110~110n之間的通訊與互連來進行開發。xSPI匯流排105支援主多從匯流排拓撲,主多從匯流排拓撲具有同步時脈訊號,同步時脈訊號係由記憶體裝置系統的主裝置120所提供。xSPI匯流排105還支援24位元與32位元定址、用於DDR裝置的資料讀取與寫入、以及多線介面。
第2圖繪示系統200之示例,系統200包括一主裝置與一從屬裝置,主裝置與從屬裝置透過第1圖所述的xSPI介面來進行通訊。系統200包括主裝置210、從屬裝置220以及4線(4-wire)串列匯流排,4線串列匯流排位於主裝置210與從屬裝置220之 間。主裝置210與從屬裝置220分別可由第1圖所示的主裝置120以及從屬裝置110~110n的其中之一來提供。
此示例中,系統200的xSPI介面提供以同步全雙工主從(full duplex master-slave)為基礎的通訊,包括時脈訊號線230上的時脈訊號CK、晶片選擇訊號線(chip select line)240上的晶片選擇訊號CS、資料輸入/輸出訊號線250上的資料I/O[7:0]、以及資料選通訊號線260上的資料選通訊號DS。主裝置210包括多個接腳,多個接腳係用以耦接至xSPI匯流排。例如,連接至時脈訊號線230、晶片選擇訊號線240、資料輸入/輸出訊號線250、以及資料選通訊號線260的接腳。類似地,從屬裝置220包括多個接腳,多個接腳係用以耦接至xSPI匯流排,例如,連接至時脈訊號線230、晶片選擇訊號線240、資料輸入/輸出訊號線250、以及資料選通訊號線260的接腳。
在此示例中,主裝置210產生時脈訊號CK,並且主裝置210透過xSPI匯流排傳送時脈訊號CK至從屬裝置220。主裝置210也產生晶片選擇訊號CS,晶片選擇訊號CS用於選擇從屬裝置220以進行操作。一般來說,晶片選擇訊號CS為低位準致能(active low)。當晶片選擇訊號CS的位準被拉高(pulled high)時,將會中斷從屬裝置220與主裝置210之間的通訊。資料輸入/輸出訊號線250係用於主裝置210與從屬裝置220之間的資料傳輸。資料輸入/輸出訊號線250係具有特定字符長度(certain word length)(例如具有8位元字符)。主裝置210與從屬裝置220之間的傳輸資料係與主裝置210 所產生的時脈訊號CK同步。在此示例中,資料選通訊號線260例如是雙向(bi-directional)資料選通訊號線,雙向資料選通訊號線透過xSPI介面來進行高速操作。例如,資料選通訊號DS可同步於傳輸之資料I/O[7:0]與時脈訊號CK,用於主裝置210與從屬裝置220之間的資料讀取或寫入動作。
為了透過xSPI介面來開始通訊,主裝置210透過時脈訊號線230來傳送時脈訊號CK,並藉由致能(enabling)晶片選擇訊號線240上的晶片選擇訊號CS,來選擇從屬裝置220。晶片選擇訊號CS可以是低位準致能(active low),故主裝置210傳送邏輯零(logic zero)訊號以選擇從屬裝置220。在此示例中,xSPI介面是一個全雙工介面,主裝置210與從屬裝置220都可在同一時間透過資料輸入/輸出訊號線250來傳送資料。在每個時脈週期(cycle)內,產生全雙工資料傳輸。例如,主裝置210傳送一位元資料至資料輸入/輸出訊號線250,並且從屬裝置220讀取此一位元資料,而同時從屬裝置220傳送一位元資料至資料輸入/輸出訊號線250,並且主裝置210讀取此一位元資料。即使僅欲單向(one-directional)傳送資料,也可維持此傳送順序。在此示例中,可在任何數量的時脈週期內,持續資料傳輸之動作。當完成資料傳輸時,主裝置210停止時脈訊號CK之高低位準交替變化(alternating)的狀態。主裝置210此時通常也會取消選擇從屬裝置220。
第3圖繪示系統300之示例,此系統300包括透過第1圖所述的xSPI介面來進行通訊之一主多從記憶體裝置拓樸。在此 示例中,單一主裝置310以常規模式(regular mode)來連接至多個從屬裝置320與330。主裝置310提供兩個晶片選擇訊號CS0與CS1,晶片選擇訊號CS0與CS1分別傳送至從屬裝置320與330。利用這種配置,主裝置310每次僅使一個晶片選擇訊號致能(assert)。例如,主裝置310可僅藉由致能晶片選擇訊號CS0與CS1的其中之一,以選擇從屬裝置320與330的其中之一。在一些實施方式中,在晶片選擇訊號線之間,系統300可使用上拉電阻(pull-up resistor)將電位準提升為高位準,其中主裝置的晶片選擇接腳(chip select pin)預設(default)為未定義狀態。當主裝置與多個從屬裝置的其中之一進行通訊時,上拉電阻會防止其他未初始化(uninitialized)的從屬裝置進行回應。
在系統300中,xSPI介面包括由主裝置310驅動之時脈訊號線(連接至接腳CK1),時脈訊號線係連接至每個從屬裝置320與330。如第3圖所示,透過資料輸入/輸出訊號線(連接至接腳IO1[7:0])來進行主裝置310與從屬裝置320或330之間的資料傳輸。由於從屬裝置320與330的資料輸入/輸出接腳IO2[7:0]與IO3[7:0]透過資料輸入/輸出訊號線而連在一起,故資料輸入/輸出訊號線需提供三態(tri-state)(即高電位狀態、低電位狀態或高阻抗(high-impendence)狀態)。其中,當從屬裝置320或330未被主裝置310選擇時,必須對未被選擇的從屬裝置320或330所對應的資料輸入/輸出訊號接腳IO2[7:0]或IO3[7:0]提供高阻抗狀態。資料輸入/輸 出訊號線可具有用於資料傳輸之特定頻寬(bandwidth)(例如8位元字符)。
在系統300中,從屬裝置320與330的資料輸入/輸出接腳IO2[7:0]與IO3[7:0]連接至主裝置310的資料輸入/輸出接腳IO1[7:0]。一旦主裝置310致能晶片選擇訊號(連接至接腳CS0或CS1),則時脈訊號與資料輸入/輸出訊號線上的資料可由被選定的從屬裝置使用。如果多個晶片選擇訊號同時被致能,則主裝置310無法辨識要進行資料傳輸之從屬裝置,且資料輸入/輸出訊號線上的資料會損壞(corrupted)。
請再參照第3圖,系統300使用資料選通訊號線來進行高速操作。在此示例中,xSPI介面實現雙向傳輸之資料選通訊號,以對從屬裝置320與330執行資料讀取與資料寫入動作二者。資料選通訊號可藉由一延遲(例如,90度)來相對於時脈訊號具有相位平移(phase shifted)。在此示例中,當讀取從屬裝置320與330的其中之一的資料時,傳送給主裝置310的資料會依據資料選通訊號進行邊緣對齊。替代地,對於主裝置310傳送至從屬裝置320與330的其中之一的傳輸資料,傳輸資料的資料週期的中心點會對齊(center aligned)於時脈訊號的邊緣。對於透過第3圖的xSPI介面進行的高速通訊,主裝置與多個從屬裝置的每一者包括輸入/輸出緩衝器的供應電壓輸出VDD以及資料儲存暫存器(register)的電壓供應輸出VDDQ。此外,主裝置與多個從屬裝置的每一者還分別包 括輸入/輸出緩衝器及資料儲存暫存器的接地參考接腳(ground reference pin)VSS及VSSQ
在一些實施方式中,系統300可包括兩個以上的從屬裝置,故可增加主裝置310的晶片選擇訊號線的數量。這樣的作法會需要增加主裝置310的輸入端的數量與輸出端的數量,並且會限制使用於系統300之從屬裝置的數量。在第3圖所述的常規模式中,可使用不同技術來增加從屬裝置的數量。例如,搭配多工器(multiplexer),以產生晶片選擇訊號。在一些實施方式中,系統300可以菊鏈配置(daisy-chained configuration)來進行設置,其中第一個從屬裝置320的資料輸出端係連接至第二個從屬裝置330的資料輸入端。從屬裝置的整個鏈可作為資料平移暫存器,以透過xSPI介面來提供一組資料輸入或資料輸出。
第4圖繪示第1圖的記憶體系統100之從屬裝置110之示例。如第4圖所示,從屬裝置110包括多工器115與計數器119,多工器115與計數器119都可視為從屬裝置110的裝置控制器112的一部分。計數器119可為暫存器,暫存器設計為在從屬裝置110中實施計數。計數器119連接至處理器113與內部記憶體114。計數器119用以接收來自處理器113的計數訊號(counting signal),並且計數器119將計數結果經由內部記憶體114傳回處理器113。例如,每當計數器119接收計數訊號時,計數器119可遞增(incremented)或遞減(decremented)。計數器119還可用以監測內部記憶體114的資料輸出與輸入。如第1圖所示,對於從屬裝置110與主裝置120之 間的資料傳輸動作,隨著每個資料傳送指令被擷取,計數器119將其儲存的數值增加1。在此示例中,從屬裝置110包括記憶體116,記憶體116儲存資料,記憶體116與裝置控制器112交換資料。記憶體116可以是非揮發性記憶體。
多工器115連接至處理器113,以接收動作指令與資料訊號。在此示例中,多工器115可以是資料選擇器,資料選擇器依據一或多個選擇線訊號,以選擇多個輸入訊號的其中之一。選擇線用於選擇哪一個輸入被重製以作為輸出。選擇線訊號可來自處理器113。多工器115可依據從屬裝置110的一些條件邏輯(conditional logic),以用於傳遞對應訊號。例如,依據內部記憶體114的資料儲存狀態,多工器115可用以選擇多個輸入訊號的其中之一,以作為輸出(例如,多工器115可輸出資料選通訊號)。被選擇的輸入訊號係從屬裝置110輸出至主裝置120,以進行資料傳輸動作。之後的第7圖提供了關於多工器115之示例的配置與設置的詳細描述。
在此示例中,內部記憶體114作為裝置控制器112的緩衝器,以進行資料傳輸動作。例如,對於從主裝置120至從屬裝置110的資料寫入,裝置控制器112接收傳輸資料,並且裝置控制器112暫存資料至內部記憶體114。一旦緩衝器已經累積欲傳輸之資料或是緩衝器已經填滿,則處理器113執行將儲存之資料傳送至從屬裝置110的記憶體116。對於由從屬裝置110至主裝置120的資料讀取動作,從屬裝置110驅動資料傳輸。在這種情況下, 處理器113首先執行將記憶體116的傳輸資料轉存到裝置控制器112的內部記憶體114之動作。除非內部記憶體114已經存滿,否則由從屬裝置110至主裝置120的資料傳輸不會開始進行。一般來說,內部記憶體114的記憶容量(memory capacity)等於記憶體116的一個頁面(page)的容量。在各種示例中,內部記憶體114的記憶容量可小於或大於記憶體116的一個頁面之容量。對於大於內部記憶體114大小的傳輸資料,處理器113多次重複從記憶體116至內部記憶體114的資料轉存(data pulling),直到將所有的指定(designated)資料傳送至主裝置120為止。
在此示例中,從屬裝置110控制由從屬裝置110至主裝置120的資料傳輸,特別是由從屬裝置110的裝置控制器112控制從屬裝置110至主裝置120的資料傳輸。透過主裝置120選擇從屬裝置110以進行資料讀取之後,裝置控制器112讀取記憶體116的資料,並且裝置控制器112儲存記憶體116的資料於裝置控制器112的緩衝器(例如內部記憶體114)。由於xSPI介面的配置,從屬裝置110並未開始輸出資料,除非從屬裝置110的控制器緩衝器(例如內部記憶體114)已經填滿。當內部記憶體114中的儲存資料全部輸出時,系統100暫停或中斷資料傳輸。在這種情況下,從屬裝置110的裝置控制器112繼續讀取記憶體116的資料,並且裝置控制器112儲存記憶體116的資料至內部記憶體114。在此期間,當從記憶體116讀取的資料累積於內部記憶體114時,再次啟動從屬裝置110至主裝置120的資料傳輸。系統100與從屬裝置110透過 xSPI介面來分別重複進行資料之傳輸,以及記憶體116至內部記憶體114的資料讀取,直到所有的指定資料從從屬裝置110傳輸至主裝置120為止。在這種情況下,當記憶體116的資料讀取至內部記憶體114時,從屬裝置110可能會具有較長的忙碌時間(busy period)。此忙碌時間可能會產生記憶體116(例如,NAND快閃記憶體)的存取瓶頸(bottleneck of accessing),其中忙碌時間包括感測期間與頁面存取期間。感測期間與頁面存取時間會導致NAND快閃記憶體的每個頁面上的隨機資料存取的延遲更高。
第5圖繪示資料輸入/輸出訊號線上傳輸之訊號的簡化後之資料結構500。首先,主裝置120透過xSPI匯流排的資料輸入/輸出訊號線來傳送控制資料至從屬裝置110,控制資料包括命令與位址資料。如第5圖所示,控制資料包括具有位址資訊之命令區段510。如果從屬裝置是快閃記憶體裝置,則命令區段510可包括來源設定(source setup)、目的地設定(destination setup)、資料轉移或快閃編程(flash programming)的資訊。控制資料可以一個命令和位址字符(address word)或一系列之命令和位址字符來實施。在此示例中,主裝置傳送命令和位址資料至選定的從屬裝置。命令和位址資料可包括依序排列(arranged in sequence)的命令週期、來源位址週期以及目標位址週期。命令週期可包括一或多個數位值(digital value),此數位值以一或多個位元組(byte)的形式來指定從屬記憶體裝置與主記憶體裝置。來源位址週期可包括將由從屬記憶體裝置讀取之資料的位址資訊。目標位址週期可包括將寫入至主 記憶體裝置之資料的位址資訊。來源位址週期或目標位址週期可相應地包括多個位元組(例如3個位元組或4個位元組)。示例性的資料結構500還包括忙碌區段(busy section)520或虛擬(dummy)週期(DMY週期),忙碌區段520或虛擬週期依序地排列在命令區段510之後。對於資料讀取動作,從屬裝置決定資料結構500的忙碌區段520,以允許選定之從屬裝置準備好進行資料傳輸。在一些實施方式中,在忙碌區段520或虛擬週期的期間,xSPI介面的資料輸入/輸出訊號線上沒有傳輸資料或訊號。
簡化的資料結構500還包括資料區段530。在資料區段530期間,從屬記憶體裝置讀取資料,並在xSPI介面的共享的資料輸入/輸出訊號線上傳送封包形式的資料,以進行資料傳輸。在此期間,主裝置使晶片選擇訊號致能,以選擇從屬裝置。在此示例中,命令資料可指定資料長度,資料長度等於轉移至內部記憶體114的記憶容量。資料傳輸持續進行,直到主裝置使晶片選擇訊號非致能(dis-asserted)以取消選擇某一從屬裝置為止,或是直到所選擇的從屬裝置變更其狀態而無法進行資料傳輸為止。
為了符合xSPI介面的資料通訊需求,資料讀取的起始位址係設定為從屬裝置的NAND快閃記憶體的頁面起始位址。如簡化後的資料結構500所示,在命令區段510中,主裝置120可傳送起始位址。起始位址可包括從屬裝置的記憶體的邏輯區塊位址(Logical Block Address,LBA),以用於資料讀取動作。因此,被選定的從屬裝置將接收到的邏輯區塊位址轉換為被選定之從 屬裝置的記憶體116的實體區塊位址(Physical Block Address,PBA)。從屬裝置可包括一表格,此表格用以將邏輯區塊位址映射(map)至實體區塊位址。如前文所述,記憶體116可以是NAND快閃記憶體,並且記憶體116具有例如是2KB的頁面大小。在此示例中,被選定之從屬裝置可分別映射邏輯區塊位址0~0x7FF與邏輯區塊位址0x800~0xFFF至NAND快閃記憶體(即記憶體116)的頁面0與頁面1。因此,資料區段530包括從起始位址(例如0或0x800)的資料,以用於NAND快閃記憶體之頁面的資料讀取。在這種方式中,在資料傳輸開始之後,指定資料係連續地由從屬裝置輸出至主裝置。為了符合xSPI規格,主裝置與從屬裝置之間的待傳輸資料通常會先移出最高有效位元(the most significant bit)。例如,藉由將儲存於從屬裝置的控制器緩衝器的最高有效位元移出並傳送至主裝置,以開始進行資料傳輸。在這方面,於資料讀取期間,在資料區段530中,儲存於控制器緩衝器的最後位址(last address)的資料有可能因主裝置讀取,而最先被傳送至主裝置。此外,如第5圖所示,資料區段530包括用於資料傳輸之NAND快閃記憶體的一頁資料。也就是說,在資料區段530中,具有NAND快閃記憶體之頁面的資料讀取結束位址(data reading end address)的資料將第一個被傳送,而具有NAND快閃記憶體頁面的資料讀取之起始位址(data reading start address)的資料將最後從控制器緩衝器傳送至主裝置。
在一些實施方式中,資料結構500中的資料區段 530包括非為NAND記憶體的頁面起始位址的資料讀取之起始位址,指定資料係儲存於NAND記憶體的單一頁面。在這種情況下,從屬裝置之記憶體的資料讀取動作係由NAND記憶體的特定頁面的資料讀取之起始位址開始進行,並結束於頁面的尾端。在一些實施方式中,主裝置傳送具有多個資料讀取之起始位址之多個命令區段510至從屬裝置,以用於資料讀取動作。例如,當資料讀取之起始位址不是NAND記憶體頁面的起始位址,並且指定資料連續儲存於接續的NAND記憶體頁面時,主裝置將分別傳送具有特定NAND記憶體頁面的資料讀取之起始位址的多個資料結構500以及接續之NAND記憶體頁面的起始位址的多個資料結構500。在這種方式中,回應於接收到的多個命令區段510,被選定的從屬裝置透過xSPI介面分別將多個資料區段530傳回主裝置,其中每個資料區段包括有儲存於NAND記憶體的一個頁面的指定資料。
在一些實施方式中,當指定資料溢出(overflow)控制器緩衝器時,主裝置傳送單一命令區段510至從屬裝置,以進行資料讀取動作。也就是說,主裝置傳送指定之資料讀取之起始位址至從屬裝置。被選定的從屬裝置接收命令,並且被選定的從屬裝置累積從記憶體傳送至控制器緩衝器的資料,直到控制器緩衝器已經填滿為止。在此期間,從屬裝置驅動資料選通訊號,使其表示此從屬裝置為忙碌狀態。一旦控制器緩衝器已經填滿,則從屬裝置改變資料選通訊號,使其呈現從屬裝置為資料準備就緒狀 態,並且從屬裝置開始透過xSPI介面傳送資料至主裝置。替代地,控制器緩衝器累積來自記憶體的資料,直到所儲存的資料達到預定閾值(pre-determined threshold)為止。例如,控制緩衝區將256MB配置為資料儲存的閾值,以觸發(trigger)主裝置與從屬裝置之間的資料傳輸。一旦累積於控制器緩衝器的記憶體資料達到或超過256MB,則從屬裝置藉由改變資料選通訊號,以使其呈現從屬裝置為資料準備就緒狀態,並且從屬裝置開始資料傳輸。當控制器緩衝器的資料傳輸完成時,從屬裝置將其狀態改回忙碌狀態,並且從屬裝置相應地調整資料選通訊號,以進行NAND記憶體的下一頁面至控制器緩衝器的資料轉移。從屬裝置重複上述之疊代(iteration)動作,直到所有的指定資料從從屬裝置傳輸至主裝置為止。
第6圖繪示依據本揭露的實施例之主裝置讀取從屬裝置之資料的時序圖600。在此實施例中,主裝置與從屬裝置可分別是第1圖所示之主裝置120以及其中一個從屬裝置(例如,從屬裝置110)。時序圖600示出了將從屬裝置110的資料讀取至主裝置120時所使用的波形(waveform)之一示例。如第6圖所示,時序圖600包括資料讀取動作的三個階段(phase),三個階段包括:(1)命令和位址階段;(2)虛擬週期階段;(3)資料階段。這三個階段串列排列(arranged in series),以完成從屬裝置110至主裝置120的資料傳輸。這三個階段還分別對應於第5圖所描述的命令區段510、忙碌區段520與資料區段530。
在此示例中,為了選擇系統100的其中一個從屬裝置,主裝置120提高相對應之晶片選擇訊號線的電阻大小,以致能晶片選擇訊號。一旦選擇了從屬裝置,則主裝置120驅動之時脈訊號開始傳輸至時脈訊號線,並且由選定的從屬裝置接收時脈訊號。此外,主裝置120開始透過xSPI介面的資料輸入/輸出訊號線來傳送以串列資料形式(form of serial data)傳送的指令資料至選定的從屬裝置。在此示例中,如先前第5圖所述,指令資料包括8位元命令包(command package)、8位元延伸包(extension package)與32位元位址包,這些係為串列排列,並在命令和位址階段,透過資料輸入/輸出訊號線來傳送至從屬裝置。在此期間,從屬裝置110驅動的資料選通訊號不會被致能,並且資料選通訊號線可處於高阻抗狀態。如第6圖所示,當晶片選擇訊號CS設定為低位準時,時序脈衝(timing pulse)依序輸出至時脈訊號線。從屬裝置110的輸入接腳開始接收8位元命令指令、8位元延伸指令、與32位元位址資料,32位元位址資料為從屬裝置110將讀取之資料的初始位址。
一旦指令資料傳輸完成,則開始進入虛擬週期階段以作為緩衝。在此示例中,從屬裝置(例如從屬裝置110)決定虛擬週期,以允許指令資料傳遞至從屬裝置110,並且使從屬裝置110準備好進行資料轉移。在第6圖所示的特定實施例中,提供了第1至N個時脈週期的虛擬週期範圍。在虛擬週期期間,從屬裝置110依據接收到的指令資料來準備要傳輸至主裝置120的指定資 料。例如,一旦接收到主裝置120的資料讀取指令,則從屬裝置110開始將其記憶體116的資料讀取至第4圖所示之從屬裝置110的內部記憶體114。
在此示例中,指定資料可儲存於記憶體116的多個頁面。透過這種配置,從屬裝置110的裝置控制器112從記憶體116之頁面的起始位址開始讀取資料,並且裝置控制器112相對應地儲存此資料至內部記憶體114。在此示例中,內部記憶體114設計為與記憶體116的一頁相同之記憶容量。內部記憶體114連續儲存了於記憶體116的頁面上讀取的資料,直到在時間點T1時內部記憶體114已經填滿為止。在時間點T1時,虛擬週期階段結束,這指示了從屬裝置110準備好進行資料傳輸。
在時間點T1時,從屬裝置110決定進入「資料準備就緒」狀態,並且從屬裝置110開始轉移資料至xSPI介面的資料輸入/輸出訊號線。在資料傳輸期間,資料選通訊號DS係為交替的形式(亦即是高位準與低位準持續切換的訊號形式)。指定資料係以串列資料封包(a series of data packets)的形式由從屬裝置110的內部記憶體114發出。每個資料封包的大小可等於資料輸入/輸出訊號線的頻寬,例如8位元字符。在此示例中,輸出的資料封包D0~D3係邊緣對齊於資料選通訊號DS,以透過xSPI介面進行高速操作。
在資料傳輸開始之後的一特定時點,從屬裝置110確定其尚未準備好進行一連續資料讀取,故將資料選通訊號DS 改變為持續的低位準形式,使得從屬裝置110透過xSPI介面暫停或中斷資料轉移。在此示例中,在時間點T2時,從屬裝置110可確定其內部記憶體114所儲存之資料的某個比例(例如,此比例的值例如是位於70%至75%的範圍內)之儲存資料已經輸出至xSPI介面的資料輸入/輸出訊號線。依據此判定,當從屬裝置110之內部記憶體114的進行中的資料轉移完成之後,則從屬裝置110將輸出至資料選通訊號線上之資料選通訊號DS從交替形式的資料選通訊號改變為持續的低位準形式的資料選通訊號DS,並且從屬裝置110讓從屬裝置110的資料輸出接腳轉為高阻抗狀態。在一些其他示例中,在時間點T2時,從屬裝置110可確定最後的資料封包透過xSPI介面從內部記憶體114輸出至主裝置120。因此,在最後的資料封包的傳輸完成之後,藉由使資料選通訊號DS維持於持續的低位準形式,使得從屬裝置110接著暫停或中斷資料傳輸。
如第6圖所示,一旦資料傳輸開始,則晶片選擇訊號CS維持致能,並且維持為交替形式的時脈訊號CK。晶片選擇訊號CS與時脈訊號CK不受上述操作的影響。
在此示例中,從屬裝置110可使用計數器119來監測控制器緩衝器中之已轉移之資料的數量,或已轉移之資料封包的序數(ordinal number)。如先前第4圖所述,在時間點T2時,為了使處理器113做出從屬裝置110不再準備就緒(即從屬裝置110處於忙碌)的判定,計數器119可監測自從屬裝置110輸出之傳輸 資料,並且計數器119反饋(feedback)監測結果至處理器113。
在此示例中,為了提供從屬裝置110處於忙碌且尚未準備好進行連續資料傳輸的通知,從屬裝置110透過xSPI介面來傳送為持續的低位準形式的資料選通訊號(例如是持續為邏輯零之形式的資料選通訊號)至主裝置120。如前文所述,從屬裝置110輸出暫存於從屬裝置110的內部記憶體114中,用於資料傳輸的資料。裝置控制器112控制內部記憶體114,以從記憶體116之頁面的起始位址讀取與儲存指定資料。在此示例中,內部記憶體114一直忙於讀取與儲存資料,直到內部記憶體114已經填滿為止。其中當內部記憶體114已經填滿時,從屬裝置110改變從屬裝置110的狀態為準備好進行資料輸出(ready for data output)的狀態。在時間點T2時,從屬裝置110決定新一輪的資料讀取,從屬裝置110將開始從儲存記憶體116的下一頁之起始位址連續儲存所指定之資料。因此,一旦完成正在進行的資料傳輸,則主裝置120暫停或中斷接收來自從屬裝置110的資料。
在各個示例中,在暫停或中斷接收資料之後,主裝置120可暫存一資料寫入位址。對於從屬裝置110來說,在時間點T3時,一旦從屬裝置110的內部記憶體114被從記憶體116讀取之指定資料再次填滿,則將資料選通訊號DS從持續的低位準形式改變為交替的形式,以重新繼續資料傳輸。同時,內部記憶體114開始輸出資料封包(例如資料封包D4~Dn),其中這些資料封包同步於資料選通訊號DS的上升緣或下降緣。此時,主裝 置120繼續接收從屬裝置110的資料,並且主裝置120讀取暫存的資料寫入位址,以繼續將接收到的資料儲存於主裝置120的記憶體。
如上文所述,在時間點T1至時間點T2,從屬裝置110從其內部記憶體114輸出資料。在時間點T2至時間點T3,從屬裝置110將記憶體116的資料轉移至從屬裝置110的內部記憶體114。在時間點T3之後,從屬裝置110重複描述於時間點T1至時間點T3的操作,直到從屬裝置110的所有指定資料轉移至主裝置120。
第7圖繪示提供了第6圖所述的資料選通訊號DS控制之系統700之示例。系統700簡化為包括主裝置710與從屬裝置720。在一些其他示例中,系統700可包括一個主裝置與多個從屬裝置,以形成一主多從裝置拓撲。在此示例中,主裝置710選擇從屬裝置720,以進行資料傳輸。主裝置710輸出時脈訊號CK至時脈訊號線740,並且從屬裝置720接收時脈訊號CK。如第7圖所示,從屬裝置720包括多工器730,多工器730用以產生資料選通訊號DS且於xSPI介面的資料選通訊號線750上輸出資料選通訊號DS。如先前於第4圖中所述,可透過裝置控制器112內的多工器115來提供多工器730。在此示例中,多工器730包括兩個輸入接腳,兩個輸入接腳分別連接至時脈訊號線740與零線760,零線760承載一個位元之零訊號(1b’0)。多工器730的時脈訊號輸入接腳可與從屬裝置720的時脈訊號輸入接腳連接, 並且藉由拴鎖器(latch)使得從屬裝置720的時脈訊號轉移至多工器730。從屬裝置720的處理器或內部記憶體可提供一個位元之零訊號之輸入。
在此示例中,多工器730依據選擇接腳770來選擇其中一個輸入訊號,選擇接腳770指示從屬裝置720的內部記憶體的資料是否準備就緒。在系統700以及本揭露前述的其他類似系統中,內部記憶體作為從屬裝置的控制器緩衝器,並且內部記憶體用以暫存傳送進來的資料,或者暫存自從屬裝置的記憶體傳送出去的資料。在讀取從屬裝置的資料之示例中,從屬裝置的內部記憶體或控制器緩衝器尚未準備好進行資料傳輸,直到控制器緩衝器已累積將被傳輸的資料,並且控制器緩衝器已經填滿為止。如第7圖所示,多工器的選擇接腳770連接至從屬裝置的處理器(例如,第4圖所示的處理器113),並且選擇接腳770提供選擇訊號,選擇訊號指示從屬裝置的資料是否準備就緒。
當從屬裝置的內部記憶體已經填滿時,多工器730的選擇接腳770接收來自處理器(例如,處理器113)的高位準訊號HL,高位準訊號HL指示「資料準備就緒」。因此,多工器730選擇時脈訊號輸入作為資料選通訊號DS而輸出。如第6圖所示,在這種情況下,資料選通訊號DS藉由拴鎖器來與時脈訊號同步。另一方面,當內部記憶體未填滿時,多工器730的選擇接收邏輯零訊號LZ之接腳,邏輯零訊號LZ指示「資料尚未準備就緒」。在這種情況下,多工器730選擇一個位元之零訊號(1b’0)作為輸 入,並且多工器730輸出持續的邏輯零訊號以作為資料選通訊號。
在此系統700中,依據內部記憶體(例如,內部記憶體114)的狀態,從屬裝置720使用多工器730,以輸出資料選通訊號DS至主裝置710。特別地,如第6圖所述的時間點T2,一旦從屬裝置的內部記憶體從「資料準備就緒」狀態改變為「資料尚未準備就緒」狀態,則資料選通訊號DS從交替的形式改變為持續的低位準形式。如第6圖所述的時間點T3所示,一旦內部記憶體的狀態變回「資料準備就緒」,則資料選通訊號DS從持續的低位準形式變回交替的形式。
在第7圖中,繪示了示例性的多工器730,多工器730依據從屬裝置的內部記憶體狀態,以控制資料選通訊號DS的輸出。在各種示例中,系統700可使用不同電路或方法來控制從屬裝置720產生之資料選通訊號DS。
儘管此文件可描述許多細節,但這些細節不應被解釋為對所要求保護的發明或可被要求保護的發明之範圍限制,而是對特定實施例之特定特徵的描述。在單獨實施例的上下文的文件所述的某些特徵也可以在單個實施例中組合實現。相反地,在單一實施例的上下文所述的各種特徵也可分別在多個實施例或以任何合適的子組合來實現。此外,儘管可將以上特徵描述成以某些組合進行作用,並且甚至最初如此宣稱,但是在某些情況下,可以從組合中切除所要求保護的組合之一或多個特徵,並且所要 求保護的組合可針對子組合或子組合的改變。類似地,雖然在圖式中以特定順序描繪了動作,但這不應理解為要求以所示的特定順序或是以連續順序來執行這樣的動作,或者執行所有示出的動作,以獲得預期結果。
本文僅揭露了一些示例和實施方式。可基於揭露之內容,對描述的示例、實施方式以及其他實施做出變化、修改和增強。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:系統
105:擴展式串列周邊介面匯流排
110~110n:從屬裝置
112:裝置控制器
113:處理器
114:內部記憶體
116,122:記憶體
120:主裝置
124:緩衝器

Claims (24)

  1. 一種符合擴展式串列周邊介面(Expanded Serial Peripheral Interface,xSPI)規格的裝置,包括:一記憶體,用以儲存資料;一緩衝器,用以接收來自該裝置之外部的資料,並將所接收之該資料轉移至該記憶體;複數個輸入接腳,用以耦接至一xSPI介面;以及一處理器,用以:透過該xSPI介面,以從複數個從屬裝置中選擇一個從屬裝置;傳送指令資料至所選定的該從屬裝置,以進行資料讀取;透過該xSPI介面來接收所選定的該從屬裝置的資料;及接收該xSPI介面的一資料選通訊號線的一訊號,並依據所接收之該訊號來決定資料讀取動作,該訊號為一資料選通訊號;其中基於該資料選通訊號為交替的形式,該裝置用以接收從所選定的該從屬裝置傳送而來的資料;其中基於該資料選通訊號為一恆定值的形式,該裝置用以確定所選定的該從屬裝置尚未準備好進行資料傳輸。
  2. 如請求項1所述之裝置,其中該處理器係用以藉由以下操作來依據接收到的該資料選通訊號來決定資料讀取動作:當於該資料選通訊號線上接收到交替的形式之該資料選通訊號時,將接收到的資料封包儲存至該緩衝器,並且將該緩衝器的儲存資料轉移至該記憶體。
  3. 如請求項1所述之裝置,其中該處理器更用以藉由以下操作來依據接收到的該資料選通訊號來決定資料讀取動作:當於該資料選通訊號線上接收到為該恆定值的該資料選通訊號時,暫停或中斷資料讀取動作。
  4. 如請求項3所述之裝置,其中暫停或中斷資料讀取動作的步驟包括:透過該處理器來讀取該記憶體的一當前資料儲存位址(current data storing address),以作為一中間位址(intermediate address);以及儲存該中間位址。
  5. 如請求項4所述之裝置,其中該處理器更用以依據接收到的從該恆定值改變為交替之形式之該資料選通訊號來重新繼續資料讀取動作;以及該處理器藉由以下操作來重新繼續該資料讀取動作: 讀取所儲存之該中間位址,透過該xSPI介面來接收從該選定的從屬裝置傳來的資料,以及將接收到的該資料儲存至該緩衝器,並且將該緩衝器所儲存之資料從該緩衝器轉移至該記憶體的該中間位址。
  6. 如請求項4所述之裝置,其中該裝置用以透過該xSPI介面來提供一時脈訊號(clock signal)至該從屬裝置,一旦該資料讀取動作開始時,該裝置用以維持該時脈訊號。
  7. 如請求項6所述之裝置,其中該資料封包係邊緣對齊(edge aligned)於該資料選通訊號,其中該緩衝器接收的該資料係中心對齊(center aligned)於該時脈訊號。
  8. 如請求項1所述之裝置,其中該指令資料包括一命令指令、一位址資訊與複數個虛擬週期(dummy cycle);以及其中該位址資訊包括該從屬裝置的一來源位址、一目的地位址與該從屬裝置之一起始讀取位址的至少其中之一。
  9. 一種符合xSPI規格的裝置,包括:一記憶體,用以儲存資料;以及一裝置控制器,包括:一處理器,用以控制該裝置的資料讀取; 一控制器緩衝器,該控制器緩衝器連接至該處理器,該控制器緩衝器用以接收來自該記憶體的資料並儲存該資料,該控制器緩衝器更用以於一xSPI介面輸出該資料,其中該控制器緩衝器用以基於確定該裝置已準備好進行資料傳輸且該控制器緩衝器已經填滿,來輸出該資料;及一計數器,該計數器連接至該處理器與該控制器緩衝器,該計數器用以監測(monitor)從該控制器緩衝器至該xSPI介面的資料傳輸,其中該處理器依據該計數器的一監測結果來確定該裝置是否準備好進行資料傳輸;其中該裝置於一資料選通訊號線上輸出一訊號,該訊號為一資料選通訊號,基於該資料選通訊號為交替的形式,一主裝置用以接收從該裝置傳送而來的該資料;其中基於該資料選通訊號為一恆定值的形式,該主裝置用以確定該裝置尚未準備好進行資料傳輸。
  10. 如請求項9所述之裝置,其中該裝置更用以藉由以下操作於該資料選通訊號線上輸出該訊號,該訊號指示針對資料讀取的該裝置的狀態:基於該控制器緩衝器已經填滿的狀態,於該資料選通訊號線上輸出交替形式之該訊號至該xSPI介面;以及基於該裝置尚未準備就緒的判定,於該資料選通訊號線上輸出具有該恆定值之該訊號至該xSPI介面。
  11. 如請求項9所述之裝置,其中該裝置用以藉由以下操作確定該裝置是否準備就緒:基於儲存於該控制器緩衝器的資料中已輸出至該xSPI介面之資料的一比例,以確定該裝置是否準備就緒。
  12. 如請求項11所述之裝置,其中該比例的值係位於70%至75%的範圍內。
  13. 如請求項9所述之裝置,其中該裝置用以藉由以下操作確定該裝置是否準備就緒:基於儲存於該控制器緩衝器的資料的一最後資料封包(last data packet)係輸出至該xSPI介面之狀態,以確定該裝置是否準備就緒。
  14. 如請求項10所述之裝置,其中該xSPI介面在該裝置與一主裝置之間提供通訊與互連(interconnection),該主裝置讀取該裝置的該資料;以及其中該裝置用以透過該xSPI介面來控制資料傳輸。
  15. 如請求項14所述之裝置,其中該裝置用以接收該主裝置提供之一時脈訊號,並且該裝置用以輸出一交替訊號,該交替訊號同步(synchronized)於該時脈訊號。
  16. 如請求項15所述之裝置,其中該裝置還包括:一多工器,用以透過該xSPI介面來輸出該資料選通訊號至該主裝置,該多工器包括:一第一輸入接腳,連接至該裝置的一時脈訊號輸入接腳;一第二輸入接腳,連接至一零線(zero line),該零線承載一個位元之零訊號(bit zero signal);以及一選擇接腳(select pin),連接至該處理器,該選擇接腳用以依據該裝置是否準備就緒的判定,來選擇該第一輸入接腳與該第二輸入接腳的其中之一的訊號,以作為一輸出訊號;其中基於該裝置尚未準備就緒且該控制器緩衝器已經填滿的判定,該多工器選擇該第一輸入接腳的該時脈訊號,以作為輸出之該資料選通訊號;以及其中基於該裝置尚未準備就緒的判定,該多工器選擇該第二輸入接腳的該一個位元之零訊號,以作為輸出之該資料選通訊號。
  17. 如請求項9所述之裝置,其中該裝置用以透過該xSPI介面來接收一指令資料,其中該指令資料包括一命令指令、一位址資訊與一虛擬週期;以及其中該位址資訊包括該裝置的該記憶體的一來源位址、一目的地位址與一起始讀取位址的至少其中之一。
  18. 如請求項9所述之裝置,其中基於該裝置尚未準備就緒的判定,該裝置係用以:將該資料從該記憶體傳輸至該控制器緩衝器,或是處理儲存於該控制器緩衝器的資料。
  19. 一種符合xSPI規格的系統,包括:一主裝置;複數個從屬裝置;一xSPI介面,該xSPI介面將該主裝置連接至該些從屬裝置,該xSPI介面包括:一晶片選擇訊號線,該晶片選擇訊號線承載了一晶片選擇訊號,以指示該些從屬裝置的一選定的(selected)從屬裝置,其中該主裝置提供該晶片選擇訊號至該些從屬裝置;複數條資料輸入/輸出訊號線(data I/O line),該些輸入/輸出訊號線用以傳輸資料於該主裝置與該些從屬裝置之間;一時脈訊號線,該時脈訊號線承載了一時脈訊號,該主裝置提供該時脈訊號至該些從屬裝置,其中一旦資料讀取動作開始時,該主裝置維持該時脈訊號;以及一資料選通訊號線,該資料選通訊號線承載了一資料選通訊號,該選定的從屬裝置提供該資料選通訊號,該資料選通訊號透過該xSPI介面來傳送至該主裝置; 其中基於該資料選通訊號為交替的形式,該主裝置用以接收從該選定的從屬裝置傳送而來的資料;以及其中基於該資料選通訊號為一恆定值的形式,該主裝置用以確定該選定的從屬裝置尚未準備好進行資料傳輸。
  20. 如請求項19所述之系統,其中回應於該選定的從屬裝置尚未準備好進行資料傳輸的判定,該主裝置暫停或中斷接收來自該選定的從屬裝置的資料。
  21. 如請求項19所述之系統,其中該選定的從屬裝置用以傳送複數個資料封包,該些資料封包係邊緣對齊於該資料選通訊號;以及其中該些從屬裝置接收的資料係中心對齊(center aligned)於該時脈訊號。
  22. 如請求項19所述之系統,其中該選定的從屬裝置包括一多工器,該多工器藉由選擇該時脈訊號與一恆定值訊號的其中之一,以輸出訊號於該資料選通訊號線。
  23. 如請求項21所述之系統,其中回應於該資料選通訊號從該恆定值的形式改變為交替的形式,該主裝置用以重新繼續(resume)從該選定的從屬裝置接收資料。
  24. 如請求項21所述之系統,其中在該選定的從屬裝置尚未準備就緒時,該選定的從屬裝置用以將該選定的從屬裝置的一記憶體的資料轉移至該選定的從屬裝置的一控制器緩衝器,或是處理儲存於該選定的從屬裝置的該控制器緩衝器的資料。
TW109143227A 2020-07-08 2020-12-08 符合擴展式串列周邊介面規格的裝置與系統 TWI764417B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/923,336 2020-07-08
US16/923,336 US11327907B2 (en) 2020-07-08 2020-07-08 Methods and apparatus for improving SPI continuous read

Publications (2)

Publication Number Publication Date
TW202203044A TW202203044A (zh) 2022-01-16
TWI764417B true TWI764417B (zh) 2022-05-11

Family

ID=79172571

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109143227A TWI764417B (zh) 2020-07-08 2020-12-08 符合擴展式串列周邊介面規格的裝置與系統

Country Status (3)

Country Link
US (1) US11327907B2 (zh)
CN (1) CN113918500B (zh)
TW (1) TWI764417B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230106920A (ko) * 2022-01-07 2023-07-14 삼성전자주식회사 스토리지 시스템 및 이를 포함하는 컴퓨팅 시스템
US20230297283A1 (en) * 2022-03-21 2023-09-21 Everspin Technologies, Inc. Persistent xspi stt-mram with optional erase operation
US12019565B2 (en) * 2022-06-30 2024-06-25 Ampere Computing Llc Advanced initialization bus (AIB)
CN114880267B (zh) * 2022-07-11 2022-10-04 南京芯驰半导体科技有限公司 一种多芯片互联系统及其方法
CN116955241B (zh) * 2023-09-21 2024-01-05 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200530822A (en) * 2003-11-25 2005-09-16 Atmel Corp Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput
TW201030525A (en) * 2009-02-02 2010-08-16 Standard Microsyst Smc Direct slave-to-slave data transfer on a master-slave bus
US20200045216A1 (en) * 2017-10-05 2020-02-06 Guangzhou Tyrafos Semiconductor Technologies Co., Ltd Exposure method, electronic device and master-slave system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274784A (en) * 1989-01-13 1993-12-28 International Business Machines Corporation Data transfer using bus address lines
CN100498749C (zh) * 2007-04-12 2009-06-10 威盛电子股份有限公司 串行外围接口数据传输方法及串行外围接口数据传输系统
EP1995660B1 (en) * 2007-05-24 2013-07-10 STMicroelectronics Srl Method and system for full-duplex mesochronous communications and corresponding computer program product
TWI423033B (zh) * 2009-12-22 2014-01-11 Ind Tech Res Inst 可串接之序列匯流排卡裝置及其管理方法及串接方法
CN102122149A (zh) * 2010-12-20 2011-07-13 广东工业大学 用于纸箱打样机的嵌入式控制系统及其控制方法
CN102999437B (zh) * 2011-09-19 2015-12-16 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
KR102553266B1 (ko) * 2017-11-03 2023-07-07 삼성전자 주식회사 온-다이-터미네이션 회로를 포함하는 메모리 장치
US10956318B2 (en) * 2018-06-19 2021-03-23 Macronix International Co., Ltd. Overlapping ranges of pages in memory systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200530822A (en) * 2003-11-25 2005-09-16 Atmel Corp Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput
TW201030525A (en) * 2009-02-02 2010-08-16 Standard Microsyst Smc Direct slave-to-slave data transfer on a master-slave bus
US20200045216A1 (en) * 2017-10-05 2020-02-06 Guangzhou Tyrafos Semiconductor Technologies Co., Ltd Exposure method, electronic device and master-slave system

Also Published As

Publication number Publication date
CN113918500B (zh) 2024-06-14
CN113918500A (zh) 2022-01-11
US11327907B2 (en) 2022-05-10
US20220012190A1 (en) 2022-01-13
TW202203044A (zh) 2022-01-16

Similar Documents

Publication Publication Date Title
TWI764417B (zh) 符合擴展式串列周邊介面規格的裝置與系統
US9977731B2 (en) Bridging device having a configurable virtual page size
JP6629215B2 (ja) マルチマスターバスプロトコルのための方法および装置
JP5952974B2 (ja) 可変レイテンシを有するメモリオペレーションのための装置及び方法
JP5226669B2 (ja) 高効率フラッシュメモリデータ転送
TWI671757B (zh) 記憶裝置中支援增進式流通量
US10733122B2 (en) System and method for direct memory access in a flash storage
TW201015572A (en) Method and system to access memory
US10740000B2 (en) Adaptive transaction layer packet for latency balancing
US20100064083A1 (en) Communications device without passive pullup components
US20090216926A1 (en) Apparatus to improve bandwidth for circuits having multiple memory controllers
TW201743220A (zh) 具有可中斷指令序列的記憶體及其操作方法
US11625342B2 (en) Link startup method of storage device, and storage device, host and system implementing same
TW201901446A (zh) 記憶體裝置的邊讀邊寫存取方法
CN110767254B (zh) 读取延迟控制电路及方法
CN114253464B (zh) 控制读取请求的方法和具有主机装置的存储器控制器
TW202414234A (zh) 半導體裝置及具有其之資訊處理裝置
WO2020014879A1 (zh) 降低集成电路功耗的方法及其控制电路
CN118277304A (zh) 一种介质接口控制器
CN118276764A (zh) 操作nvm芯片执行相关操作的方法及介质接口控制器
CN118276935A (zh) 执行产生数据周期的微指令的介质接口控制器
JP2021140790A (ja) 構成可能なデータ転送トリガーを有するメモリストレージ装置
CN118363660A (zh) 通过微指令序列从nand闪存读取数据
CN113360086A (zh) 储存装置以及操作储存装置的方法
CN109086003A (zh) 降低集成电路功耗的方法及其介质接口控制器