微處理器的外部匯流排介面(External Bus Interface;EBI)用於存取或控制外部的周邊裝置,在硬體介面加入二輸出接腳之後即可成為「軟體代理記憶體介面」(Software Proxy Memory Interface;SPMI)。EBI對於接踵而至的隨機位址可以實現快速讀取,而[DDR-n] SDRAM對於這些接連不斷的連續位址則能夠實現爆發讀取。SPMI可以調整硬體架構以實現同步化爆發讀取(synchronization burst read),但不必增加硬體介面的接腳數。SPMI在執行同步化爆發讀取時會暫時停止EBI的原始功能,並且切換成類似單資料速率同步動態隨機存取記憶體(SDR SDRAM)的爆發讀取。

同步化爆發讀取的優勢

EBI在讀取期間的流程包含以下幾個步驟:

  • 步驟一,微處理器設定晶片選取(#CS)以及位址匯流排的邏輯準位;
  • 步驟二,等待各邏輯準位在外部導線上到達穩定;
  • 步驟三,微處理器設定輸出致能(#OE)的邏輯準位;
  • 步驟四,等待被選取的晶片設定資料匯流排的邏輯準位;
  • 步驟五,等待各邏輯準位在外部導線上到達穩定;
  • 步驟六,微處理器接收資料。

[DDR-n] SDRAM在爆發讀取時並不會重覆上述的步驟一至步驟三,所以將EBI切換成同步化爆發讀取將有利於縮短連續位址的讀取時間。

微處理器在程式執行時總是連續讀取指令碼,並且由硬體電路直接提取指令碼。當微處理器使用倍頻提高工作時脈的頻率時,必然要將指令碼存入快取記憶體,方可匹配微處理器的執行速度;同步化爆發讀取能夠在更短的時間內將一小段指令碼填滿快取記憶體,並且避免EBI的讀取效率限制微處理器的執行速度。另外,軟體程式在搬移或複製資料區塊時也可使用同步化爆發讀取。

DRAM單元的電氣特性適合導入同步化爆發讀取,SDRAM晶片的記憶體陣列是由列位址(row address)控制DRAM單元的字線(word-line),以及由行位址(column address)控制資料的傳輸路徑,其中,讀取電路連接DRAM單元的位元線(bit-line)。SPMI在送出庫位址和列位址之後,同庫且同列的DRAM單元皆被激活,這些被激活的DRAM單元皆會被各自所連接的讀取電路感應到它們的儲存狀態,其數量等於規格表中的頁尺寸(page size),並且最大的定址空間即是行位址的極限。

同步化爆發讀取的時序異於EBI,所以要將此功能加入SPMI DRAM的命令真值表(Command Truth Table),增加後如表1所示。

20200120_SPMI_TA31P1

表1:SPMI DRAM的命令真值表。

同步化爆發讀取的時序

SPMI在進入同步化爆發讀取時,EBI的輸出致能被定義成「同步化時脈」,亦即#OE訊號被切換成CLK訊號,這樣的功能如同SDR SDRAM的CLK。微處理器在CLK的上升邊緣將資料從資料匯流排存入快取記憶體,然後遞增行位址。記憶體晶片在CLK的上升邊緣遞增行位址,在CLK的下降邊緣輸出資料至資料匯流排。

圖1呈現SPMI在讀取期間的時序,虛構時脈(imaginary clock)代表不同時間點的資料傳輸時間。第1虛構時脈,EBI送出資料寫入指令給被選擇到的記憶體晶片,此一記憶體晶片隨即進入工作狀態,亦即圖中所示的工作閂鎖(Working Latch)。被選擇到的記憶體晶片在得知功能編號是15之後,將在接收到行位址之後進入同步化爆發讀取。

第3虛構時脈是列位址到行位址的延遲時間(tRCD),這時間至少需要佔用2個tIO。由於#CAE用於控制儲存單元(storage cell)的存取,所以在#ACT的邏輯訊號轉成低準位之前要先將它的邏輯訊號轉成高準位。#ACT的邏輯訊號用於啟動儲存單元的存取或記憶體晶片的組態,也用於解除記憶體晶片的工作狀態。

第6虛構時脈,EBI送出資料讀取指令給被選擇到的記憶體晶片,這一資料讀取指令會從儲存單元讀出資料至微處理器。在第6虛構時脈結束之前,被選擇到的記憶體晶片在#OE的上升邊緣閂鎖行位址,然後遞增行位址,即圖中所示的讀取閂鎖(Read Latch)以及‘Column+1’。

第7虛構時脈至第11虛構時脈,微處理器執行同步化爆發讀取,單位時間可以是tIO。第7虛構時脈,微處理器遞增行位址。第8虛構時脈,被選擇到的記憶體晶片在#OE的下降邊緣送出資料,即圖中所示的‘DOUT 2’。第9虛構時脈,微處理器遞增行位址;被選擇到的記憶體晶片在#OE的上升邊緣遞增行位址,即圖中所示的‘Column+2’。第10虛構時脈,被選擇到的記憶體晶片在#OE的下降邊緣送出資料,即圖中所示的‘DOUT 3’。當#ACT的邏輯訊號再次回到高準位時,記憶體晶片的工作狀態立即解除,亦即圖中所示的第12虛構時脈;在解除時,被選擇到的記憶體晶片重置計數器,即圖中所示的‘Column+0’。

20200120_SPMI_TA31P2

圖1:SPMI DRAM在同步爆發讀取期間的時序。

結論

SPMI在同步化爆發讀取上仿照SDR SDRAM的時脈訊號,所以在記憶體晶片上不需要延遲鎖定迴路(DLL),也無需執行時脈校正。SDR的電氣特性是時脈訊號的發送端和接收端皆是數位訊號,所以SPMI可以直接切換邏輯閘來控制#OE的輸出波形,而在記憶體晶片上則不必切換#OE的輸入電路。

SPMI的同步化爆發讀取在用途上不同於[DDR-n] SDRAM的爆發讀取,同步化爆發讀取是為了減少微處理器向記憶體晶片發送讀取命令的次數,同時縮短連續位址的讀取時間。微處理器在EBI送出行位址時,同時接收第一筆資料,即圖1所示的‘DOUT 1’,因此同步化爆發讀取的時脈數量要扣除這筆資料。

當資料匯流排的位元寬度是64位元或16位元時,建議微處理器送出的時脈數量是31;當資料匯流排的位元寬度是32位元或8位元時,建議微處理器送出的時脈數量是63。因此,64位元或32位元的微處理器將會接收到256位元組,16位元或8位元的微處理器將會接收到64位元組。

本文同步刊登於電子技術設計雜誌2020年1月號