使用具有動態及可組態回應之兩記憶體級之串列裝置仿真器
本發明大體而言係關於串列介面仿真領域,且具體而言係關於使用兩記憶體級之一可組態串列裝置仿真器。
當開發一新串列介面裝置時,需要在一初型階段中測試諸如功能性及效能等串列裝置之特定特性以確保其在到達一生產階段之前滿足設計要求。為了測試初型串列裝置之此等特性,一串列仿真器裝置通常根據串列介面裝置之設計要求經組態來以其中之回應資料對來自一主機裝置之命令做出回應。然而,現有串列仿真器裝置係有限的且不能準確地反映串列裝置之期望功能性。特定而言,由於仿真器裝置在處理能力及儲存能力方面之侷限性,當前串列介面裝置僅可以固定且簡短回應資料對簡單命令做出回應。此外,當前串列仿真器裝置不能以一足夠快速回應時間做出回應以適當模擬較快速串列介面之操作。
為了較好地對串列裝置進行仿真,用於對一串列介面周邊進行仿真之一數位邏輯串列仿真器裝置經組態以藉由以一規定順序自靜態隨機存取記憶體(SRAM)及動態隨機存取記憶體(DRAM)中之一者或其一組合存取回應資料來迅速對來自一主機裝置之串列介面命令做出回應。在一項實施方案中,對一介面命令之整個回應資料儲存於SRAM中。在另一實施方案中,回應資料之大小超過SRAM之大小。在此一情形中,回應資料之一第一部分儲存於SRAM中且與一特定串列介面命令相關聯的回應資料之其餘部分儲存於DRAM中。由數位邏輯裝置執行之一狀態機判定存取哪一記憶體類型以擷取回應資料且判定存取記憶體之次序或順序。可基於一函式輸出而動態地產生回應資料,此可基於任何演算法或電腦指令。一函式之實例包含在輸入一先前所接收命令時使用之一函式、一基於時間之函式、使用一隨機變數之一函式、一回應迴路、基於一狀態機之一函式等。數位邏輯裝置對命令做出回應之此方式可透過一API進行組態。 為了對來自一主機裝置之一命令做出回應,當該回應資料之大小超過該SRAM之大小時,該數位邏輯串列仿真器裝置首先自該SRAM擷取該第一回應資料(根據一查找表中之資訊),且同時自該DRAM擷取該額外回應資料。由於存取該SRAM之時間比該DRAM快,因此該數位邏輯串列仿真器裝置能夠將該第一回應資料迅速地發送至該主機裝置。當該數位邏輯串列仿真器裝置完成該第一回應資料至該主機裝置之發送時,其自該DRAM接收該額外回應資料並能夠開始將此額外回應資料無延遲地立即發送至該主機裝置。 舉例而言,該回應資料具有長度R,且該SRAM具有小於R之長度M。數位邏輯串列仿真器裝置首先自該SRAM擷取具有長度M之該第一回應資料部分,且同時自該DRAM擷取其餘部分M-R。 另外,可將該回應資料之一初始部分儲存於該數位邏輯串列仿真器裝置之一暫存器中以便進一步改良回應時間。由於正被仿真之串列介面協定之特性,當需要超過該SRAM之一更快存取時間時,該數位邏輯串列仿真器裝置使用暫存器。若該第一回應資料之一初始部分儲存於一暫存器中,則該數位邏輯串列仿真器裝置在自該SRAM擷取該回應資料之同時自該暫存器擷取該第一回應資料之此初始部分。藉由自具有比該SRAM快之一存取時間之暫存器讀取,該數位邏輯串列仿真器裝置能夠進一步減少用於發送對一命令之回應資料之回應時間。 在一項實施例中,一可組態數位邏輯裝置對一串列介面周邊裝置進行仿真。該數位邏輯裝置包括具有若干暫存器位置之一暫存器集合。該數位邏輯裝置亦包括一靜態隨機存取記憶體(SRAM),該靜態隨機存取記憶體具有擁有大於該暫存器集中之該等暫存器位置之大小的一大小之記憶體位置。該數位邏輯裝置另外包括一動態隨機存取記憶體(DRAM),該動態隨機存取記憶體具有擁有大於該SRAM之該等記憶體位置之大小的一大小之記憶體位置。 該數位邏輯裝置包括一處理器,該處理器經組態以將對命令之一第一回應資料之一初始部分儲存於該等暫存器位置中,其中該等命令中之每一者與該等暫存器位置中之一者相關聯。該處理器進一步經組態以將對該等命令之該第一回應資料儲存於該等SRAM記憶體位置中,其中該等命令中之每一者與該SRAM之該等記憶體位置中之一者相關聯。該處理器亦經組態以針對該等命令中之每一者,將儲存對該命令之該第一回應資料的該SRAM中之該第一記憶體位置及該第一回應資料之大小儲存於一查找表中。該處理器亦經組態以將對該等命令之額外回應資料儲存於該DRAM之該等記憶體位置中。該處理器進一步經組態以針對第一複數個命令中之至少一者,將儲存該額外回應資料的該DRAM之該等記憶體位置中之一者及該額外回應資料之一大小儲存於該查找表中。 該處理器經組態以自一主機裝置接收一命令。另外,該處理器經組態以自對應於該命令的該等暫存器位置中之一者及該SRAM之該等記憶體位置中之一者擷取該第一回應資料,並將該第一回應資料發送至該主機裝置。 該處理器亦組態以回應於藉由自該查找表擷取儲存對該命令之額外回應資料的該DRAM之該第二複數個記憶體位置中的一者而做出之該命令包含額外回應資料之一判定,自該第二複數個記憶體位置中之該一者擷取該額外回應資料,且同時將該額外回應資料發送至該主機裝置。 在一項實施例中,闡述一種用於在一數位邏輯裝置上對一串列介面周邊裝置進行仿真之方法,該數位邏輯裝置具有:一暫存器集合,其具有若干暫存器位置;一SRAM,其具有若干記憶體位置,該若干記憶體位置具有大於該等暫存器位置之大小之一大小;及一DRAM,其具有若干記憶體位置,該若干記憶體位置擁有大於該SRAM之該等記憶體位置之該大小之一大小。 將對一命令集合之一第一回應資料之一初始部分儲存於該等暫存器位置中,其中該等命令中之每一者與該等暫存器位置中之一者相關聯。 將對該等命令之第一回應資料儲存於該SRAM之該等記憶體位置中,其中該等命令中之每一者與該SRAM之該等記憶體位置中之一者相關聯。 針對該等命令中之每一者,將儲存對該命令之該第一回應資料之該SRAM中之該第一記憶體位置及該第一回應資料之該大小儲存於一查找表中。 將對該等命令中之至少一者之額外回應資料儲存於該DRAM之記憶體位置中。 針對該等命令中之至少一者,將儲存該額外回應資料之該DRAM之該等記憶體位置中之一者及該額外回應資料之一大小儲存於該查找表中。 自一主機裝置接收一命令。自對應於該命令的該等暫存器位置中之一者及該SRAM之該等記憶體位置中之一者擷取該第一回應資料,並將該第一回應資料發送至該主機裝置。 回應於藉由自該查找表擷取儲存對該命令之額外回應資料之該DRAM之該等記憶體位置中的一者而做出之該命令包含額外回應資料之一判定,自該等記憶體位置中之該一者擷取該額外回應資料,且同時將該額外回應資料發送至該主機裝置。
相關申請案之交叉參考 本申請案主張2015年11月12日提出申請之美國臨時申請案第62/254,331號之權益,該申請案之全文以引用方式併入。實例性串列裝置仿真器與主機裝置
圖1圖解說明具有一主機裝置150及串列裝置110之一環境100之一實施例。儘管所圖解說明環境包含圖1中所展示之元件,但在其他實施例中該環境可包含不同元件。此外,每一元件之功能性可有差別地分佈於其他實施例中之元件當中。 主機裝置150係包含一串列介面之一計算裝置。在一項實施方案中,主機裝置150係一嵌入式裝置,其中串列介面將由串列裝置仿真器110測試以判定相容性、功能等。在一項實施方案中,主機裝置150係經組態有用於開發及測試嵌入式軟體之一程式開發環境之一電腦系統,該電腦系統包含用於周邊裝置之低級系統及操作碼)。一程式開發環境較佳地包含一原始層次除錯器、一追蹤除錯及分析套件、最佳化編譯器、一執行階段錯誤檢查程式、一整合式原始碼分析器、一執行階段事件分析器、一效能分析工具及各種硬體除錯及追蹤探針。如由程式開發環境所組態,主機裝置150提供超越一個一般電腦之功能及能力的功能及能力。 串列裝置仿真器110係對經耦合以與主機裝置150通信之一或多個串列介面裝置之電行為進行仿真之一裝置。如所圖解說明,串列裝置仿真器110包含一收發器140、一直接記憶體存取(DMA)控制器135、一靜態隨機存取記憶體(RAM) 120、一動態RAM 125、一數位邏輯130及一控制模組115。 收發器140經由一串列介面將信號傳輸至主機裝置150且自主機裝置150接收信號。該串列介面可係一串列周邊介面(SPI)、IC間通信(I2C)匯流排、控制器區域網路(CAN)匯流排或其他串列通信介面方案。該串列介面可根據一特定串列介面方案採用TTL、CMOS、低電壓差動信號(LVDS)或其他發信方法以經由該串列介面在收發器140與主機裝置之間交換資訊。收發器140包含一傳輸器及接收器。該傳輸器自數位邏輯130接收資訊。此資訊可被編碼或解碼。在一項實施例中,傳輸器與數位邏輯之間的介面係一並行介面,且傳輸器將在並行介面上接收之並行資料轉換成串列資料以便將資料發送至主機裝置150。收發器140之接收器藉由以下步驟執行傳輸器之相反程序:自主機裝置150接收串列資料並將此資料發送至數位邏輯130以及在其中數位邏輯130與收發器140之間的介面係一並行介面之情形中將串列資料轉換成並行資料。 當自主機裝置150接收信號時,收發器140將所接收信號自串列介面上之原始協定轉換成由數位邏輯130使用之一受支援或通用格式。在一項實施例中,收發器140藉由使用儲存於串列裝置仿真器110上之一映射表將信號轉換成數位邏輯之一受支援格式,該映射表將命令自原始協定映射至命令。串列介面協定中之每一者可支援彼此間具有共同函式之命令。舉例而言,每一協定可支援一讀取命令。在一項實施例中,具有共同函式性之所有命令由收發器140轉譯成由數位邏輯130支援之一單個命令。因此,儘管每一串列介面協定可具有對一特定函式之一命令進行不同於彼此之編碼,但當此等命令具有相同函式性時,收發器140將此等命令轉換成一完全一致命令。舉例而言,收發器140可將與讀取資料有關之所有命令轉譯成可被數位邏輯130理解之一標準讀取命令。該一致命令可借鑒一現有標準或可係專屬的。在另一實施例中,收發器140將命令直接發送至數位邏輯130而無需轉換。 由於介面係串列的,因此一次一個位元地串列接收每一命令。在一項實施例中,收發器140在轉譯一命令或將其發送至數位邏輯130之前等待接收該命令之所有位元。在其中數位邏輯130與收發器140之間的介面與一特定匯流排寬度(例如,8位元)並行之情形中,收發器140基於匯流排寬度之大小將資料之每一位元放置至一緩衝器中。可根據傳入串列資料流之時脈速率將每一位元放置於緩衝器中。可使用包含於接收器中之一時脈資料恢復電路恢復時脈速率。此緩衝器之大小可係匯流排寬度之一倍數(例如,8位元、16位元)。在另一實施例中,收發器140在已接收到整個命令之前將一經部分接收命令之位元發送至數位邏輯130。並非等待透過串列介面接收到整個命令,而是在已接收到命令之位元之整個集合之前收發器140將命令之位元之一子集發送至數位邏輯130。 DMA控制器135提供用於數位邏輯130之一介面以直接存取DRAM 125。DMA控制器135自數位邏輯130接收一請求以在一特定位址處自DRAM 125讀取資料。作為回應,DMA控制器135在期望位址處存取DRAM 125並讀取期望大小之資料。有時,取決於回應資料之大小,DMA控制器135將自DRAM 125中之多個單獨實體區讀取DRAM 125中之資料。在一項實施例中,DMA控制器135自DRAM 125並行地讀取資料。注意,當DMA控制器135存取DRAM 125時,其自必須處理記憶體存取釋放控制模組。此達成對DRAM 125之總體較快存取速率,乃是因為DMA控制器135與控制模組相比可無延遲地處理至DRAM 125之一大型資料存取。 SRAM 120係儲存對來自主機裝置之命令之回應資料的一記憶體。SRAM 120與其他類型之記憶體相比(諸如,DRAM 125)具有一相對快存取時間。舉例而言,讀取一個位元之一請求與來自SRAM 120的彼位元值之回應之間的時間可係2至12奈秒(ns),此可對應於取決於時脈頻率之數個時脈循環。相比而言,存取DRAM之時間可慢10至60 ns之一量值,且可係時脈循環之一相當大增加。為達成較快存取時間,SRAM實施方案需要額外電晶體且與其他類型之記憶體相比相對昂貴,且通常以較小的相對容量實施。舉例而言,SRAM 120可係256個位元組。 如上文所述,SRAM 120儲存對來自主機裝置之命令之回應資料。特定而言,SRAM 120儲存對一命令之一全回應資料之一第一回應資料部分。全回應資料係對一命令之完整回應。此第一回應資料具有等於或小於SRAM 120之大小的一大小。DRAM 125係儲存對來自主機裝置之命令之額外回應資料之一揮發性記憶體。如上文所述,DRAM 125具有高出SRAM 120數倍之存取時間。然而,DRAM 125之生產較便宜且可因此較大量地包含。舉例而言,DRAM 125之大小可係768個位元組。 在某些情形中整個回應資料儲存於SRAM 120中。而在其他情形中,整個回應資料之一部分作為一第一回應資料儲存於SRAM 120中且回應資料之其餘部分作為額外回應資料儲存於DRAM 125中。換言之,若全回應資料具有一大小R,且SRAM 125具有一大小M,則第一回應資料之長度係M,且額外回應資料之長度係R-M。 數位邏輯130以自串列裝置仿真器110上之記憶體擷取之回應資料對來自收發器140之命令做出回應。當數位邏輯130使用一查找表來自收發器140接收一命令時,若需要,則數位邏輯130基於回應資料之大小而經由DMA控制器135自SRAM 120且同時自DRAM 125擷取相關聯回應資料。然後數位邏輯130將此回應資料發送回至收發器140以發送回至主機裝置150。藉由自SRAM 120擷取資料,即使回應係仿真的,數位邏輯130亦達成模仿一實際串列裝置之回應時間之一快速回應時間。亦藉由使用DRAM 125,數位邏輯130能夠容納大於SRAM 120之一回應資料大小。 更具體而言,回應於自收發器140接收一命令,數位邏輯130自SRAM 120擷取針對命令之回應資料。數位邏輯130可使用命令編索引成一查找表並自該查找表擷取回應資料在SRAM 120中之記憶體位置及大小。然後數位邏輯自SRAM 120讀取在給定記憶體位置處之回應資料。 同時,數位邏輯130判定回應資料之全大小(如依據查找表所指示)是否超過SRAM 120之記憶體之固定大小,此將指示對命令之額外回應資料儲存於DRAM 125中。在一項實施例中,數位邏輯130使用該查找表來做出此判定。若DRAM 125包含對命令之額外回應資料,則數位邏輯130基於儲存於查找表中之額外回應資料之一記憶體位置及大小而同時自DRAM 125擷取此額外回應資料。 數位邏輯130將SRAM 120中之回應資料(亦即,「第一回應資料」)發送至收發器140。數位邏輯130亦可將額外回應資料自DRAM 125發送至收發器140。可首先將額外回應資料自DRAM 125載入至SRAM 120中,且然後由數位邏輯130發送至收發器140。可在發送第一回應資料時載入額外回應資料。數位邏輯130可在其讀取資料之同時、在每一同步信號或時脈循環之後旋即或在完成整個讀取操作之後旋即將回應資料分段地發送至收發器140。 在一項實施例中,數位邏輯130自收發器140部分地接收一命令。回應於接收此部分命令,數位邏輯130使用查找表來擷取回應資料(其可位於SRAM 120或DRAM 125中)之記憶體位置及/或大小的一部分指示。此允許數位邏輯130在接收到(亦即,解碼)整個命令之前在各別SRAM 120或DRAM 125中開始部分記憶體位置選擇。 舉例而言,一全命令可包括8個位元。一旦數位邏輯130接收到此全命令之一部分,數位邏輯130便使用具有此經部分地接收命令之查找表來擷取一記憶體位置之一部分指示。在此情形中,查找表包含經部分地接收命令之一記憶體位置之一部分指示及一對應全命令之一完整記憶體位置。記憶體位置之部分指示可係回應資料在各別記憶體中之一近似位置(例如,記憶體位置之部分指示可指示SRAM 120之記憶體位置之最高有效位元數目,此可對應於SRAM 120之記憶體位置之整個範圍之一列、行或其他子集)。 藉由同時自SRAM 120及DRAM 125擷取額外回應資料,數位邏輯130由於SRAM 120之高速度及低延時而可快速將SRAM 120中之第一回應資料發送至收發器140,且隨後不中斷地自較慢DRAM 125發送額外回應資料,此乃因數位邏輯130可在其完成SRAM 120中之資料之發送之前開始自DRAM 125擷取資料。此同時擷取允許數位邏輯130補償DRAM 125之慢回應時間。此允許串列裝置仿真器110準確地對一經遞送回應進行仿真同時亦減少SRAM 120之使用。 控制模組115設置串列裝置仿真器110之初始組態以及SRAM 120及DRAM 125之內容。下文進一步闡述初始組態資訊之使用。 控制模組115設置SRAM 120及DRAM 125之內容。SRAM 120及DRAM 125之內容取決於為一命令所特有之回應資料,如由正被仿真之串列裝置之所定義行為判定。在一項實施例中,若回應資料大於SRAM 120,則控制模組115自動將資料分割成符合SRAM 120之大小、用以儲存至SRAM 120中之一第一回應資料部分及用以儲存於DRAM 125中之一額外回應資料部分。舉例而言,SRAM 120之大小可係256個位元組。在此一情形中,若一回應資料由一或多個訊息構成,每一訊息係512個位元組,則512位元組回應資料之前256個位元組可作為一第一回應資料分割部儲存於SRAM 120中,其中回應資料之其餘256個位元組作為一額外回應資料分割部儲存於DRAM 125中。在其他實例中,SRAM之大小可大於或小於256個位元組,及/或每一訊息之大小可大於或小於512個位元組。第一回應資料係回應資料之一初始區段且額外回應資料係其餘部分。控制模組115亦藉由就第一回應資料及額外回應資料在SRAM 120及DRAM 125中之記憶體位置及大小將數位邏輯130之查找表組態而就如何發送回應資料將數位邏輯130組態。 控制模組115可針對串列裝置仿真器110設置之組態可包含待支援之串列介面協定及針對數位邏輯130之一組態。在一項實施例中,控制模組115將數位邏輯130組態以儲存一函式(諸如一演算法),使得數位邏輯130將基於該函式而動態地對一命令做出回應。換言之,對一命令之回應基於函式之輸出而改變。另一選擇係,函式之輸出用於在SRAM 120中設置為對一命令之新回應資料。函式可係基於一先前命令及/或回應、當前時間或其他操作或因素。在另一實施例中,函式可經設計使得新回應資料表示邊緣情形或錯誤。此允許在操作期間將串列裝置之行為動態地組態,從而達成對極複雜實時行為之仿真。 作為一實例,控制模組115可將數位邏輯130組態以執行基於在一寫入命令中所指示之資料修改對一讀取命令之一回應資料的一函式。基於一函式之輸出修改回應資料之能力允許串列裝置仿真器110以動態回應對一串列裝置進行仿真,該等動態回應基於各種因素(包含一先前回應及/或命令)改變。此一仿真器能夠充分對一實際串列介面裝置之回應模式進行仿真,且允許一串列介面裝置之一開發者進一步代替利用更昂貴的原型製作解決方案(諸如使用定製電路板)而使用該仿真器進行原型製作。實例數位邏輯
圖2圖解說明根據一實施例的圖1之數位邏輯130。如所圖解說明,數位邏輯130包含暫存器210、一查找表212、一記憶體存取邏輯232及一回應邏輯230。儘管所圖解說明數位邏輯130包含圖2中所展示之元件,但在其他實施例中數位邏輯130可包含不同元件。此外,每一元件之功能性可有差別地分佈於其他實施例中之元件當中。 暫存器210中之每一儲存對一命令之回應資料之一初始部分,諸如高達前N個位元組,其中N小於SRAM之大小。暫存器210由定製電晶體邏輯製成且可儲存一少量資料(例如,8位元)。與其他類型之儲存相比,暫存器210通常具有最快存取時間。舉例而言,暫存器可具有1-3 ns (或更少)之存取時間,此可對應於一單個時脈循環。暫存器210具有比SRAM 120快之一回應時間,且因此自暫存器210擷取資料可比自SRAM 120或DRAM 125擷取資料發生得快。 查找表212將第一回應資料及額外回應資料之記憶體位置及大小各別儲存於SRAM 120及DRAM 125中。查找表212中之資訊可經擷取以判定自SRAM 120或DRAM 125中之何方位處讀取及自多少區塊讀取以便擷取對一命令之正確回應資料。在一項實施例中,此資訊儲存於查找表212中以作為命令與此等記憶體位置及大小之間的一映射。為了達成高效查找(例如,在恆定時間中),可使用命令之二進制值來對查找表加索引,使得命令之值可直接用於做表示查找表之資料陣列中之正確項目之參考。在另一實施例中,查找表212亦將命令之一映射儲存至暫存器210,該映射指示哪一暫存器儲存對一命令之一第一回應資料之初始部分。每一命令亦可包含一或多個運算元,在此情形中查找表212儲存對具有一特定運算元集合之一命令之一回應資料的一映射。 記憶體存取邏輯232使數位邏輯130能夠同時存取SRAM 120及DRAM 125。不同於串列地存取不同記憶體位置之記憶體介面,記憶體存取邏輯232經組態以具有至少兩個記憶體匯流排,其中一者耦合至SRAM 120且另一者耦合至DRAM 125 (經由DMA 135)。由於DRAM 125具有比SRAM 120慢之一回應時間,因此由記憶體存取邏輯232發出的存取SRAM 120之任何請求將具有比所發出的存取DRAM 125之一請求快之一存取時間。然而,因能夠同時存取SRAM 120及DRAM 125兩者,記憶體存取邏輯232能夠在其結束自SRAM 120接收資料之前而回應於跨越SRAM 120及DRAM 125兩者分裂之資料之一存取請求開始自DRAM 125接收資料。在某些情形中,儲存於SRAM 120中之第一回應資料(或儲存於DRAM 125中之額外回應資料)大於SRAM 120 (或DRAM 125)之記憶體匯流排寬度。舉例而言,第一回應資料之大小可係256個位元組,而記憶體匯流排寬度係8個位元寬。在此一情形中,記憶體存取邏輯232擷取第一回應資料(或額外回應資料)達多個時脈循環。舉例而言,記憶體存取邏輯232可在時脈循環之每一上升時脈邊緣之後旋即擷取第一回應資料之一8位元區塊,且在256個循環之後完成對第一回應資料之擷取。 若跨越SRAM 120及DRAM 125分裂對一命令之一回應資料使得該回應資料之第一部分儲存於SRAM 120中且該回應資料之一額外部分儲存於DRAM 125中,則記憶體存取邏輯232能夠在存取時間延遲被最小化至等於SRAM 120之存取時間之一初始延遲的情況下擷取全回應資料。注意如本文所提及,一揮發性記憶體之存取時間係該揮發性記憶體傳回資料之第一位元之時間(例如,在無任何列被選定之一DRAM中,此可等於行位址選通(CAS)延時加上列位址至CAS延遲(tRCD))。 亦可回應於一命令而將資料寫入至SRAM 120及/或DRAM 125。在此一情形中,記憶體存取邏輯232將資料寫入至SRAM 120或DRAM 125中之所指示位置。 回應邏輯230判定並擷取對一命令之一適當回應。回應邏輯230在與由正被仿真之串列介面協定指定之所需回應時間一致的一時間範圍內提供一回應。為了達成此目的,回應邏輯230在自SRAM 120擷取第一回應資料之同時自暫存器210擷取第一回應資料之一較小初始部分。在某些實施例中,儲存於SRAM 120中之第一回應資料不包含第一回應資料儲存於暫存器210中之該較小初始部分。某些串列介面協定可在此一高速度下被計時,結果用以自SRAM 120擷取回應資料之回應時間不夠快以致無法以正確時脈循環做出回應。在此情形中,回應邏輯230在經由記憶體存取邏輯232自SRAM 120擷取第一回應資料之同時自暫存器210 (例如,此部分等於暫存器寬度)擷取第一回應資料之一初始部分,以便改良初始回應時間。 作為一實例,串列介面協定可需要在其中接收到命令之最後部分之一時脈循環之後的下一同步信號或時脈循環處將回應資料之一初始部分發送至主機裝置150。為對命令做出回應,回應邏輯230可經由記憶體存取邏輯232首先自暫存器210擷取第一回應資料同時自SRAM 120擷取資料。由於暫存器210具有比SRAM 120 (例如,在一個時脈循環內)快之一存取時間,因此回應邏輯230能夠將第一回應資料之初始部分發送回至使用第一回應資料儲存於暫存器210中之初始部分之主機裝置150。 為了判定哪一暫存器210包含對命令之第一回應資料之初始部分,回應邏輯230可使用查找表212。在其他實施例中,可基於一位元遮罩或適用於命令之值的其他函式而將每一暫存器210一對一地映射至一命令,且回應邏輯230將此函式應用至該命令以判定正確暫存器210,從而自該正確暫存器210擷取資料。 在一項實施例中,回應資料具有一固定大小且命令之位元(亦即,二進制)值直接映射至SRAM 120中之一位址。在此情形中,回應邏輯230使用命令之二進制值以經由記憶體存取邏輯232自SRAM 120直接擷取回應資料。若SRAM 120係256個位元組,則回應邏輯 230可使用8個位元之一記憶體位址來為SRAM 120定址。每一命令之長度亦可係8個位元,且因此將回應資料之每一項配置於SRAM 120中以便位於對應於命令之值的一位址處。回應邏輯230可將8位元命令用作位址且將8位元長度用作記憶體存取邏輯230之大小以自SRAM 120擷取8位元回應資料。 在一項實施例中,對一命令之回應資料在SRAM 120中之記憶體位置儲存於查找表212中。另外,每一回應資料之大小儲存於查找表212中。在接收到一命令之後,回應邏輯230使用查找表212來查找回應資料之對應記憶體位置及位址並自記憶體中之對應位置擷取回應資料。 在自SRAM 120擷取資料之同時,回應邏輯230亦判定對命令之全回應資料之大小(位元組之數目)是否大於SRAM 120之大小容量。若是,則回應邏輯230自DRAM 125擷取對該命令之額外回應資料。在一項實施例中,回應邏輯230藉由判定查找表是否包含命令之一項目(包含在DRAM 125中之一記憶體位置及大小)來判定全回應資料是否大於SRAM 120之大小容量。在另一實施例中,回應邏輯230藉由使用查找表212來判定是否設置指示一命令包含在DRAM 125中之額外回應資料之一旗標來對此做出判定。 一旦回應邏輯230判定額外回應資料存在於DRAM 125中,回應邏輯230便藉由在查找表212中查找額外回應資料之記憶體位置及大小及擷取在彼記憶體位置處彼大小之資料來同時自DRAM 125擷取額外回應資料。藉由同時自DRAM 125擷取額外回應資料,回應邏輯230能夠在其完成SRAM 120中之第一回應資料之發送時將自DRAM 125擷取之額外回應資料發送至主機裝置150 (經由收發器140)。此確保一快速回應時間及至主機裝置150之一不中斷回應資料流同時減少所需之較昂貴SRAM 120之數量。 在一項實施例中,回應資料基於一函式之輸出(諸如一演算法、程式或其他判定性方法)改變。函式可至少基於時間、一反覆(迴路式)方法、一資料庫、傳入命令、過去命令或回應、外部輸入或一隨機數目產生器。在一項實施例中,該函式可基於不同方法之一組合。另外,函式可經組態以產生對一串列裝置之一邊緣情形進行仿真之輸出。回應邏輯230經組態有該函式且執行該函式以運用基於函式之輸出之新回應資料來判定函式之一輸出及在暫存器、SRAM 120及/或DRAM 125中的對一命令之現有回應資料之修改。在一項實施例中,回應邏輯230亦針對對每一命令之每一回應資料使用一不同函式。 作為一實例,該函式可對一全球定位系統(GPS)裝置進行仿真且輸出保形於基於時間改變之經度及緯度座標之一值。此外,該函式可經組態以週期性地輸出一損失信號邊緣情形。回應邏輯230可使用此輸出以改變在SRAM 120及DRAM 125中的對一命令之回應資料。當來自主機裝置150的請求GPS座標之一傳入命令到達時,回應邏輯230然後可擷取對應回應資料並將其發送至主機裝置150。回應邏輯230可隨後基於函式之輸出而再次修改該回應資料,使得對請求GPS座標之一後續命令之回應資料可係不同的(例如,一組不同GPS座標可由回應邏輯230傳回)。 在一項實施例中,回應邏輯230接收一命令以寫入資料。在接收到此一命令之後,回應邏輯230旋即將規定資料寫入至SRAM 120及/或DRAM 125之一部分且亦將具有對此資料之一讀取命令與所寫入之規定資料之記憶體位置及大小之間的一映射的一項目儲存於查找表212中。回應邏輯230亦可將規定資料之一初始部分寫入至一暫存器210。當接收到對此資料之一讀取命令時,回應邏輯230根據上文所闡述之方法處理該命令。 在一項實施例中,回應邏輯230接收指示應將儲存於記憶體中之一組預定命令解碼(亦即,解釋)之一命令。在接收到此命令之後,回應邏輯230旋即經由記憶體存取邏輯232而自SRAM 120或DRAM 125中之預定位置擷取該組預定命令且解釋該等命令。隨後,回應邏輯230可在擷取對此等命令之任何回應資料之前等待一定時間段(例如,預定數目個時脈循環)。實例性控制模組
圖3圖解說明根據一實施例的圖1之控制模組115。如所圖解說明,控制模組115包含一設定模組310、一數位邏輯參數模組312及一記憶體寫入模組314。儘管所圖解說明控制模組115包含圖3中所展示之元件,但在其他實施例中控制模組115可包含不同元件。此外,每一元件之功能性可有差別地分佈於其他實施例中之元件當中。在一項實施例中,控制模組115表示為儲存於一非暫時性電腦可讀儲存媒體中之指令且由一處理器執行。 設定模組310設定串列裝置仿真器110之初始組態。設定模組310可自一使用者接收各種組態選項並使用此等選項來將串列裝置仿真器110組態。組態選項可包含將使用之串列介面協定、時脈速度、介面電壓及其他串列介面參數。組態選項亦可包含分配給每一第一回應資料的SRAM 120之一最大大小。 數位邏輯參數模組312將用於數位邏輯模組130之該等參數組態。參數可包含將一第一回應資料寫入至SRAM 120之一最大大小、用以對一命令做出回應之一延遲時間、等待來自記憶體之一回應之一逾時期間、一錯誤處置組態及其他參數。在一項實施例中,用於數位邏輯模組130之參數包含與一或多個命令相關聯之函式,數位邏輯模組130使用該等函式來基於函式之輸出改變回應資料,如上文所闡述。 在一項實施例中,數位邏輯參數模組312根據一使用者組態而自一函式庫選擇此等函式。函式庫可由串列裝置仿真器110之廠商提供或可由其他開發者提供。函式可由開發者使用由串列裝置仿真器110之廠商提供之一應用程式介面(API)及/或軟體開發套件(SDK)建立。此為開發者提供用以對一串列裝置進行仿真之一容易方式。舉例而言,函式庫可包含對各種裝置(諸如一GPS裝置或天氣感測器)之回應進行仿真之函式,且使用者組態可指導數位邏輯參數模組312自庫選擇需要仿真之特定函式。然後數位邏輯參數模組312運用此等函式將數位邏輯模組130組態,使得串列裝置仿真器110可對所期望串列裝置進行仿真。 記憶體寫入模組314將初始回應資料寫入至SRAM 120、DRAM 125及暫存器210。在初始組態期間,一使用者可希望寫入對命令之特定回應資料。記憶體寫入模組314將回應資料寫入至SRAM 120、DRAM 125及暫存器210且將對應映射錄入至查找表212。此程序可在起始串列裝置仿真器110以操作之前離線完成。實例性回應資料分佈
圖4A圖解說明一回應資料410跨越暫存器210、SRAM 120及DRAM 125之一分佈之一實例。如所圖解說明,回應資料410橫跨總共X+Y+Z個位元組。假定SRAM 120僅可儲存最大Y個位元組之一回應資料,則如所圖解說明,儲存於回應資料410之SRAM位址範圍430中之一第一回應資料412包含位元組X至X+Y-1。額外回應資料414儲存於DRAM位址範圍440中且包含位元組X+Y至X+Y+Z-1。由於DRAM可大於額外回應資料414之大小,因此DRAM位址範圍440亦可包含額外未使用空間450。在一項實施例中,回應資料由記憶體寫入模組314儲存於如所圖解說明之SRAM 120及DRAM 125中。 在一項實施例中,除將回應資料儲存於SRAM 120及DRAM 125中之外,串列仿真器裝置110亦將第一回應資料之一較小初始部分411儲存於X大小之一暫存器位址420中,該較小初始部分含有回應資料之位元組0至X-1。此初始部分411之大小固定為暫存器之大小。在所圖解說明之實例中,暫存器係32個位元,且因此第一回應資料之初始部分411係4個位元組長。然而,在暫存器大小不同之情況下,初始部分411亦改變。注意,若串列裝置仿真器110不包含一暫存器,則回應資料首先儲存於SRAM (例如,位元組0至Y-1)中,其中其餘部分儲存於DRAM (例如,位元組Y至Y+Z-1)中。 圖4B圖解說明指示圖4A中所圖解說明之回應資料410之記憶體位置及回應資料大小之查找表212的一實例460。如所圖解說明,例示性查找表460將一命令與一暫存器位置、一SRAM位置及大小以及一DRAM位置及大小進行映射。在例示性查找表460中,使用一個兩位元十六進制值來表示8位元命令。SRAM位置指示對命令之第一回應資料之位元組可定址記憶體位置。SRAM大小指示按位元組計量之第一回應資料之大小。DRAM位置指示額外回應資料之位元組可定址記憶體位置。DRAM大小指示按位元組計量之額外回應資料之大小。 在例示性查找表460中,對命令「0x0A」之回應係回應圖4A中所圖解說明之資料410。如所圖解說明,第一回應資料之初始部分411儲存於暫存器「$1」中。第一回應資料412儲存於SRAM記憶體位置「0x00」處且具有大小Y。此對應於圖4A中所圖解說明之第一回應資料412之位元組X至X+Y-1。額外回應資料儲存於一DRAM記憶體位置「0x0000」處且具有大小Z。 在某些情形中,對一命令之回應資料之大小小於SRAM 120之總大小。舉例而言,SRAM之大小可係256個位元組且一回應資料之大小可係僅8個位元組,且因此小於SRAM之大小。在此一情形中,串列仿真器裝置110亦將對額外命令之第一回應資料儲存於SRAM 120中。若回應資料超過SRAM 120之其餘大小,則將任何額外回應資料儲存於DRAM 125中。 在一項實施例中,為了支援用於多個命令之快速回應時間,將對每一命令之第一回應資料限制於小於SRAM 120之大小的一大小。此大小由串列裝置仿真器110基於對串列介面進行仿真所需之回應時間而設置。大小經設置,使得到時串列裝置仿真器110已將整個第一回應資料發送至主機裝置150,其已自DRAM 125讀取足夠數量之額外回應資料以將該額外回應資料自DRAM 125不中斷地發送至主機裝置150。 在一項實施例中,查找表212被劃分成將命令映射至暫存器位置、將命令映射至SRAM位置及大小且將命令映射至DRAM位置及大小的單獨子表。此允許查找表212節省儲存空間,乃是因為並非每一命令皆可具有一DRAM位置及大小。實例性流程
圖5係圖解說明根據一實施例擷取對一命令之回應資料之一程序。在一項實施例中,圖5之流程係串列裝置仿真器110所為。 串列裝置仿真器110儲存對一或多個命令之回應資料之一或多個項。因此,最初,串列裝置仿真器110將502對一命令之回應資料之一初始分段儲存於一暫存器(諸如暫存器210)集合中。 串列裝置仿真器110亦將504一第一回應資料儲存於SRAM 120中。第一回應資料具有等於或小於SRAM 120之大小容量的一大小。 另外,串列裝置仿真器110將506第一回應資料在SRAM中之記憶體位置及SRAM中第一回應資料之大小儲存於一查找表中。在一項實施例中,此係查找表212。 若對命令之回應資料超過SRAM 120之大小容量,則串列裝置仿真器110可將508對彼命令之額外回應資料儲存於DRAM 125中。串列裝置亦將510額外回應資料在DRAM中之記憶體位置及額外回應資料之大小儲存於查找表中。 串列裝置仿真器110自一主機裝置(諸如主機裝置150)接收512一命令。 串列裝置仿真器110依據查找表判定514對命令之一回應資料之大小及位置。串列裝置仿真器110亦判定514是否包含對命令之額外回應資料及是否儲存於DRAM中。 串列裝置仿真器110按照由查找表中之記憶體位置指示自暫存器及SRAM擷取516回應資料。串列裝置仿真器524將回應資料自暫存器及SRAM發送至主機裝置。 若串列裝置仿真器110判定命令確實包含額外回應資料,則串列裝置仿真器110按照查找表中之記憶體位置指示自DRAM 125擷取520額外回應資料。串列裝置仿真器110將522額外回應資料發送至主機裝置150。 在一項實施例中,回應資料自暫存器、SRAM及DRAM (516/524及520/522)之擷取及發送係同時(例如,並行)執行的。藉由同時自暫存器、SRAM及DRAM擷取資料,串列裝置仿真器110能夠對一快速回應時間進行仿真(類似於一串列裝置)但要搭配使用較便宜記憶體組件。 舉例而言,在一特定回應中,串列裝置仿真器110自暫存器、SRAM及DRAM並行擷取回應資料。自暫存器擷取資料係最快的(例如,幾奈秒),且亦可以最低延時將此資料發送至主機裝置150。在自暫存器擷取並發送資料時,串列裝置仿真器110亦存取SRAM。雖然存取SRAM之時間較慢,但等到來自暫存器之回應資料被發送至主機裝置時,已擷取SRAM中之回應資料並準備將其發送至主機裝置。類似地,儘管存取DRAM之時間比存取SRAM之時間慢,但等到來自SRAM之回應資料已被發送至主機裝置時,已自DRAM擷取回應資料並準備將其發送至主機裝置。因此,自多個記憶體位置並行擷取此資料有利地允許製造成本較低之記憶體之一快速回應時間。額外考慮
已關於有限數目個實施例詳細地闡述了本發明。熟習此項技術者將瞭解可另外在其他實施例中實踐本發明。此外,本文中所闡述之各種系統組件之間的功能性之特定劃分僅係例示性的而非強制性的;由一單個系統組件執行之功能可替代地由多個組件執行,且由多個組件執行之功能可替代地由一單個組件執行。此外,應注意,本說明書中所使用之語言主要出於易讀性及指導性目的而選擇,且可並非為描述或限制發明標的物而選擇。因此,本發明之揭示內容意欲說明而非限制本發明之範疇。
100‧‧‧環境
110‧‧‧串列裝置/串列裝置仿真器/串列仿真器裝置
115‧‧‧控制模組
120‧‧‧靜態隨機存取記憶體
125‧‧‧動態隨機存取記憶體
130‧‧‧數位邏輯/數位邏輯模組
135‧‧‧直接記憶體存取控制器
140‧‧‧收發器
150‧‧‧主機裝置
210‧‧‧暫存器
212‧‧‧查找表
230‧‧‧回應邏輯
232‧‧‧記憶體存取邏輯
310‧‧‧設定模組
312‧‧‧數位邏輯參數模組
314‧‧‧記憶體寫入模組
410‧‧‧回應資料/資料
411‧‧‧初始部分
412‧‧‧第一回應資料
414‧‧‧額外回應資料
420‧‧‧暫存器位址
430‧‧‧靜態隨機存取記憶體位址範圍
440‧‧‧動態隨機存取記憶體位址範圍
450‧‧‧未使用空間
460‧‧‧實例/例示性查找表
圖1圖解說明具有一主機裝置及串列裝置之一環境之一實施例。 圖2圖解說明根據一實施例的圖1之數位邏輯。 圖3圖解說明根據一實施例的圖1之控制模組。 圖4A圖解說明一回應資料跨越暫存器、SRAM及DRAM之一分佈之一實例。 圖4B圖解說明指示圖4A中所圖解說明之回應資料之記憶體位置及之回應資料大小之查找表的一實例。 圖5係根據一實施例圖解說明擷取對一命令之回應資料之一程序。