TWI406130B - 資料處理系統、控制器及其搜尋特定記憶體區的方法 - Google Patents

資料處理系統、控制器及其搜尋特定記憶體區的方法 Download PDF

Info

Publication number
TWI406130B
TWI406130B TW098107686A TW98107686A TWI406130B TW I406130 B TWI406130 B TW I406130B TW 098107686 A TW098107686 A TW 098107686A TW 98107686 A TW98107686 A TW 98107686A TW I406130 B TWI406130 B TW I406130B
Authority
TW
Taiwan
Prior art keywords
read
block
logical
control unit
data
Prior art date
Application number
TW098107686A
Other languages
English (en)
Other versions
TW201033807A (en
Inventor
huan sheng Li
Meng Chang Chen
Original Assignee
Phison Electronics Corp
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 Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW098107686A priority Critical patent/TWI406130B/zh
Priority to US12/437,832 priority patent/US8281072B2/en
Publication of TW201033807A publication Critical patent/TW201033807A/zh
Application granted granted Critical
Publication of TWI406130B publication Critical patent/TWI406130B/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/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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Description

資料處理系統、控制器及其搜尋特定記憶體區的方法
本發明是有關於一種搜尋記憶體區的方法,且特別是有關於一種資料處理系統、控制器及其搜尋特定記憶體區的方法。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
另一方面,隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統、安全模組及記憶體之組件的積體電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存資料的功能外還能達到對其所儲存的資料加以保護的功能。使用全球行動通信系統(GSM)機制之蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module,SIM)卡為智慧卡的其中一個應用範例。然而,智慧卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的記憶卡作結合,以擴增智慧卡的儲存容量。
在習知技術中,結合快閃記憶體與智慧卡的應用是透過特殊命令來區別傳送給智慧卡或快閃記憶體的資料,此特殊命令可能會造成硬體裝置或驅動程式無法支援的問題。此外,在習知技術中是比對此特殊命令中關於所傳送資料串的型態資訊來判斷此資料串是否為智慧卡的命令格式。然而,此方法往往會造成一般檔案資料與屬於智慧卡的命令格式碰撞的問題(即將一般檔案資料誤判為智慧卡的資料串)。
另外,在一些具有快取記憶體(Cache)之電子產品的應用中,因這些電子產品本身的限制,智慧卡與電子產品之間資料串的傳遞並無法繞過快取記憶體,而使得智慧卡所產生的回應訊息並無法被無誤地回傳至所依附的電子產品,進而限制智慧卡在這類具有快取記憶體之電子產品上的應用。舉例來說,在一個Java系統的行動電話中,因Java系統並不支援諸如Non Cache等不須透過快取記憶體而直接地對非揮發性記憶體進行存取的指令,故很難將智慧卡和快閃記憶體以整合為記憶卡的形式應用在這類Java系統的行動電話中。請參考圖1,圖1為習知搭配記憶卡12之主控單元10的功能方塊圖。主控單元10為一種電子產品(如:Java系統的行動電話),並具有快取記憶體14,而記憶卡12具有快閃記憶體16和智慧卡晶片18。主控單元10與記憶卡12之間的資料傳遞路徑都會經過快取記憶體14。然而,因為快取記憶體14會暫存最近主控單元10與記憶卡12之間所傳遞的資料之緣故,當主控單元10欲從智慧卡晶片18獲得資料時,若快取記憶體14內已經存有與讀取指令相符的資料時,則快取記憶體14就會將相符的資料傳送至主控單元10。然而,在這樣的架構下,智慧卡晶片18的回應訊息往往會被快取記憶體14已有的資料所取代,而使得智慧卡晶片18的加密及安全通信的功能大受影響。此外,習知在快取記憶體中搜尋非快取記憶體區所需花費的時間過長,而使得整體的效率難以突破和提升。
基此,有需要一種在快取記憶體中搜尋非快取記憶體區的方法,在可無誤地傳遞智慧卡之回應訊息的同時,又能快速地從具有晶片的周邊單元中搜尋其資料未被儲存至一主控單元之快取記憶體的邏輯區塊,進而提高系統的整體效能。
本發明提供一種搜尋非快取記憶體區的方法,以縮短搜尋到非快取記憶體區所需的時間。
本發明提出一種搜尋特定記憶體區的方法,用以從一周邊單元中搜尋其資料未被儲存至一主控單元之快取記憶體的邏輯區塊。所述主控單元耦接該周邊單元。此方法包括:(a)該主控單元設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊;(b)執行一讀取指令,該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料;(c)該主控單元接收一回傳資料串,該回傳資料串是因回應執行該讀取指令而產生;(d)該主控單元從該回傳資料串中擷取出一寫入符記;(e)該主控單元判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係;以及(f)倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,並重複執行步驟(b)、(c)、(d)和(e),直到在重複執行的步驟(d)中所擷取出的另一寫入符記在重複執行的步驟(e)中被判斷為與該主控單元所儲存的該寫入符記之間具有該對應關係為止,其中被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
本發明提出一種主控單元。所述的主控單元耦接至一周邊單元,並包括一快取記憶體以及一資料處理模組。該快取記憶體用以暫存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊。其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊。之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料。該資料處理模組從該回傳資料串中擷取出一寫入符記,並判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係,而倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與該主控單元所儲存的該寫入符記之間具有該對應關係的寫入符記為止。該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料。被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
本發明提出一種資料處理系統。所述的資料處理系統包括一周邊單元以及一主控單元。所述的主控單元耦接該周邊單元並包括一快取記憶體和一資料處理模組。該快取記憶體用以暫存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊。其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊。之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料。該資料處理模組從該回傳資料串中擷取出一寫入符記,並判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係,而倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與該主控單元所儲存的該寫入符記之間具有該對應關係的寫入符記為止。該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料。被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
在本發明之一實施例中,上述步驟(d)另包括從該回傳資料串中擷取出一讀取符記,而該方法另包括:(g)該主控單元判斷所擷取出的該讀取符記是否與該主控單元前一次所擷取出的一讀取符記相差一預設值;以及(h)倘若所擷取出的該讀取符記與該主控單元前一次所擷取出的讀取符記不相差該預設值,則重新設定該指標,並重複執行步驟(b)、(c)、(d)、(e)、(f)和(g),直到在重複執行的步驟(d)中所擷取出的讀取符記在重複執行的步驟(g)被判斷為與該主控單元前一次所擷取出的讀取符記相差該預設值為止。
在本發明之一實施例中,所有被執行的讀取指令係在多個回合內被執行,而該多個回合係依據該指標被重新設定前後所對應的兩邏輯區塊的位址之間的變異量為正值或負值來區分。
在本發明之一實施例中,每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距為一定值。
在本發明之一實施例中,上述多個回合包括一第一回合和一第二回合,而在該第二回合內被執行的讀取指令所對應的多個邏輯區塊之位址是藉由將該第一回合內被執行的讀取指令所對應的多個邏輯區塊之位址皆偏移一預設邏輯區塊數後獲得。
在本發明之一實施例中,於每一個回合內被執行的多個讀取指令其所對應的邏輯區塊中,除該回合內之第一個和最後一個被執行的讀取指令所對應的兩邏輯區塊之外,對在該回合內任一個被執行的讀取指令所對應的邏輯區塊而言,該邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目小於該邏輯區塊與下一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目。
在本發明之一實施例中,上述多個回合包括一第一回合和一第二回合,而在該第二回合內第一個被執行的讀取指令所對應的邏輯區塊之位址是藉由將該第一回合內第一個被執行的讀取指令所對應的邏輯區塊之位址偏移一預設邏輯區塊數後獲得。
在本發明之一實施例中,在第一回合內,除第一個被執行的讀取指令所對應的邏輯區塊之外,該第一回合內的每一個被執行的讀取指令所對應的邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間所相隔的邏輯區塊之數目是依據該複數個邏輯區塊的總數以及前一個被執行的讀取指令所對應的該邏輯區塊位於該複數個邏輯區塊中的位置而決定。
在本發明之一實施例中,在該多個回合的第一回合內所執行的單一個讀取指令係設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與最後一個邏輯區塊之間的一第一區塊,而預計在該多個回合的第二回合內執行的兩個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第一區塊之間的一第二區塊,以及最後一個邏輯區塊與該第一區塊之間的一第三區塊。
在本發明之一實施例中,預計在該多個回合的第三回合內執行的四個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第二區塊之間的一第四區塊、該第二區塊與該第一區塊之間的一第五區塊、該第一區塊與該第三區塊之間的一第六區塊,以及該第三區塊與最後一個邏輯區塊之間的一第七區塊。
在本發明之一實施例中,每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距是變動的間距。
在本發明之一實施例中,在每一次重新設定該指標時,係將一間距累加至該指標,以重新設定該指標,而倘若該指標在累加該間距後超出該複數個邏輯區塊的位址範圍,則重新設定後的該指標等於累加後的該指標減去該複數個邏輯區塊的總容量。
在本發明之一實施例中,所述的間距為變動的間距。
在本發明之一實施例中,所述的間距會隨著該指標被重新設定的先後順序,依序地遞增至一最大間距為止。
在本發明之一實施例中,上述主控單元與該周邊單元之間所有指令與資料的傳遞皆會通過該快取記憶體。
本發明提出一種搜尋特定記憶體區的方法,其由一主控單元執行以在一周邊單元中搜尋特定記憶體區。該主控單元耦接一周邊單元,且該主控單元儲存一寫入符記。所述之方法包括:(a)設定一指標,該指標是對應到該周邊單元的複數個邏輯區塊中的一邏輯區塊;(b)執行一讀取指令,其中該讀取指令是設定從該指標所對應的邏輯區塊中讀取資料;(c)接收一回傳資料串,其中該回傳資料串是因執行該讀取指令而產生;(d)依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係;以及(e)倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,並重複執行步驟(b)、(c)和(d),直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止。其中每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
本發明提出一種主控單元。所述的主控單元耦接至一周邊單元,並包括一快取記憶體以及一資料處理模組。該快取記憶體用以暫存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊。其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊。之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料。該資料處理模組依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係。倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止。該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料。此外,每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
本發明提出一種資料處理系統。所述的資料處理系統包括一周邊單元以及一主控單元。所述的主控單元耦接該周邊單元並包括一快取記憶體和一資料處理模組。該快取記憶體用以暫存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊。其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊。之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料。該資料處理模組依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係。倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止。該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料。此外,每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
在本發明之一實施例中,上述的複數個邏輯區塊中的每一個邏輯區塊具有相同的容量。
在本發明之一實施例中,所述的資料處理模組從該回傳資料串中擷取出另一寫入符記,而當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記一致時,該資料處理模組即判斷該回傳資料串與該寫入符記之間具有該對應關係。
本發明在執行讀取指令以等待接收晶片的回應訊息的期間,藉由使各讀取指令所對應的邏輯區塊彼此相隔至少一個邏輯區塊的方式,而迅速地從具有晶片的周邊單元中搜尋其資料未被儲存至一主控單元之快取記憶體的邏輯區塊,進而達到提高系統的整體效能的目的。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
本發明提供一種資料處理系統、控制器及其搜尋特定記憶體區的方法,以在複數個邏輯區塊中搜尋其資料未被儲存至快取的邏輯區塊,而在可無誤地傳遞智慧卡之回應訊息的同時,又能快速地從具有晶片的周邊單元中搜尋其資料未被儲存至主控單元之快取記憶體的邏輯區塊,進而提高系統的整體效能。資料串得以藉由寫入指令而從主控單元被傳送至晶片。其中,值得說明的是主控單元可為一手機,個人數位助理(Personal Digital Assistant,PDA),個人電腦或其他具有快取記憶體之電子產品,周邊單元可為記憶卡,儲存裝置或同時具有智慧卡及其他儲存單元之電子設備。之後,主控單元藉由執行複數個讀取指令,晶片所產生的回應訊息可無誤地被接收。其中,一寫入符記會被用來檢驗回傳資料的正確性,以使主控單元得以區別所接收到回應訊息是暫存在快取記憶體中的舊有回應訊息,亦或是晶片所產生的最新回應訊息。其中,此文所稱之快取記憶體,泛指當主控單元處理資料時,會較周邊單元更先去搜尋資料的記憶體單元,其中,如果所欲搜尋之資料已暫存於此快取記憶體,則主控單元單元就不需再至周邊單元中讀取資料。以下將以數個範例實施例並配合所附圖式來詳細說明本發明。但必須瞭解的是,此些範例實施例並非限制本發明,舉例來說,上述晶片除了可為智慧卡晶片之外,亦可以是射頻識別(Radio Frequency Identification,RFID)晶片、無線傳輸晶片(如:藍芽晶片)或多媒體控制晶片(如:數位錄音晶片)…等。
請參照圖2,圖2是根據本發明一實施例繪示的資料處理系統的功能方塊圖,此資料處理系統會採用本發明之搜尋非快取特定記憶體區的方法,以從周邊單元100中搜尋其資料未被儲存至主控單元200之快取記憶體212的邏輯區塊。資料處理系統包括主控單元200與周邊單元100。其中,主控單元200具有一資料處理模組206,而資料處理模組206可以一韌體或硬體方式實施。周邊單元100則具有一控制器110,用以控制周邊單元100的操作,以及控制周邊單元100與主控單元200之間的資料傳遞。通常周邊單元100會與主控單元200一起使用,以使主控單元200可將指令和資料傳送到周邊單元100。特別是,周邊單元100還包括用以執行安全驗證等功能的智慧卡晶片140,而控制器110以及主控單元200會將訊息傳送至智慧卡晶片140,並無誤地回傳智慧卡晶片140的回應訊息至主控單元200。主控單元200的快取記憶體212會暫存主控單元200最近曾使用過的資料,以提升主控單元200整體的資料處理速度。
在本實施例中,周邊單元100具有用以儲存一般資料的非揮發性記憶體130,電性連接控制器110。然而,須說明的,非揮發性記憶體130對本發明來說是選擇性的元件,而非必要的元件。控制器110會控制周邊單元100的整體運作,例如資料串的傳遞、儲存、讀取與抹除等。控制器110包括微處理單元110a、記憶體介面110b與緩衝記憶體110c。微處理單元110a耦接匯流排連接介面120,且會執行匯流排連接介面120從主控單元200所接收的指令,並協調控制器110內的各個元件以控制控制器110的整體運作。記憶體介面耦接於非揮發性記憶體130與微處理單元110a之間,用以存取非揮發性記憶體130。換言之,主控單元200欲寫入至非揮發性記憶體130的資料會經由記憶體介面110b轉換為非揮發性記憶體130所能接受的格式。然而,須說明的,因非揮發性記憶體130對本發明來說是選擇性的元件,而非必要的元件。故在本發明的其他不具非揮發性記憶體130的實施例當中,控制器110不必具有記憶體介面110b。緩衝記憶體110c用以暫時地儲存系統資料(例如邏輯實體對映表)或者主控單元200所讀取或寫入的資料。在本實施例中,緩衝記憶體110c為靜態隨機存取記憶體(static random access memory,SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory,DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory,MRAM)、相變化記憶體(Phase Change Random Access Memory,PRAM)、同步動態隨機存取記憶體(Synchronous DRAM,SDRAM)或其他適合的記憶體亦可應用於本發明。
智慧卡晶片140電性連接控制器110,並且用以執行計算、加密、雙向通信及安全認證等功能。在本發明實施例中,智慧卡晶片140為相容於ISO 7816標準的接觸式智慧卡晶片。然而,必須瞭解的是,本發明不限於此。例如,智慧卡晶片140亦可是相容於ISO 14443、ISO 15408或其他安全晶片標準的接觸或非接觸式智慧卡晶片,此外,值得說明的是,控制器110與智慧卡晶片140可各為一獨立晶片,亦可合併封裝為一單一晶片。
在本發明實施例中,非揮發性記憶體130為單層記憶胞(Single Level Cell,SLC)反及(NAND)快閃記憶體。然而,本發明不限於此,在本發明另一實施例中,非揮發性記憶體130為亦可為多層記憶胞(Mulki Level Cell,MLC)反及(NAND)快閃記憶體或其他適合的非揮發性記憶體。此外,雖未繪示於本實施例中,但控制器110可更包括錯誤校正模組(ECC Module,Error Correction Code Module)與電源管理模組等功能模組。
在本實施例中,周邊單元100可為智慧卡或整合了智慧卡和非揮發性記憶體之整合性安全數位(secure digital,SD)記憶卡。但必須瞭解的是,在本發明另一實施例中周邊單元100亦可以是多媒體卡(Multi Media Card,MMC)記憶卡或其他的記憶裝置。
本實施例中,周邊單元100除了控制器110、非揮發性記憶體130以及智慧卡晶片140之外還包括匯流排連接介面120。匯流排連接介面120電性連接控制器110,並且與主控單元200耦接,用以從主控單元200接收指令和資料,並將周邊單元100的訊息傳送至主控單元200。在本實施例中,匯流排連接介面120則為一SD介面。必須瞭解的是,匯流排連接介面120亦可為其他適合的介面。例如當周邊單元100為MMC記憶卡時,匯流排連接介面120為MMC介面。
主控單元200藉由資料處理模組206來操作周邊單元100,以完成根據本發明實施例的搜尋特定記憶體區的方法。此外,必須瞭解的是主控單元200亦包含其他元件,例如:處理器、作業系統...等。在本實施例中,主控單元200與周邊單元100之間所有指令與資料的傳遞皆會通過快取記憶體212。此外,上述主控單元200可為個人電腦、行動電話、筆記型電腦、個人數位助理機(PDA)....等。
基此,在主控單元200在對上述含有智慧卡晶片140的周邊單元100進行操作時,控制器110配合主控單元200的資料處理模組206能夠正確地將資料或指令傳送至智慧卡晶片140,並無誤地將智慧卡晶片140的回應訊息傳遞至主控單元200。以下將配合圖3和圖4詳細說明控制器110與主控單元200之間所執行資料傳送程序的流程。其中,圖3是根據本發明第一實施例繪示主控單元200運作時的流程圖,而圖4是根據本發明第一實施例繪示周邊單元100運作時的流程圖。
請先參照圖3,每當主控單元200要傳送資料至智慧卡晶片140之前,主控單元200會先獲得或產生一寫入符記(write token)WT,並記錄該寫入符記WT(步驟S301)。其中,寫入符記WT可依一設定之原則產生,如依序、亂數或是依據一系統時間產生,故一般說來,在每次主控單元200欲傳送資料至智慧卡晶片140時,主控單元200所獲得的寫入符記WT大多會彼此不同。此外,當主控單元200傳送寫入指令至智慧卡晶片140時,寫入符記WT會隨著寫入指令被傳送到控制器110,且寫入符記WT亦會被包含在回傳至主控單元200的資料串中。主控單元200的資料處理模組206會比較傳送至控制器110的寫入符記是否與控制器110所回傳的寫入符記一致,以作為在判斷回傳資料是否正確時的依據。在另一實施例中,當主控單元200產生寫入符記WT後,寫入符記WT會再經編輯並隨著寫入指令被傳送到控制器110,故當主控單元200傳送寫入指令至控制器110時,此編輯過之寫入符記會隨著寫入指令被傳送到控制器110,且此編輯過之寫入符記亦會被包含在控制器110回傳至主控單元200的資料串中。資料處理模組206會依據控制器110所回傳的資料串,判斷此回傳資料串與主控單元200所儲存的寫入符記之間是否具有一對應關係,以作為在判斷回傳資料是否正確時的依據。在另一實施例中,主控單元200的資料處理模組206會比較傳送至控制器110之編輯過的寫入符記與控制器110所回傳的寫入符記之間是否具有一對應關係,以作為在判斷回傳資料是否正確時的依據。此外,在另一實施例,寫入符記可於傳送至控制器110時,經微處理單元110a編輯後再儲存於緩衝記憶體110c或非揮發性記憶體130,並將編輯過的寫入符記加入到回傳至主控單元200的資料串中。
之後,在主控單元200傳送資料或指令至周邊單元100的智慧卡晶片140之前,主控單元200會將所欲傳送資料或指令與一特定標記502及寫入符記WT合併,以形成資料串(步驟S303)。如圖5所示,在本實施例中,主控單元200傳送至控制器110的資料或指令504為一指令-應用程式協定資料單元(Command-Application Protocol Data Unit,C-APDU),而C-APDU 504與特定標記502以及寫入符記506合併後,即可形成資料串500,以作為主控單元200與智慧卡晶片140之間的聯繫之用。然而須注意的,在本發明周邊單元100不具有非揮發性記憶體130的其他實施例中,資料串500可不具有特定標記502。亦即,對這些不具有非揮發性記憶體130的實施例而言,特定標記502不必包含在資料串500當中。換言之,在上述不具有非揮發性記憶體130的實施例,當進行步驟S303時,只須合併C-APDU 504與寫入符記506,以形成資料串500。在本實施例中,特定標記502是位於資料串500的數個最高有效字元(Most Significant Bit,MSB)而形成在C-APDU 504之前,寫入符記506則是位於資料串500的數個最低有效字元(Least Significant Bit,LSB)而形成在C-APDU 504之後。然而,須注意的,特定標記502和寫入符記506在資料串500中的位置並不以此為限,例如:在本發明的另一個實施例中,可藉由一編碼器,將特定標記502和寫入符記506的各個位元分散在資料串500之中,之後在藉由相同的編碼器從資料串500中擷取出特定標記502和寫入符記506。另外,在本發明的一實施例中,特定標記502和寫入符記506位於資料串500的同一端;在本發明的另一實施例中,特定標記502位於資料串500的右端,而寫入符記506位於資料串500的左端。此外,在另一實施例中,特定標記是由控制器110依據欲傳送資料或指令之位址產生。在另一實施例中,主控單元200是將所欲傳送資料或指令與寫入符記WT合併以形成資料串後傳送至控制器110,而在所傳送的指令(如讀取指令或寫入指令)中具有資料讀取位址或資料寫入位址,控制器110則於接收到主控單元200所傳送的指令後,依據指令中的位址對相對應之位址執行相關的操作(讀取或寫入)。此外,由於智慧卡晶片140及非揮發性記憶體130具有不同之位址區段,故在本實施例中,無需產生該特定標記502。
另須說明的,在本實施例中,倘若主控單元200存取的對象為非揮發性記憶體130而不是智慧卡晶片140的話,則上述的特定標記502及寫入符記506並不會被併入至主控單元200傳送給控制器110的資料串中。在後面的說明中,將會進一步地說明控制器110如何依據所接收到的資料串中是否含有上述的特定標記502,來判斷資料串所要傳送的目的地是非揮發性記憶體130亦或是智慧卡晶片140。
當資料串500形成之後,主控單元200會藉由寫入指令,將資料串500傳送至周邊單元100的控制器110(步驟S305)。亦即,主控單元200會傳送寫入指令至周邊單元100,而此一寫入指令係被設定為將資料串500寫入至周邊單元100。
當資料串500被傳送到控制器110之後,主控單元200會依序地傳送複數個讀取指令至周邊單元100的控制器110,直到該主控單元自周邊單元100接收到智慧卡晶片140所產生的回應訊息為止。其中,上述每一個讀取指令被設定為讀取周邊單元100的複數個邏輯區塊B1 至BN 當中的一邏輯區塊的資料。在本發明中,上述複數個邏輯區塊B1 至BN 可以屬於單一特定檔案,或屬於多個特定檔案。此外,上述複數個邏輯區塊B1 至BN 中的每一個邏輯區塊具有相同的容量。請參考圖3,在將複數個讀取指令傳送到周邊單元100之前,主控單元200的資料處理模組206會設定指標BP ,以將指標BP 對應到上述複數個邏輯區塊B1 至BN 當中的一邏輯區塊BS (步驟S307)。其中,邏輯區塊BS 在本文中係被定義為「啟始邏輯區塊」,用以表示第一個被執行的讀取指令所對應的邏輯區塊。須說明的,啟始邏輯區塊BS 可以是複數個邏輯區塊B1 至BN 當中的任何一個邏輯區塊。舉例來說,本發明的部分實施例中係將啟始邏輯區塊BS 設定為第一個邏輯區塊B1 ,而在本發明的另外部分實施例中係從複數個邏輯區塊B1 至BN 當中隨機地選出一個邏輯區塊作為啟始邏輯區塊BS 。當將指標BP 設定為啟始邏輯區塊BS 之後,主控單元200會傳送一讀取指令(步驟S309),而此一讀取指令被設定讀取指標BP 所對應的邏輯區塊中讀取資料。另須說明的,在主控單元200傳送該讀取指令之前,資料管理模組206會先確認該快取記憶體212是否已經儲存有指標BP 所對應的邏輯區塊的資料,若有,則資料管理模組206會直接從快取記憶體212中讀取,而不會再從周邊單元100讀取。另一方面,倘若快取記憶體212尚未儲存有指標BP 所對應的邏輯區塊的資料,則步驟S309中的讀取指令則會傳送到周邊單元100的控制器110,並由控制器110執行。在本實施例中,當控制器110接收到主控單元200所輸出的讀取指令之後,控制器110會先判斷此讀取指令是否被設定為讀取上述複數個邏輯區塊B1 至BN 的資料,而倘若該讀取指令被設定為讀取上述複數個邏輯區塊B1 至BN 的資料,控制器110是由一暫存器中直接產生一預設樣式(pattern)的資料(例如所有位元全為零的資料),以減少因讀取資料而耗費的時間。
請再參考圖3,主控單元200的資料處理模組206由周邊單元100或快取記憶體212得到的所需讀取位址所對應的資料串(步驟S311),其中,上述回傳的資料串中包含有上述的寫入符記WT。詳言之,當微處理單元110a接收到包含有寫入符記WT的資料串500時,會儲存其中的寫入符記WT,之後當微處理單元110a回應主控單元200所傳送的讀取指令時,會將所儲存的寫入符記WT加到要回傳的資料串內。請參考圖6,圖6為微處理單元110a回傳至資料處理模組206的資料串600之資料結構圖。資料串600包含有一資料區602,以及一寫入符記區604,其中資料區602用來記載智慧卡晶片140所產生的訊息或記載上述預設樣式的資料,而寫入符記區604則是用來記載上述的寫入符記WT。如圖6所示,寫入符記區604位於資料區602之後。然而,本發明並不以此為限,例如:在本發明的另一實施例中,寫入符記區604位於資料區602之前。
當主控單元200的資料處理模組206在步驟S311中接收到回傳的資料串600後,會從回傳的資料串600中擷取出寫入符記WT(步驟S313)。其中,從回傳的資料串600中所擷取出寫入符記WT可以是編輯過或是未編輯過的。之後,在步驟S315中,主控單元200的資料處理模組206會判斷相對應該讀取指令之資料串600中的寫入符記WT是否與主控單元200所儲存的寫入符記WT一致。倘若上述兩寫入符記WT彼此一致,則進行步驟S319;而倘若上述兩寫入符記WT並不一致,則進行步驟S317。一般說來,在不重新啟動資料處理模組206的情況下,微處理單元110a所回傳的資料串600中的寫入符記WT大多會與主控單元200所儲存的寫入符記WT一致。然而,因為主控單元200具有快取記憶體212的緣故,快取記憶體212中會存有先前微處理單元110a所回傳的資料串,而當資料處理模組206被重新啟動而使得主控單元200所記錄的寫入符記WT有所變動後,即很有可能會發生主控單元200所記錄的寫入符記WT與回傳的資料串600中的寫入符記WT彼此不一致的情形。因此,在步驟S315中,倘若回傳的資料串600中的寫入符記WT與主控單元200所儲存的寫入符記WT並不一致,則此回傳的資料串600即可被判定為是快取記憶體212所暫存的舊有資料,而非由控制器100因回應當次讀取指令所產生的新回應訊息。
在上述步驟S315中,資料處理模組206判斷回傳的資料串600中的寫入符記WT是否與主控單元200所儲存的寫入符記WT一致,其目的在本質上是要判斷回傳資料串600與主控單元200所儲存的寫入符記WT之間是否具有一對應關係,或是判斷回傳的資料串600中的寫入符記WT與主控單元200所儲存的寫入符記WT之間是否具有一對應關係。其中,對於未經資料處理模組206或微處理單元110a編輯過的寫入符記WT而言,資料處理模組206可藉由直接比較回傳的資料串600中的寫入符記WT是否與主控單元200所儲存的寫入符記WT一致,來判斷上述的對應關係是否存在。詳言之,倘若回傳的資料串600中的寫入符記WT與主控單元200所儲存的寫入符記WT一致,則表示上述的對應關係存在;反之,若兩寫入符記WT並不一致,則表示上述的對應關係並不存在。此外,對於曾被資料處理模組206或微處理單元110a編輯過的寫入符記WT來說,當資料處理模組206於步驟S315中判斷前述對應關係是否存在時,資料處理模組206會先將從回傳資料串600中所擷取出寫入符記WT經由逆編輯程序還原為原先未被編輯前的寫入符記,之後再比較還原後的寫入符記是否與主控單元200所儲存的寫入符記WT一致,而倘若還原後的寫入符記WT與主控單元200所儲存的寫入符記WT一致,則表示上述的對應關係存在;反之,若還原後的寫入符記與主控單元200所儲存的寫入符記WT並不一致,則表示上述的對應關係並不存在。當判斷出上述對應關係存在後,會進行步驟S319;反之,則進行步驟S317。
在步驟S317中,主控單元200的資料處理模組206會重新設定指標BP ,以重複執行步驟S311~S319。至於如何重新設定指標BP ,將會在後續的說明中詳加說明。
在步驟S319中,主控單元200的資料處理模組206會判斷回傳的資料串600的資料區602內的資料是否與上述的預設樣式一致。倘若資料串600的資料區602內的資料全部與上述的預設樣式一致,則表示控制器110的微處理單元110a尚未接收到智慧卡晶片140的回應訊息,而會進行步驟S317;而相對的,倘若資料串600的資料區602內的資料與上述的預設樣式並不一致,則表示控制器110的微處理單元110a可能已經接收到智慧卡晶片140的回應訊息,而會進行步驟S321,以將所回傳的資料串600的資料區501內的資料視為智慧卡晶片140所產生的回應訊息。
即使資料串600的資料區602內的資料並不是上述的預設樣式,只要主控單元200所記錄的寫入符記WT與回傳的資料串600中的寫入符記WT之間並無上述的對應關係,主控單元200的資料處理模組206仍不會將所接收到的資料串600之資料區602內的資料視為智慧卡晶片140的回應訊息。故就資料的正確性而言,藉由步驟S317中對於寫入符記WT的比對動作,可避免主控單元200的資料處理模組206將快取記憶體212先前所暫存的資料誤認為由智慧卡晶片140所產生的回應訊息。舉例來說,假設在主控單元200開機至關機的期間,資料處理模組206先後被啟動兩次。在前一次資料處理模組206啟動期間,主控單元200藉由上述步驟S301~S311從智慧卡晶片140接收到回應訊息,而此一回應訊息在資料處理模組206重新被啟動後仍存於快取記憶體212中。在此情況下,倘若重新啟動的資料處理模組206在傳送訊息至智慧卡晶片140並等待智慧卡晶片140的回應訊息的期間並不進行步驟S315的判斷的話,則主控單元200的資料處理模組206即可能會將暫存在快取記憶體212的前次回應訊息誤認為本次的回應訊息,而導致資料上的錯誤。換言之,藉由步驟S315的判斷動作,資料處理模組206即可區別所接收到的回應訊息是本次的回應訊息還是快取記憶體212所暫存的前次回應訊息,進而使得資料的準確性會大幅地提高。
當主控單元200的資料處理模組206確認所接收到的回應訊息是本次的回應訊息後,資料處理模組206即會將所接收到的資料串600之資料區602內的資料視為智慧卡晶片140的回應訊息(步驟S321)。
相對於圖3所繪示的主控單元200與一智慧卡晶片140運作時的流程,周邊單元100與該主控單元200的運作流程則可參考圖4。首先,當周邊單元100開始運作時,控制器110的微處理單元110a會取得關於上述複數個邏輯區塊B1 至BN 的位址資訊(步驟S401),以作為後續比對主控單元200所傳送的讀取指令之用。之後,控制器110即可開始接收主控單元200所輸出的寫入指令(步驟S403),其中該寫入指令係被設定為寫入第一資料串至周邊單元100,而該第一資料串可以是如圖5中所示的資料串500或是其他的資料串。當控制器110接收到寫入指令之後,即會判斷該第一資料串是否含有如圖5所示的特定標記502(步驟S405)。倘若第一資料串不含有特定標記502,則控制器110的微處理單元110a會依據寫入指令所指派的位址,將第一資料串寫入至非揮發性記憶體130(步驟S407);相對的,倘若第一資料串含有特定標記502,則控制器110的微處理單元110a會將第一資料串中的寫入符記WT(如圖5中的寫入符記506)記錄在緩衝記憶體110c,並將特定標記502與寫入符記WT從第一資料串中去除,以產生第二資料串(如圖5中所示的C-APDU 504),再將第二資料串傳送至智慧卡晶片140(步驟S409)。如此一來,藉由偵測第一資料串中是否含有特定標記502,控制器110的微處理單元110a即可判斷資料串應該送往非揮發性記憶體130或送往智慧卡晶片140。須說明的,在本發明不具有非揮發性記憶體130的其他實施例中,因資料串500不具有特定標記502,故圖4的流程中的步驟S405和S407會予以省略,且在步驟S409中即不須將特定標記502從資料串500除去,而直接將資料串500的至少一部份傳送到智慧卡晶片140。另須說明的,在本發明的另一個實施例中,上述的第二資料串即為上述的第一資料串。換言之,微處理單元110a不會將特定標記502或寫入符記WT從第一資料串中去除,而是將第一資料串直接轉送到智慧卡晶片140。之後,智慧卡晶片140再從所接收到的第一資料串辨識出特定標記502、C-APDU 504和寫入符記WT。此外,本實施例中,第一資料串中的寫入符記WT除如上所述會記錄在緩衝記憶體110c之外。在本發明的另一實施例中,微處理單元110a會將第一資料串中的寫入符記WT記錄在非揮發性記憶體130。
當第二資料串被送往智慧卡晶片140之後,控制器110的微處理單元110a即會等待接收主控單元200所傳送過來的讀取指令(步驟S411),其中上述的讀取指令包含但不限於主控單元200於圖3之步驟S309所傳送的讀取指令。之後,控制器110的微處理單元110a會判斷所接收的讀取指令所指派的位址是否屬於上述的邏輯區塊B1 至BN (步驟S413),亦即微處理單元110a會判斷所接收的讀取指令是否被設定為讀取上述複數個邏輯區塊B1 至BN 的資料。若上述讀取指令所指派的位址並非屬於邏輯區塊B1 至BN ,則微處理單元110a會依據讀取指令所指派的位址讀取對應的資料(步驟S415),並將資料傳送至主控單元200;相對的,若上述讀取指令所指派的位址屬於上述的單一特定檔案,則微處理單元110a會再判斷使否已經接收到智慧卡晶片140的回應訊息(步驟S417),而在本實施例中,此回應訊息為智慧卡晶片140因接收到上述的第二資料串而產生,並且為一回應-應用程式協定資料單元(Response-Application Protocol Data Unit,R-APDU)。在步驟S417中,倘若微處理單元110a已經接收到智慧卡晶片140的回應訊息,則微處理單元110a會將智慧卡晶片140所產生的回應訊息會與記錄在緩衝記憶體110c(或非揮發性記憶體130)內的寫入符記WT合併成一第一回應訊息(步驟S421),再將此第一回應訊息回傳至主控單元200(步驟S423)。上述的第一回應訊息的資料結構與圖6所示資料串600的資料結構一致,其中資料區602用來記載智慧卡晶片140所產生的回應訊息,而寫入符記區604則用來記載寫入符記WT。
倘若在步驟S417中,微處理單元110a尚未接收到智慧卡晶片140的回應訊息,則控制器110的微處理單元110a會回傳一第二回應訊息至主控單元200,以回應所接收到的讀取指令(步驟S419)。在本實施例中,第二回應訊息的資料結構亦與圖6所示資料串600的資料結構一致,其中資料區602內的資料為上述的預設樣式,而寫入符記區604則用來記載寫入符記WT。當進行完步驟S419之後,微處理單元110a會再繼續等待主控單元200的下一個讀取指令,直到接收到智慧卡晶片140所產生的回應訊息,並回傳上述的第一回應訊息至主控單元200為止。
以下將就上述步驟S317中如何重新設定指標BP 詳加說明。請參考圖3和圖7A至圖7C,其中圖7A至圖7C用以說明本發明一實施例中設定指標BP 的方式。為方便說明起見,在圖7A至圖7C中所繪示的複數個邏輯區塊B1 至BN 係依序地排列成一列。複數個邏輯區塊B1 至BN 可區分為以白色區域標示的非快取區700以及以網點標示的快取區702和704,其中上述非快取區700內的邏輯區塊(例如:邏輯區塊Bh )其資料尚未被儲存至快取記憶體212,而上述快取區內702和704的邏輯區塊(例如:邏輯區塊B1 、B2 、BN )其資料已被儲存至快取記憶體212。
如上所述,在步驟S315中,倘若回傳的資料串600中的寫入符記WT與主控單元200所儲存的寫入符記WT之間並無上述的對應關係,則此回傳的資料串600即可被判定為是快取記憶體212所暫存的舊有資料,而非由控制器100因回應當次讀取指令所產生的新回應訊息。因此,在圖3藉由重複執行步驟S309~S317以重新設定指標BP 的循環過程中,所執行的複數個讀取指令會讀取到多個落於快取區內702和704的邏輯區塊,且這些讀取指令會在一個回合或多個回合內執行。如圖7A至7C所示,即繪示了在尋找位於非快取區700的邏輯區塊Bh 的過程中,共歷經了三個回合來執行讀取指令。其中,讀取指令會依序地在時間點t1 、t2 、t3 、t4 、t5 、t6 、t7 、t8 、t9 、t10 和t11 被執行,以讀取邏輯區塊B1 、Ba 、Bb 、Bc 、B2 、Bd 、Bf 、B3 、Bg 、和Bh 的資料,其中邏輯區塊B1 、Ba 、Bb 、Bc 、B2 、Bd 、Bf 、B3 和Bg 的資料已經暫存在快取記憶體212,而邏輯區塊Bh 的資料尚未被儲存在快取記憶體212。因在時間點t1 所執行的第一次讀取指令係被設定為讀取邏輯區塊B1 的資料,故在本實施例中,上述的啟始邏輯區塊BS 即為邏輯區塊B1 。此外,在本實施例中,當步驟S317被執行時,指標BP 會被設定為等於目前的指標BP 再加上一間距d,而使得相繼被執行的兩個讀取指令所對應的兩個邏輯區塊之間相間隔(d-1)個邏輯區塊。舉例來說,在時間點t1 和t2 所執行的兩個讀取指令所對應的邏輯區塊分別為B1 和Ba ,其中邏輯區塊Ba 的位址等於邏輯區塊B1 的位址加上d個邏輯區塊之資料位移,而邏輯區塊B1 和邏輯區塊Ba 之間相隔(d-1)個邏輯區塊。
須說明的,在本實施例中,d會是一個大於2的整數,故(d-1)會是大於1的整數,而使得被重新設定後的指標BP 所對應的邏輯區塊與指標BP 最近一次被重新設定前所對應的邏輯區塊之間相隔複數個邏輯區塊B1 ~BN 中的至少一個邏輯區塊。因變數d的存在,而使得相繼地被執行的讀取指令所對應的兩邏輯區塊之間的間隔被加大,故可使搜尋到非快取區700所需花費的時間縮短。
此外,當步驟S317被執行時,倘若目前的指標BP 再加上間距d後會超出最後一個邏輯區塊BN 的位址,則會進行下一回合的讀取指令,而下一回合內被執行的讀取指令所對應的多個邏輯區塊之位址是藉由將目前回合內被執行的讀取指令所對應的多個邏輯區塊之位址皆偏移一預設邏輯區塊數i後獲得,其中上述預設邏輯區塊數i為正整數,並可視情況調整。舉例來說,圖7A、圖7B和圖7C分別繪示在第一回合、第二回合和第三回合被執行的讀取指令所對應的邏輯區塊的位置,其中第二回合內所對應的多個邏輯區塊B2 、Bd 、Be 和Bf 之位址是藉由將第一回合內所對應的多個邏輯區塊B1 、Ba 、Bb 和Bc 之位址皆偏移預設邏輯區塊數i後獲得,其中i等於一。同樣地,第三回合內所對應的多個邏輯區塊B3 、Bg 和Bh 之位址是藉由將第二回合內所對應的邏輯區塊B2 、Bd 和Be 之位址皆偏移預設邏輯區塊數i後獲得,即每一回合的起始邏輯區塊位址是為上一回合之起始邏輯區塊位址再偏移i個邏輯區塊數。另,值得說明地是,在另一實施例中,i是大於等於一且小於d。另因在本實施例中,變數d為一定值,故每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距會是一定值。舉例來說,在第一回合中,兩邏輯區塊B1 和Ba 之間的間距會等於兩邏輯區塊Ba 和Bb 之間的間距,並等於兩邏輯區塊Bb 和Bc 之間的間距。
此外,須說明的,上述多個回合係依據指標BP 被重新設定前後所對應的兩邏輯區塊的位址之間的變異量為正值或負值來區分,其中所述的變異量等於指標BP 被重新設定後所對應的邏輯區塊的位址減去指標BP 被重新設定前所對應的邏輯區塊的位址。以圖7A至圖7C為例,在時間點t4 和t5 先後被執行的兩讀取指令其所對應的邏輯區塊分別為Bc 和B2 ,故指標BP 於時間點t5 前後分別被設定為Bc 和B2 ,又因邏輯區塊B2 的位址減去邏輯區塊Bc 後所得的變異量為負值,故可將在時間點t4 和t5 所執行的兩個讀取指令歸屬到不同的回合。另,又以圖7B為例,在時間點t6 和t7 先後被執行的兩讀取指令其所對應的邏輯區塊分別為Bd 和Be ,故指標BP 於時間點t7 前後分別被設定為Bd 和Be ,又因邏輯區塊Be 的位址減去邏輯區塊Bd 後所得的變異量為負值,故可將在時間點t6 和t7 所執行的兩個讀取指令歸屬到同一個回合。
請參考圖8A和圖8B,圖8A和圖8B用以說明本發明另一實施例中設定指標BP 的方式。在本實施例中,複數個邏輯區塊B1 至BN 可區分為非快取區800以及快取區802。非快取區800內的邏輯區塊其資料尚未被儲存至快取記憶體212,而快取區內802的邏輯區塊其資料已被儲存至快取記憶體212。在本實施例中,每一個回合內被執行的多個讀取指令其所對應的邏輯區塊之間所相隔的邏輯區塊的數目會依序地遞減。
詳言之,在本實施例中,每一個回合內被執行的多個讀取指令其所對應的邏輯區塊中,除該回合內之第一個和最後一個被執行的讀取指令所對應的兩邏輯區塊之外,對在該回合內任一個被執行的讀取指令所對應的邏輯區塊而言,此邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目會小於此邏輯區塊與下一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目。如圖8A和圖8B所示,在時間點t1 、t2 、t3 、t4 、t5 和t6 依序地執行讀取指令,以讀取邏輯區塊B1 、Ba 、Bb 、B3 、Bc 和Bd 的資料,其中間距d2小於間距d1,且第二回合中所被執行的讀取指令所對應的邏輯區塊B3 、Bc 和Bd 的位址是藉由將第一回合內所被執行的讀取指令所對應的多個邏輯區塊B1 、Ba 和Bb 之位址皆偏移預設邏輯區塊數i後獲得,其中i等於二。此外,在第一回合內,除第一個被執行的讀取指令所對應的邏輯區塊之外,第一回合內的每一個被執行的讀取指令所對應的邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間所相隔的邏輯區塊之數目是依據所有邏輯區塊B1 ~BN 的總數以及前一個被執行的讀取指令所對應的邏輯區塊位於複數個邏輯區塊B1 ~BN 中的位置而決定。舉例來說,因邏輯區塊B1 ~BN 的總數為N,而第一回合內之第一次被執行的讀取指令所對應的邏輯區塊為B1 ,故間距d1約等於(N-1)/2;又假設第一回合內之第二次被執行的讀取指令所對應的邏輯區塊Ba 是邏輯區塊B1 ~BN 當中第a個邏輯區塊,則間距d2會約等於(N-a)/2。其中,倘若(N-1)/2或(N-a)/2並非整數,則以四捨五入的方式取整數位,以決定間距d1和d2。
請參考圖9A~圖9C,圖9A~圖9C用以說明本發明另一實施例中設定指標BP 的方式。在本實施例中,複數個邏輯區塊B1 至BN 可區分為非快取區900以及快取區902和904。非快取區900內的邏輯區塊其資料尚未被儲存至快取記憶體212,而快取區內902和904的邏輯區塊其資料已被儲存至快取記憶體212。在本實施例中,如圖9A所示,在第一回合中,啟始邏輯區塊BS 被設定為介於第一個邏輯區塊B1 與最後一個邏輯區塊BN 之間的第一區塊。此外,如圖9B所示,預計在第二回合內執行的第一個讀取指令係被設定為讀取第一個邏輯區塊B1 與第一區塊BS 之間的第二區塊Ba ;而預計在第二回合內執行的第二個讀取指令係被設定為讀取最後一個邏輯區塊BN 與第一區塊BS 之間的第三區塊Bb 。倘若,執行完第二回合的讀取指令仍未搜尋到非快取區900內的邏輯區塊,則會繼續執行第三回合的讀取指令,而預計在第三回合內執行的四個讀取指令係分別被設定為讀取邏輯區塊B1 至BN 當中第一個邏輯區塊Bl 與第二區塊Ba 之間的第四區塊Bc 、第二區塊Ba 與第一區塊Bs 之間的第五區塊Bd 、第一區塊Bs 與第三區塊Bb 之間的第六區塊Be ,以及第三區塊Bb 與最後一個邏輯區塊BN 之間的第七區塊Bf 。其中,當搜尋到非快取區900內的邏輯區塊後,後續所預計讀取的邏輯區塊的操作即不會被執行。以圖9C為例,在第三回合內,因已讀取到非快取區900中的第六區塊Be ,故預計要讀取第七區塊Bf 的操作即不會被進行。
相較於上述實施例,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距為定值或依序地遞減,在本發明的另一實施例中,每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距是變動的間距。此外,在本發明另一實施例中,被執行的多個讀取指令其所對應的邏輯區塊之間所相隔的邏輯區塊的數目會依序地遞增至一臨界值為止。請參考圖10和圖11,圖10和圖11用以說明本發明另一實施例中設定指標BP 的方式。在圖10中,邏輯區塊Bl ~BN 被區分為非快取區1000以及快取區1002;而在圖11中,邏輯區塊Bl ~BN 被區分為非快取區1100以及快取區1102和1104。非快取區1000和1100內的邏輯區塊其資料尚未被儲存至快取記憶體212,而快取區內1002、1102和1104的邏輯區塊其資料已被儲存至快取記憶體212。在這兩實施例中,啟始邏輯區塊BS 可設定為邏輯區塊B1 ~BN 當中的任一區塊,其中,間距d1、d2和d3為變動的間距,而間距d1、d2和d3之間的關係為d1<d2<d3。此外,讀取指令其所對應的邏輯區塊之間所相隔的邏輯區塊的數目會依序地從(d1-1)遞增至臨界值(d3-1)為止。換言之,在每一次重新設定指標BP 時,係將一間距d1、d2或d3累加至指標BP ,以重新設定指標BP ,而倘若指標BP 在累加上述間距d1、d2或d3後超出複數個邏輯區塊B1 ~BN 的位址範圍,則會將累加後的指標BP 減去上述複數個邏輯區塊B1 ~BN 的總容量,以使重新設定後的指標BP 等於累加後的指標BP 減去上述複數個邏輯區塊B1 ~BN 的總容量。此外,隨著指標BP 被重新設定的先後順序(如圖10和圖11中之時間點t1 、t2 、t3 、t4 、t5 的順序),累加至指標BP 的間距會依序地遞增至最大間距d3為止。
由上述各實施例中設定指標BP 的方式可知,每一次指標BP 被設定前後所對應的兩個邏輯區塊之間至少會間隔一個邏輯區塊,而使得每個被執行的讀取指令其所對應的邏輯區塊會與其前一個或下一個被執行的讀取指令其所對應的邏輯區塊之間的間隔被加大,而達到縮短搜尋到非快取區所須耗廢的時間之目的。然而,須說明的,本發明之實施方式並不限於必須使任兩個接續被執行的讀取指令所對應的兩邏輯區塊之間都得至少間隔一邏輯區塊。詳言之,為達到縮短搜尋時間之目的,可僅加大其中部分的間隔即可,而不須全面地加大所有的間隔。換言之,在本發明的一實施例中,每一次累加至指標BP 的間距至少為複數個邏輯區塊B1 至BN 中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於複數個邏輯區塊B1 至BN 之單一邏輯區塊之容量的兩倍。
另外,在本發明的另一實施例中,控制器110會另外將一讀取符記(read token)RT加入到回傳至主控單元200的回應訊息中,用以進一步地確保當主控單元200產生的寫入符記WT發生碰撞時,主控單元200的資料處理模組206仍可正確地判斷是否接收到智慧卡140所產生的回應訊息。請參考圖12,圖12繪示本發明另一實施例中控制器110回傳至主控單元200的資料串1200之結構。資料串1200除了具有如上述資料串600的資料區602以及寫入符記區604之外,另具有一讀取符記區606。讀取符記區606係用來記載控制器110之微處理單元110a所產生的讀取符記RT。此外,資料區602和寫入符記區604的作用在上述說明中已經闡述過,在此即不再贅述。雖然,圖12中所繪示的讀取符記區606位於寫入符記區604之後,但本發明並不以此為限。例如:寫入符記區604和讀取符記區606在資料串1200上的位置可以互換,或是寫入符記區604和讀取符記區606可分別位於資料串1200的兩端或皆位於資料串1200的同一端。
請參考圖13,圖13是根據本發明第二實施例繪示周邊單元100運作時的流程圖。圖13的流程大致上與圖4的流程相同,而兩流程之間的不同點在於圖13的流程中多了步驟S418,且圖4中的步驟S409、S419和S421分別以圖13中的步驟S409’、S419’和S421’代替。在步驟S409中,當控制器110判斷所接收到的第一資料串中含有要傳送到智慧卡晶片140後,會將讀取符記RT設定為初始的讀取符記Ri。在步驟S418中,則會將讀取符記RT累加一差異值ΔRT。之後,在步驟S419’中,則會將目前的讀取符記RT加到欲傳回主控單元200的第二回應訊息1200的讀取符記區606當中。此外,在步驟S421’中,智慧卡晶片140所產生的回應訊息會與寫入符記WT以及讀取符記RT合併成第一回應訊息。
請參考圖14,圖14是根據本發明第二實施例繪示主控單元200運作時的流程圖。圖14的流程大致上與圖3的流程相同,而兩流程之間的不同點在於圖14的流程中多了步驟S316和S318,且圖3中的步驟S313以圖14中的步驟S313’代替。在步驟S313’中,除了會從回傳的資料串600中擷取出寫入符記WT之外,亦會從回傳的資料串600中擷取出讀取符記RT,並令參數RT(t)等於所擷取出的讀取符記RT。其中,參數RT(t)用以表示目前主控單元200所擷取出的讀取符記RT。此外,另一參數RT(t-1)則用以表示主控單元200前一次所擷取出的讀取符記。在步驟316’中,主控單元200的資料處理模組206會判斷所擷取出的讀取符記RT是否與主控單元前一次所擷取出的讀取符記相差預設值ΔRT,亦即判斷參數RT(t)的值是否等於參數RT(t-1)的值與預設值ΔRT的和。倘若RT(t)=[RT(t-1)+ΔRT],則會進行步驟S319;反之,倘若RT(t)不等於[RT(t-1)+ΔRT],則會進行步驟S317。在步驟S318’中,會使參數RT(t-1)等於最近一次所擷取出的讀取符記RT,以在擷取下一個讀取符記RT之前,更新參數RT(t-1)所欲表示之主控單元200前一次所擷取出的讀取符記RT的值。
綜上所述,本發明在從周邊單元中搜尋其資料未被儲存至主控單元之快取記憶體的邏輯區塊時,會以跳躍複數個邏輯區塊的方式設定讀取指令所對應的邏輯區塊位址,以加速搜尋非快取區的過程。如此一來,使主控單元即得以迅速地避開其資料已存放在快取記憶體的邏輯區塊,並進而提升主控單元與周邊單元之晶片之間的傳輸效率。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10、200...主控單元
12...記憶卡
14、212...快取記憶體
16...快閃記憶體
18、140...智慧卡晶片
100...周邊單元
110...控制器
110a...微處理單元
110b...記憶體介面
110c...緩衝記憶體
120...匯流排連接介面
130...非揮發性記憶體
206...資料處理模組
S301~S321、S401~S423、S307’、S313’、S409’、S419’、S421’...步驟
500...資料串
502...特定標記
504...指令-應用程式協定資料單元(C-APDU)
506...寫入符記
600、1200...資料串
602...資料區
604...寫入符記區
606...讀取符記區
700、800、900、1000、1100...非快取區
702、704、802、902、904、1002、1102、1104...快取區
B1 ~BN 、Ba ~Bh ...邏輯區塊
WT...寫入符記
RT...讀取符記
d、d~d3...間距
t1 ~t11 ...時間點
圖1為習知搭配記憶卡之主控單元的功能方塊圖。
圖2是根據本發明一實施例繪示的資料處理系統的功能方塊圖。
圖3是根據本發明第一實施例繪示主控單元運作時的流程圖。
圖4是根據本發明第一實施例繪示周邊單元運作時的流程圖。
圖5繪示本發明一實施例中主控單元通過控制器傳送指令或資料至智慧卡晶片時所採用的資料串之架構。
圖6繪示本發明一實施例中控制器回傳至主控單元的資料串之結構。
圖7A至圖7C用以說明本發明一實施例中設定指標的方式。
圖8A和圖8B用以說明本發明另一實施例中設定指標的方式。
圖9A至圖9C用以說明本發明另一實施例中設定指標的方式。
圖10和圖11用以說明本發明另一實施例中設定指標BP 的方式。
圖12繪示本發明另一實施例中控制器回傳至主控單元的資料串之結構。
圖13是根據本發明第二實施例繪示周邊單元運作時的流程圖。
圖14是根據本發明第二實施例繪示主控單元運作時的流程圖。
1000...非快取區
1002...快取區
B1 、Ba 、Bb 、Bc 、Bd 、BN ...邏輯區塊
BS ...啟始邏輯區塊
t1 ~t5 ...時間點

Claims (59)

  1. 一種搜尋特定記憶體區的方法,用以從一周邊單元中搜尋其資料未被儲存至一主控單元之快取記憶體的邏輯區塊,該主控單元耦接該周邊單元,該方法包括:(a)該主控單元設定一指標,該指標是對應到該周邊單元的複數個邏輯區塊中的一邏輯區塊;(b)執行一讀取指令,該讀取指令是設定為從該指標所對應的邏輯區塊中讀取資料;(c)該主控單元接收一回傳資料串,其中該回傳資料串是因執行該讀取指令而產生;(d)該主控單元從該回傳資料串中擷取出一寫入符記;(e)該主控單元判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係;以及(f)倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,並重複執行步驟(b)、(c)、(d)和(e),直到在重複執行的步驟(d)中所擷取出的另一寫入符記在重複執行的步驟(e)中被判斷為與該主控單元所儲存的該寫入符記之間具有該對應關係為止,其中被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
  2. 如申請專利範圍第1項所述之方法,其中步驟(d)另包括從該回傳資料串中擷取出一讀取符記,而該方法另包括:(g)該主控單元判斷所擷取出的該讀取符記是否與該主控單元前一次所擷取出的一讀取符記相差一預設值;以及(h)倘若所擷取出的該讀取符記與該主控單元前一次所擷取出的讀取符記不相差該預設值,則重新設定該指標,並重複執行步驟(b)、(c)、(d)、(e)、(f)和(g),直到在重複執行的步驟(d)中所擷取出的讀取符記在重複執行的步驟(g)被判斷為與該主控單元前一次所擷取出的讀取符記相差該預設值為止。
  3. 如申請專利範圍第1項所述之方法,其中所有被執行的讀取指令係在多個回合內被執行,而該多個回合係依據該指標被重新設定前後所對應的兩邏輯區塊的位址之間的變異量為正值或負值來區分。
  4. 如申請專利範圍第3項所述之方法,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距為一定值。
  5. 如申請專利範圍第4項所述之方法,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內被執行的讀取指令所對應的多個邏輯區塊之位址是藉由將該第一回合內被執行的讀取指令所對應的多個邏輯區塊之位址皆偏移一預設邏輯區塊數後獲得。
  6. 如申請專利範圍第3項所述之方法,其中每一個回合內被執行的多個讀取指令其所對應的邏輯區塊中,除該回合內之第一個和最後一個被執行的讀取指令所對應的兩邏輯區塊之外,對在該回合內任一個被執行的讀取指令所對應的邏輯區塊而言,該邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目小於該邏輯區塊與下一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目。
  7. 如申請專利範圍第6項所述之方法,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內第一個被執行的讀取指令所對應的邏輯區塊之位址是藉由將該第一回合內第一個被執行的讀取指令所對應的邏輯區塊之位址偏移一預設邏輯區塊數後獲得。
  8. 如申請專利範圍第6項所述之方法,其中在第一回合內,除第一個被執行的讀取指令所對應的邏輯區塊之外,在該第一回合內的每一個被執行的讀取指令所對應的邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間所相隔的邏輯區塊之數目是依據該複數個邏輯區塊的總數以及前一個被執行的讀取指令所對應的該邏輯區塊位於該複數個邏輯區塊中的位置而決定。
  9. 如申請專利範圍第3項所述之方法,其中在該多個回合的第一回合內所執行的單一個讀取指令係設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與最後一個邏輯區塊之間的一第一區塊,而預計在該多個回合的第二回合內執行的兩個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第一區塊之間的一第二區塊,以及最後一個邏輯區塊與該第一區塊之間的一第三區塊。
  10. 如申請專利範圍第9項所述之方法,其中預計在該多個回合的第三回合內執行的四個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第二區塊之間的一第四區塊、該第二區塊與該第一區塊之間的一第五區塊、該第一區塊與該第三區塊之間的一第六區塊,以及該第三區塊與最後一個邏輯區塊之間的一第七區塊。
  11. 如申請專利範圍第3項所述之方法,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距是變動的間距。
  12. 如申請專利範圍第1項所述之方法,其中在每一次重新設定該指標時,係將一間距累加至該指標,以重新設定該指標,而倘若該指標在累加該間距後超出該複數個邏輯區塊的位址範圍,則重新設定後的該指標等於累加後的該指標減去該複數個邏輯區塊的總容量。
  13. 如申請專利範圍第12項所述之方法,其中該間距為變動的間距。
  14. 如申請專利範圍第13項所述之方法,其中該間距會隨著該指標被重新設定的先後順序,依序地遞增至一最大間距為止。
  15. 如申請專利範圍第1項所述之方法,其中該主控單元與該周邊單元之間所有指令與資料的傳遞皆會通過該快取記憶體。
  16. 如申請專利範圍第1項所述之方法,其中當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間具有該對應關係時,所擷取出的該寫入符記會與該主控單元所儲存的該寫入符記一致。
  17. 一種主控單元,耦接至一周邊單元,該主控單元包括:一快取記憶體,用以儲存資料;以及一資料處理模組,用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊;其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊,之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料;其中該資料處理模組從該回傳資料串中擷取出一寫入符記,並判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係,而倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與該主控單元所儲存的該寫入符記之間具有該對應關係的寫入符記為止,而該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料;其中被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
  18. 如申請專利範圍第17項所述之主控單元,其中倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間具有該對應關係,則該資料處理模組另從該回傳資料串中擷取出一讀取符記,並進一步地判斷該讀取符記是否與該資料處理模組所擷取出的前一個讀取符記相差一預設值,而倘若所擷取出的該讀取符記與該資料處理模組所擷取出的前一個讀取符記不相差該預設值,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與前一個讀取符記相差該預設值的讀取符記為止。
  19. 如申請專利範圍第17項所述之主控單元,其中所有被執行的讀取指令係在多個回合內被執行,而該多個回合係依據該指標被重新設定前後所對應的兩邏輯區塊的位址之間的變異量為正值或負值來區分。
  20. 如申請專利範圍第19項所述之主控單元,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距為一定值。
  21. 如申請專利範圍第20項所述之主控單元,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內被執行的讀取指令所對應的多個邏輯區塊之位址是藉由將該第一回合內被執行的讀取指令所對應的多個邏輯區塊之位址皆偏移一預設邏輯區塊數後獲得。
  22. 如申請專利範圍第19項所述之主控單元,其中每一個回合內被執行的多個讀取指令其所對應的邏輯區塊中,除該回合內之第一個和最後一個被執行的讀取指令所對應的兩邏輯區塊之外,對在該回合內任一個被執行的讀取指令所對應的邏輯區塊而言,該邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目小於該邏輯區塊與下一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目。
  23. 如申請專利範圍第22項所述之主控單元,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內第一個被執行的讀取指令所對應的邏輯區塊之位址是藉由將該第一回合內第一個被執行的讀取指令所對應的邏輯區塊之位址偏移一預設邏輯區塊數後獲得。
  24. 如申請專利範圍第22項所述之主控單元,其中在第一回合內,除第一個被執行的讀取指令所對應的邏輯區塊之外,在該第一回合內的每一個被執行的讀取指令所對應的邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間所相隔的邏輯區塊之數目是依據該複數個邏輯區塊的總數以及前一個被執行的讀取指令所對應的該邏輯區塊位於該複數個邏輯區塊中的位置而決定。
  25. 如申請專利範圍第19項所述之主控單元,其中在該多個回合的第一回合內所執行的單一個讀取指令係設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與最後一個邏輯區塊之間的一第一區塊,而預計在該多個回合的第二回合內執行的兩個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第一區塊之間的一第二區塊,以及最後一個邏輯區塊與該第一區塊之間的一第三區塊。
  26. 如申請專利範圍第25項所述之主控單元,其中預計在該多個回合的第三回合內執行的四個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第二區塊之間的一第四區塊、該第二區塊與該第一區塊之間的一第五區塊、該第一區塊與該第三區塊之間的一第六區塊,以及該第三區塊與最後一個邏輯區塊之間的一第七區塊。
  27. 如申請專利範圍第19項所述之主控單元,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距是變動的間距。
  28. 如申請專利範圍第17項所述之主控單元,其中在每一次重新設定該指標時,係將一間距累加至該指標,以重新設定該指標,而倘若該指標在累加該間距後超出該複數個邏輯區塊的位址範圍,則重新設定後的該指標等於累加後的該指標減去該複數個邏輯區塊的總容量。
  29. 如申請專利範圍第28項所述之主控單元,其中該間距為變動的間距。
  30. 如申請專利範圍第29項所述之主控單元,其中該間距會隨著該指標被重新設定的先後順序,依序地遞增至一最大間距為止。
  31. 如申請專利範圍第17項所述之主控單元,其中該主控單元與該周邊單元之間所有指令與資料的傳遞皆會通過該快取記憶體。
  32. 如申請專利範圍第17項所述之主控單元,其中當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間具有該對應關係時,所擷取出的該寫入符記會與該主控單元所儲存的該寫入符記一致。
  33. 一種資料處理系統,包括:一周邊單元;以及一主控單元,耦接該周邊單元,該主控單元包括一快取記憶體以及一資料處理模組,該快取記憶體用以儲存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊;其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊,之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料;其中該資料處理模組從該回傳資料串中擷取出一寫入符記,並判斷所擷取出的該寫入符記與該主控單元所儲存的寫入符記之間是否具有一對應關係,而倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間無該對應關係,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與該主控單元所儲存的該寫入符記之間具有該對應關係的寫入符記為止,而該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料;其中被重新設定後的該指標所對應的邏輯區塊與該指標最近一次被重新設定前所對應的邏輯區塊之間相隔該複數個邏輯區塊中的至少一個邏輯區塊。
  34. 如申請專利範圍第33項所述之資料處理系統,其中該周邊單元包括:一匯流排連接介面,耦接該主控單元,用以從該主控單元接收指令和資料;以及一微處理單元,耦接該匯流排連接介面,用以執行該匯流排連接介面從該主控單元所接收的指令。
  35. 如申請專利範圍第34項所述之資料處理系統,其中該周邊單元更包括:一非揮發性記憶體,用以儲存資料;以及一記憶體介面,耦接於該非揮發性記憶體與該微處理單元之間,用以存取該非揮發性記憶體。
  36. 如申請專利範圍第33項所述之資料處理系統,其中倘若所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間具有該對應關係,則該資料處理模組另從該回傳資料串中擷取出一讀取符記,並進一步地判斷該讀取符記是否與該資料處理模組所擷取出的前一個讀取符記相差一預設值,而倘若所擷取出的該讀取符記與該資料處理模組所擷取出的前一個讀取符記不相差該預設值,則重新設定該指標,直到該資料處理模組從後續所接收到的回傳資料串中擷取出與前一個讀取符記相差該預設值的讀取符記為止。
  37. 如申請專利範圍第33項所述之資料處理系統,其中所有被執行的讀取指令係在多個回合內被執行,而該多個回合係依據該指標被重新設定前後所對應的兩邏輯區塊的位址之間的變異量為正值或負值來區分。
  38. 如申請專利範圍第37項所述之資料處理系統,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距為一定值。
  39. 如申請專利範圍第38項所述之資料處理系統,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內被執行的讀取指令所對應的多個邏輯區塊之位址是藉由將該第一回合內被執行的讀取指令所對應的多個邏輯區塊之位址皆偏移一預設邏輯區塊數後獲得。
  40. 如申請專利範圍第37項所述之資料處理系統,其中每一個回合內被執行的多個讀取指令其所對應的邏輯區塊中,除該回合內之第一個和最後一個被執行的讀取指令所對應的兩邏輯區塊之外,對在該回合內任一個被執行的讀取指令所對應的邏輯區塊而言,該邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目小於該邏輯區塊與下一個被執行的讀取指令所對應的邏輯區塊之間相隔的邏輯區塊之數目。
  41. 如申請專利範圍第40項所述之資料處理系統,其中該多個回合包括一第一回合和一第二回合,而在該第二回合內第一個被執行的讀取指令所對應的邏輯區塊之位址是藉由將該第一回合內第一個被執行的讀取指令所對應的邏輯區塊之位址偏移一預設邏輯區塊數後獲得。
  42. 如申請專利範圍第40項所述之資料處理系統,其中在第一回合內,除第一個被執行的讀取指令所對應的邏輯區塊之外,在該第一回合內的每一個被執行的讀取指令所對應的邏輯區塊與前一個被執行的讀取指令所對應的邏輯區塊之間所相隔的邏輯區塊之數目是依據該複數個邏輯區塊的總數以及前一個被執行的讀取指令所對應的該邏輯區塊位於該複數個邏輯區塊中的位置而決定。
  43. 如申請專利範圍第37項所述之資料處理系統,其中在該多個回合的第一回合內所執行的單一個讀取指令係設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與最後一個邏輯區塊之間的一第一區塊,而預計在該多個回合的第二回合內執行的兩個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第一區塊之間的一第二區塊,以及最後一個邏輯區塊與該第一區塊之間的一第三區塊。
  44. 如申請專利範圍第43項所述之資料處理系統,其中預計在該多個回合的第三回合內執行的四個讀取指令係分別被設定為讀取該複數個邏輯區塊當中第一個邏輯區塊與該第二區塊之間的一第四區塊、該第二區塊與該第一區塊之間的一第五區塊、該第一區塊與該第三區塊之間的一第六區塊,以及該第三區塊與最後一個邏輯區塊之間的一第七區塊。
  45. 如申請專利範圍第37項所述之資料處理系統,其中每一回合內所執行的多個讀取指令中,任兩個接續地被執行的讀取指令所對應的兩邏輯區塊之間的間距是變動的間距。
  46. 如申請專利範圍第33項所述之資料處理系統,其中在每一次重新設定該指標時,係將一間距累加至該指標,以重新設定該指標,而倘若該指標在累加該間距後超出該複數個邏輯區塊的位址範圍,則重新設定後的該指標等於累加後的該指標減去該複數個邏輯區塊的總容量。
  47. 如申請專利範圍第46項所述之資料處理系統,其中該間距為變動的間距。
  48. 如申請專利範圍第47項所述之資料處理系統,其中該間距會隨著該指標被重新設定的先後順序,依序地遞增至一最大間距為止。
  49. 如申請專利範圍第33項所述之資料處理系統,其中該主控單元與該周邊單元之間所有指令與資料的傳遞皆會通過該快取記憶體。
  50. 如申請專利範圍第33項所述之資料處理系統,其中當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記之間具有該對應關係時,所擷取出的該寫入符記會與該主控單元所儲存的該寫入符記一致。
  51. 一種搜尋特定記憶體區的方法,其由一主控單元執行以在一周邊單元中搜尋特定記憶體區,其中該主控單元耦接一周邊單元,且該主控單元儲存一寫入符記,該方法包括:(a)設定一指標,該指標是對應到該周邊單元的複數個邏輯區塊中的一邏輯區塊;(b)執行一讀取指令,其中該讀取指令是設定從該指標所對應的邏輯區塊中讀取資料;(c)接收一回傳資料串,其中該回傳資料串是因執行該讀取指令而產生;(d)依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係;以及(e)倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,並重複執行步驟(b)、(c)和(d),直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止;其中每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
  52. 如申請專利範圍第51項所述之方法,其中該複數個邏輯區塊中的每一個邏輯區塊具有相同的容量。
  53. 如申請專利範圍第51項所述之方法,其中步驟(d)包括從該回傳資料串中擷取出另一寫入符記,而當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記一致時,即判斷該回傳資料串與該寫入符記之間具有該對應關係。
  54. 一種主控單元,耦接至一周邊單元,該主控單元包括:一快取記憶體,用以儲存資料;以及一資料處理模組,用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊;其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊,之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料;其中該資料處理模組依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係,而倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止,而該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料;其中每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
  55. 如申請專利範圍第54項所述之主控單元,其中該複數個邏輯區塊中的每一個邏輯區塊具有相同的容量。
  56. 如申請專利範圍第54項所述之主控單元,其中該資料處理模組從該回傳資料串中擷取出另一寫入符記,而當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記一致時,該資料處理模組即判斷該回傳資料串與該寫入符記之間具有該對應關係。
  57. 一種資料處理系統,包括:一周邊單元;以及一主控單元,耦接該周邊單元,該主控單元包括一快取記憶體以及一資料處理模組,該快取記憶體用以儲存資料,而該資料處理模組用以從該周邊單元中搜尋其資料未被儲存至該快取記憶體的邏輯區塊;其中該資料處理模組設定一指標,以將該指標對應到該周邊單元的複數個邏輯區塊當中的一邏輯區塊,之後該資料處理模組接收一回傳資料串,該回傳資料串是因執行一讀取指令而產生,而該讀取指令被設定為從該指標所對應的邏輯區塊中讀取資料;其中該資料處理模組依據該回傳資料串判斷該回傳資料串與該寫入符記之間是否具有一對應關係,而倘若該回傳資料串與該寫入符記之間無該對應關係,則將一間距累加至該指標,以重新設定該指標,直到所接收之回傳資料串與該寫入符記之間具有該對應關係為止,而該資料處理模組後續所接收到的每一回傳資料串係因執行後續的讀取指令而產生,而每一後續的讀取指令被設定為從重新設定後的該指標所對應的邏輯區塊中讀取資料;其中每一次累加至該指標的該間距至少為該複數個邏輯區塊中至少一個邏輯區塊的容量,且所累加的各間距中至少有一間距大於或等於該複數個邏輯區塊之單一邏輯區塊之容量的兩倍。
  58. 如申請專利範圍第57項所述之資料處理系統,其中該複數個邏輯區塊中的每一個邏輯區塊具有相同的容量。
  59. 如申請專利範圍第57項所述之資料處理系統,其中該資料處理模組從該回傳資料串中擷取出另一寫入符記,而當所擷取出的該寫入符記與該主控單元所儲存的該寫入符記一致時,該資料處理模組即判斷該回傳資料串與該寫入符記之間具有該對應關係。
TW098107686A 2009-03-10 2009-03-10 資料處理系統、控制器及其搜尋特定記憶體區的方法 TWI406130B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098107686A TWI406130B (zh) 2009-03-10 2009-03-10 資料處理系統、控制器及其搜尋特定記憶體區的方法
US12/437,832 US8281072B2 (en) 2009-03-10 2009-05-08 Data processing system, controller, and method thereof for searching for specific memory area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098107686A TWI406130B (zh) 2009-03-10 2009-03-10 資料處理系統、控制器及其搜尋特定記憶體區的方法

Publications (2)

Publication Number Publication Date
TW201033807A TW201033807A (en) 2010-09-16
TWI406130B true TWI406130B (zh) 2013-08-21

Family

ID=42731794

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098107686A TWI406130B (zh) 2009-03-10 2009-03-10 資料處理系統、控制器及其搜尋特定記憶體區的方法

Country Status (2)

Country Link
US (1) US8281072B2 (zh)
TW (1) TWI406130B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI397821B (zh) * 2009-01-19 2013-06-01 Phison Electronics Corp 資料串傳送方法、系統及其控制器
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US8689240B2 (en) 2011-06-10 2014-04-01 International Business Machines Corporation Transmitting operator message commands to a coupling facility
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US8799522B2 (en) 2011-06-10 2014-08-05 International Business Machines Corporation Executing a start operator message command
US8918797B2 (en) 2011-06-10 2014-12-23 International Business Machines Corporation Processing operator message commands
US8560737B2 (en) 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
TWI596486B (zh) * 2011-11-04 2017-08-21 群聯電子股份有限公司 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法
CN103116470B (zh) * 2011-11-16 2016-04-13 群联电子股份有限公司 存储器储存装置、存储器控制器及数据串传送与识别方法
US9779138B2 (en) * 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
CN103886044A (zh) * 2014-03-11 2014-06-25 百度在线网络技术(北京)有限公司 搜索结果的提供方法和装置
US10298649B2 (en) * 2017-02-15 2019-05-21 Microsoft Technology Licensing, Llc Guaranteeing stream exclusivity in a multi-tenant environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060156009A1 (en) * 2005-01-12 2006-07-13 Interdigital Technology Corporation Method and apparatus for enhancing security of wireless communications
TWI259366B (en) * 2002-02-20 2006-08-01 Nagracard Sa Data block storing method in a memory
US20080140909A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for managing data from a requesting device with an empty data token directive
TW200910088A (en) * 2007-07-03 2009-03-01 Micron Technology Inc Block addressing for parallel memory arrays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI259366B (en) * 2002-02-20 2006-08-01 Nagracard Sa Data block storing method in a memory
US20060156009A1 (en) * 2005-01-12 2006-07-13 Interdigital Technology Corporation Method and apparatus for enhancing security of wireless communications
US20080140909A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for managing data from a requesting device with an empty data token directive
TW200910088A (en) * 2007-07-03 2009-03-01 Micron Technology Inc Block addressing for parallel memory arrays

Also Published As

Publication number Publication date
TW201033807A (en) 2010-09-16
US8281072B2 (en) 2012-10-02
US20100235899A1 (en) 2010-09-16

Similar Documents

Publication Publication Date Title
TWI406130B (zh) 資料處理系統、控制器及其搜尋特定記憶體區的方法
TWI596486B (zh) 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法
TWI397821B (zh) 資料串傳送方法、系統及其控制器
US8006030B2 (en) Memory controller for identifying the last valid page/segment in a physical block of a flash memory
US7447870B2 (en) Device for identifying data characteristics for flash memory
US9146854B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
US8250288B2 (en) Flash memory storage system and controller and data protection method thereof
US9772937B2 (en) Data processing method, memory controller and memory storage apparatus
CN108733577B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
TWI629590B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
US9483195B2 (en) Response reading method and data transmission system
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
US20140281147A1 (en) Memory system
JP2008084184A (ja) メモリコントローラ
CN101853216B (zh) 数据处理系统、控制器及其搜寻特定内存区的方法
CN103116470B (zh) 存储器储存装置、存储器控制器及数据串传送与识别方法
CN109388593B (zh) 进行动态资源管理的方法、记忆装置及记忆装置的控制器
US8544424B2 (en) System, controller and method thereof for transmitting and distributing data stream
CN101788970B (zh) 数据串传送方法、系统及其控制器
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
TWI697779B (zh) 資料儲存裝置與資料處理方法
CN116547652A (zh) 闪存的数据处理方法和数据处理装置