TW202022622A - 資料位寬轉換器及其系統晶片 - Google Patents

資料位寬轉換器及其系統晶片 Download PDF

Info

Publication number
TW202022622A
TW202022622A TW107144882A TW107144882A TW202022622A TW 202022622 A TW202022622 A TW 202022622A TW 107144882 A TW107144882 A TW 107144882A TW 107144882 A TW107144882 A TW 107144882A TW 202022622 A TW202022622 A TW 202022622A
Authority
TW
Taiwan
Prior art keywords
data
bit width
address
cache
segment
Prior art date
Application number
TW107144882A
Other languages
English (en)
Other versions
TWI727236B (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 瑞昱半導體股份有限公司
Priority to TW107144882A priority Critical patent/TWI727236B/zh
Priority to US16/366,139 priority patent/US10698851B1/en
Publication of TW202022622A publication Critical patent/TW202022622A/zh
Application granted granted Critical
Publication of TWI727236B publication Critical patent/TWI727236B/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種資料位寬轉換器,適於轉換以第一位寬為資料段單位的第一資料及以第二位寬為資料段單位的第二資料,及提供快取暫存第三資料,其中第一位寬不等於第二位寬。資料位寬轉換器包括受控單元、快取記憶體及資料重組電路。其中,受控單元用以讀寫第二資料;快取記憶體用以讀寫該第三資料;以及,資料重組電路用以轉換第一資料及第二資料,並依據搜尋程序從快取記憶體及受控單元依序尋找第二資料以輸出第一資料,及依據暫存程序寫入第三資料至快取記憶體。其中在第二資料轉換成第一資料之後,第二資料剩下的部分為第三資料。

Description

資料位寬轉換器及其系統晶片
本案是關於資料位寬轉換器。
現今,由於電子硬體系統功能的多樣化,在開發上單一電子硬體系統時常需結合不同的智慧財產(Intellectual Property, IP)核。而不同的IP核可能具備不同的技術規格,例如:在區塊層級,不同的IP核可以具有不同數量的輸入輸出埠;以及,在埠層級,不同IP核的輸入輸出埠可能具有不同的位寬(Bit Width)。因此在互連不同的IP核或是連結IP核與匯流排時,電子硬體系統需要使用資料位寬轉換器做為中介,藉由增加或減少位寬來解決資料傳輸的問題。
在資料位寬轉換器的使用上,通常一端連結主控單元(Master),而另一端連結受控單元(Slave)。主控單元用於對受控單元提出資料的讀取需求,而受控單元用於提供對應的資料給主控單元。因為主控單元及受控單元的位寬不同,因此主控單元及受控單元的連結就需要資料位寬轉換器以協助轉換位寬,主控單元及受控單元才能進行資料傳輸。由於現今電子產品對高速運算的需求,勢必要減少資料位寬轉換器的處理時間以提高主控單元讀取受控單元的速度。
鑑於上述,本案提出一種具有資料位寬轉換器之系統晶片,適於轉換以一第一位寬為資料段單位的一第一資料及以一第二位寬為資料段單位的一第二資料,及提供快取暫存一第三資料。系統晶片包括:一第一智慧財產核、一第二智慧財產核及一資料位寬轉換器。第一智慧財產核,用於處理第一資料。第二智慧財產核,用於處理第二資料。資料位寬轉換器包括一受控單元、一主控單元、一快取記憶體及一資料重組電路。其中,受控單元用以讀寫第二資料;主控單元用以輸出一控制指令至資料重組電路以獲取第一資料;快取記憶體用以讀寫第三資料;資料重組電路用以轉換第一資料及第二資料,並依據一搜尋程序從快取記憶體及受控單元依序尋找第二資料以輸出第一資料,及依據一暫存程序寫入第三資料至快取記憶體。其中在第二資料轉換成第一資料之後,第二資料剩下的部分為第三資料。
依據一些實施例,搜尋程序包括:依據第一資料之第一位寬、一第一位址、一第一資料段之數量及第二資料之第二位寬、一第二位址、一第二資料段之數量,獲得多個索引及多個標籤;及依據該些索引及該些標籤從快取記憶體尋找第二資料,如獲得完整的第二資料則停止搜尋程序,反之,繼續從受控單元尋找第二資料,其中,當從快取記憶體獲得第二資料的任一部份,則抹除快取記憶體對應的區塊。
依據一些實施例,暫存程序包括:依據第一資料之第一位寬、第一位址、該些第一資料段及第二資料之第二位寬、第二位址、該些第二資料段,獲得第三資料及對應的至少一個索引、至少一個標籤,其中第三資料僅包括未被第一資料完全使用的該些第二資料段;及依據至少一個索引及至少一個標籤,寫入第三資料至快取記憶體。
依據一些實施例,暫存程序包括:依據第一資料之第一位寬、第一位址、該些第一資料段及第二資料之第二位寬、第二位址、該些第二資料段,獲得第三資料及對應的至少一個索引、至少一個標籤,其中第三資料僅包括未被第一資料使用的第二資料之位元;及依據至少一個索引及至少一個標籤,寫入第三資料至快取記憶體。
綜上所述,資料位寬轉換器可轉換不同位寬的第一資料及第二資料,並提供快取暫存第三資料的功能,其中第三資料為第二資料轉換成第一資料之後第二資料剩下的部分。因此,資料位寬轉換器可避免重複讀取部分的第二資料,以減少第一資料及第二資料進行轉換時的處理時間。
請參照圖1,圖1繪示依據本案一些實施例的資料位寬轉換器100的示意圖。資料位寬轉換器100包括一資料重組電路200、一快取記憶體300、一受控單元400及一主控單元500。
資料位寬轉換器100用於轉換一資料為位寬不同的另一資料,並提供快取暫存資料的功能。由於資料通常為一長串數據,而用於儲存資料的固態硬碟、記憶體或處理資料的裝置因為長度限制不能一次處理整份資料,只能一次處理一位寬長度的資料。因此依據前述硬碟、記憶體或裝置一次處理的位寬長度為單位,資料會等分為多個資料段,而以下稱一資料段單位為位寬長度的單位。也因此,為了對應不同的硬碟、記憶體或裝置,資料會具有不同的資料段單位,並再依據資料段單位等分為多個資料段。
在具體使用上,資料位寬轉換器100適合用於轉換以一第一位寬為資料段單位的一第一資料D1及以一第二位寬為資料段單位的一第二資料D2,其中第一位寬與第二位寬的大小不同。需特別說明的是,資料位寬轉換器100的最終目的是要獲得第一資料D1,但是資料位寬轉換器100一開始僅具有第一位寬、第二位寬以及第一資料D1的相關資訊,例如位址及資料段的數量。因此,資料位寬轉換器100需先轉換前述資訊成第二資料D2的相關資訊,並依據第二資料D2的相關資訊讀取第二資料D2。當資料位寬轉換器100獲得完整的第二資料D2,則轉換第二資料D2以取得第一資料D1,其中第二資料D2需包含第一資料D1的所有內容。由於第一資料D1與第二資料D2的資料段單位不同,部分的第二資料D2未被轉換為第一資料D1,以下稱前述未被轉換為第一資料D1的第二資料D2為一第三資料D3。為避免重複讀取部分的第二資料D2,資料位寬轉換器100提供快取暫存第三資料D3的功能,以減少資料位寬轉換器100的處理時間。
在一些實施例,資料位寬轉換器100配置於顯示卡、乙太網路(Ethernet)、直接記憶體存取(Direct Memory Access, DMA)控制器、快捷週邊互聯標準(Peripheral Component Interconnect Express, PCI-E)、串列週邊介面(Serial Peripheral Interface, SPI)、周邊輸入/輸出(Peripheral I/O)或IP核之間。而在另一些實施例,資料位寬轉換器100更可整合於一系統晶片(System on a Chip, SoC)。
在一些實施例,具有資料位寬轉換器之系統晶片,包括一第一智慧財產核、一第二智慧財產核及一資料位寬轉換器100。其中,第一智慧財產核用於傳接以第一位寬為資料段單位的第一資料D1於資料位寬轉換器100與一第一外部設備之間。第一外部設備的操作環境通常以第一位寬為資料段單位。同理,第二智慧財產核用於傳接以第二位寬為資料段單位的第二資料D2於資料位寬轉換器100與一第二外部設備之間。第二外部設備的操作環境通常以第二位寬為資料段單位。
而第一外部設備及第二外部設備可為前述顯示卡、乙太網路、直接記憶體存取控制器、快捷週邊互聯標準、串列週邊介面或周邊輸入/輸出。
請續參閱圖1,在一些實施例中,主控單元500用以輸出一控制指令(圖中未繪示)至資料重組電路200以獲取第一資料D1。受控單元400用以讀寫第二資料D2。快取記憶體300用以讀寫第三資料D3。資料重組電路200用以轉換第一資料D1及第二資料D2。其中,主控單元500及受控單元400具有一主/從(Master/Slave)關係,主即是主控單元500,從則是受控單元400。也就是主控單元500輸出控制指令至資料重組電路200,並透過資料重組電路200向受控單元400發出要求以獲得第一資料D1。而受控單元400針對主控單元500的要求提出對應的第二資料D2,並藉由資料重組電路200轉換第二資料D2成第一資料D1,再透過資料重組電路200輸出第二資料D2至主控單元500。
而由前述可知,用於中繼的資料重組電路200具有一傳遞功能及一轉換功能,其中:於傳遞功能,資料重組電路200負責傳遞主控單元500的要求至受控單元400和傳遞受控單元400的回應至主控單元500。以及,於轉換功能,資料重組電路200用來轉換第一資料D1及第二資料D2,尤其是第二資料D2轉換成第一資料D1,以用於之後輸出第二資料D2回主控單元500。而資料重組電路200的轉換功能還包括轉換第一資料D1的相關資訊及第二資料D2的相關資訊,尤其是第一資料D1的相關資訊轉換成第二資料D2的相關資訊,以利於之後搜尋第二資料D2。
承上,需特別說明的是,資料重組電路200更具有一搜尋功能、一排序功能及一暫存功能,其中:於搜尋功能,資料重組電路200依據一搜尋程序從快取記憶體300及受控單元400依序尋找第二資料D2。於排序功能,資料重組電路200重新排序從快取記憶體300及受控單元400讀取的第二資料D2。於暫存功能,資料重組電路200依據一暫存程序寫入第三資料D3至快取記憶體300,其中在第二資料D2轉換成第一資料D1之後,該第二資料D2剩下的部分為第三資料D3。
圖2繪示依據本案一些實施例的搜尋程序的流程圖。請參照圖2,搜尋程序包括以下步驟:
步驟S200:依據第一資料D1之第一位寬、第一位址、一第一資料段D10之數量及第二資料D2之第二位寬、第二位址、一第二資料段D20之數量,獲得多個索引340及多個標籤360;及
步驟S220:依據多個索引340及多個標籤360從快取記憶體300尋找第二資料D2,如獲得完整的第二資料D2則停止搜尋程序,反之,繼續從受控單元400尋找第二資料D2,其中,當從快取記憶體300獲得第二資料D2的任一部份,則抹除快取記憶體300對應的區塊。
圖3A繪示依據本案一些實施例的暫存程序的流程圖。請參照圖3A,暫存程序包括以下步驟:
步驟S300A:依據第一資料D1之第一位寬、第一位址、多個第一資料段D10及第二資料D2之第二位寬、第二位址、多個第二資料段D20,獲得第三資料D3及對應的至少一索引340、至少一標籤360,其中第三資料D3僅包括未被第一資料D1完全使用的多個第二資料段D20;及
步驟S320A:依據至少一索引340及至少一標籤340,寫入第三資料D3至快取記憶體300。
圖3B繪示依據本案另一些實施例的暫存程序的流程圖。請參照圖3B,暫存程序包括以下步驟:
步驟S300B:依據第一資料D1之第一位寬、第一位址、多個第一資料段D10及第二資料D2之第二位寬、第二位址、多個第二資料段D20,獲得第三資料D3及對應的至少一索引340、至少一標籤360,其中第三資料D3僅包括未被第一資料D1使用的第二資料D2之位元;及
步驟S320B:依據至少一索引340及至少一標籤360,寫入第三資料D3至快取記憶體300。
請參照圖4A,圖4A繪示依據本案一些實施例的快取記憶體300的示意圖。快取記憶體300包括多個區塊(Block)320及多個索引(Index)340,其中:各個區塊320以陣列方式排列,並用於暫存資料;以及,各個索引340用於資料重組電路200在寫入或讀取快取記憶體300時可以快速尋找所要的區塊320。在使用上,位於同一列的區塊320對應同一個索引340,每一列具有相同數量的區塊320,且每一列的區塊320對應一個各列專屬的索引340(例如,快取記憶體300具有十六列,由上至下每一列所對應的索引340以二進位表示分別為「0000」至「1111」,相當於十進位表示的「0」至「15」)。
請參照圖4B,圖4B繪示依據本案一些實施例的區塊320的示意圖。每個區塊320能暫存的資料包括第三資料D3及一標籤(Tag)360。由於第三資料D3即為第二資料D2轉換成第一資料D1之後剩下的部分之第二資料D2,因此使用第三資料D3對應的部分之第二資料D2所在的位址作為標籤360(例如,圖4B所示,標籤360的內容為「1000」,第三資料D3的內容為「0000」)。
當資料重組電路200讀取第三資料D3從快取記憶體300時,資料重組電路200首先依據第二位址對應的索引340尋找索引340對應的一列之中的所有區塊320,再依據第二資料D2對應的標籤360由左至右依序比對區塊中是否有相符的標籤360。需特別說明的是,當資料重組電路200比對到有區塊320之中的標籤360相符,則讀取標籤360相符的該區塊320之中的第三資料D3,並抹除標籤360相符的第三資料D3所在的區塊320之資料,讓該區塊320回復成未暫存資料的狀況。
當資料重組電路200寫入第三資料D3至快取記憶體300時,資料重組電路200首先依據第三資料D3對應的索引340決定資料寫入哪一列的區塊320,並且由左至右依序將第三資料D3寫入區塊320。需特別說明的是,資料重組電路200會跳過已有暫存資料的區塊320,並且將第三資料D3寫入下一個未暫存資料的區塊320。而當同一列的區塊320都已有暫存資料時,則資料重組電路200不會跳過已有暫存資料的區塊320,並且由左至右依序將第三資料D3存入區塊320。
請參閱圖5,圖5繪示依據本案一些實施例的位寬轉換的示意圖。在一些實施例,第一位寬為「2」,第二位寬為「4」,第一資料D1的內容為「10000001」,第二資料D2的內容為「101000000101」。第一資料D1包括四個第一資料段D10,分別為第一個之第一資料段D11、第二個之第一資料段D12、第三個之第一資料段D13及第四個之第一資料段D14。第二資料D2包括三個第二資料段D20,分別為第一個之第二資料段D21、第二個之第二資料段D22及第三個之第二資料段D23。
承上,而位址示意表T1僅用於表示第一資料D1、第二資料D2、各個第一資料段D10、各個第二資料段D20、第一資料D1的每個位元及第二資料D2的每個位元所對應的位址,其中,第一位址(即第一資料D1的位址)為「6」,第二位址(即第二資料D2的位址)為「4」,第二個之第一資料段D12的位址為「8」,第二個之第二資料段D22的位址為「8」,以此類推其他位址以下不再贅述。
在第一資料D1及第二資料D2進行位寬轉換時,資料重組電路200依照第一資料D1之各個位元對應的位址,以一對一的形式從第二資料D2之中相同位址的位元複製資料(例如,圖5所示,第一資料D1之各個位元對應的位址為「6」至「13」,因此資料重組電路200從第二資料D2之中位址「6」至「13」的位元複製資料,所以第一資料D1的內容為「10000001」)。
具體而言,資料重組電路200的最終目的是要輸出第一資料D1,但是資料重組電路200一開始僅具有第一位寬、第二位寬、第一位址及第一資料段D10的數量。因此,資料位寬轉換器100需先轉換前述資訊成第二位址及第二資料段D20的數量(例如,圖5所示,第一位寬為「2」,第二位寬為「4」,第一位址為「6」及第一資料段D10的數量為四個。故資料位寬轉換器轉換出第二位址為「4」及第二資料段D20的數量為三個)。其中,在一些實施例,資料重組電路200依據主控單元500輸出的控制指令以取得第一位址及第一資料段D10的數量。
依據第二位址及第二資料段D20的數量,資料重組電路200首先尋找快取記憶體300是否有相符的第三資料D3,尤其只尋找與第二位址的數值相同的索引340對應的列之中的區塊320(例如,圖5所示,第二位址是「4」,就去尋找索引340為「4」的第五列之中的區塊320)。由於區塊320暫存的資料包括標籤360,因此資料重組電路200再逐一比對位於前述列之中的區塊320的資料,確認是否有跟各個第二資料段D20對應的標籤360相符,其中在一些實施例,各個第二資料段D20對應的標籤360即為各個第二資料段D20各自的位址(例如,第二位址是「4」,第二資料段D20有三個,因此各個第二資料段D20的位址依序為「4、8、12」,而各個第二資料段D20對應的標籤360依序為「0100、1000、1100」,資料重組電路200逐一比對位於第五列之中的區塊320,確認是否有跟各個第二資料段D20的位址相符)。
如果資料重組電路200在快取記憶體300中沒有獲得完整的第二資料D2,則依據第二位址及第二資料段D20的數量,資料重組電路200改從受控單元400尋找剩餘的第二資料D2(續以上述舉例進行說明,請續參閱圖5,第二位址是「4」,需要三個第二資料段D20,其中第二個之第二資料段D22已經從快取記憶體300中取得。因此,資料重組電路200只需從受控單元400之中尋找剩餘的兩個第二資料段D20。如果受控單元400中的資料內容為「11111010000001010000......」,則獲得剩餘的兩個第二資料段D20分別為「1010」、「0101」)。
當資料重組電路200已從快取記憶體300或受控單元400之中獲得完整的第二資料D2,資料重組電路200重新排列受控端及快取記憶體300讀取的第二資料D2,使第二資料D2以符合第一資料D1需求的方式排序。當第二資料D2排序完畢之後,資料重組電路200將第二資料D2轉換成第一資料D1,並且將第一資料D1回傳至主控單元500(續以上述舉例進行說明,請續參閱圖5,三個第二資料段D20,分別有從快取記憶體300取得的內容為「0000」之第二個之第二資料段D22,及從受控單元400取得的內容為「1010」之第一個之第二資料段D21與內容為「0101」之第三個之第二資料段D23。資料重組電路200重新排序前述的三個第二資料段D20為內容是「101000000101」的排序後之第二資料D2。由於第一位寬為「2」,第二位寬為「4」,第一資料D1之相關資訊是第一位址為「6」及四個第一資料段D10,對應的第二資料D2之相關資訊是第二位址為「4」及三個第二資料段D20。因此資料重組電路200轉換內容為「101000000101」的第二資料D2成內容為「10000001」的第一資料D1,並且將第一資料D1回傳至主控單元500)。
當第二資料D2轉換成第一資料D1之後,有些第二資料段D20未完全轉換為第一資料D1,第二資料D2剩下的部分則為第三資料D3,其中在一些實施例,第三資料D3僅包括未被第一資料D1完全使用的多個第二資料段D20(續以上述舉例進行說明,請續參閱圖5,由於第二資料D2由三個第二資料段D20所構成,分別為「1010」、「0000」、「0101」,而內容為「1010」的第一個之第二資料段D21及內容為「0101」的第三個之第二資料段D23未被第一資料D1完全使用,因此內容為「1010」的第一個之第二資料段D21及內容為「0101」的第三個之第二資料段D23就是需暫存的第三資料D3)。
資料重組電路200獲得第三資料D3之後,資料重組電路200依據第三資料D3獲得對應的至少一索引340及至少一標籤360。依據索引340及標籤360,資料重組電路200寫入第三資料D3至對應的快取記憶體300(續以上述舉例進行說明,請同時參閱圖4A、圖4B及圖5,由於第三資料D3為內容為「1010」的第一個之第二資料段D21及內容為「0101」的第三個之第二資料段D23。而第一個之第二資料段D21的位址即為第二位址,因此第一個之第二資料段D21的位址為「0100」(相對於十進位的「4」),第一個之第二資料段D21對應的標籤360為「0100」。而第三個之第二資料段D23的位址為第二位址加上前兩個第二資料段D20的資料長度,因此第三個之第二資料段D23的位址為「1100」(相對於十進位的「12」),第三個之第二資料段D23對應的標籤360為「1100」。由於第三資料D3對應的第二位址為「0」,因此第三資料D3寫入索引340為「0」的第一列之中的兩個區塊320,並分別以「01001010」及「11000101」寫入)。
上述舉例,為當第三資料D3僅包括未被第一資料D1完全使用的多個第二資料段D20的情況。
請參閱圖5,在一實施例,當第三資料D3僅包括未被第一資料D1使用的第二資料D2之位元。資料重組電路200讀取第三資料D3從快取記憶體300的情況如下所述。第一位寬為「2」(即二個位元),第二位寬為「4」(即四個位元),而第一資料D1之相關資訊是第一位址為「6」及四個第一資料段D10。則對應的第二資料D2之相關資訊是第二位址為「4」及三個第二資料段D20。並得到第一個之第二資料段D21的位址為「4」、第二個之第二資料段D22的位址為「8」、第三個之第二資料段D23的位址為「12」。
承上,由於第三資料D3僅包括未被第一資料D1使用的第二資料D2之位元,第二位寬又為第一位寬的兩倍,還需將各個第二資料段D20等分為兩個第一資料段D10,而再得到另外三個位址,因此前述三個第二資料段D20的位址需再各自加上第一位寬的資料長度以得到另外三個位址「6」、「10」、「14」。而前述的六個位址對應的標籤360分別為「0100」(相對於十進位的「4」)、「0110」(相對於十進位的「6」)、「1000」(相對於十進位的「8」)、「1010」(相對於十進位的「10」)、「1100」(相對於十進位的「12」)、「1110」(相對於十進位的「14」)。因此資料重組電路200首先依據第二位址尋找索引340為「4」的第五列之中的區塊320,再依據對應的標籤360(對應的標籤360分別為「0100」、「0110)、「1000」、「1010」、「1100」、「1110」)由左至右依序比對該五列的區塊中是否有相符的標籤360。
假如第五列的區塊320之中,有一個區塊320暫存的內容為「101000」(標籤360的內容為「1010」,第三資料D3的內容為「00」),由於區塊320之中的標籤360與前述位址對應的標籤360相符,資料重組電路200讀取第三資料D3,並抹除該第三資料D3所在的區塊320之資料,讓該區塊320回復成未暫存資料的狀況。
請續參照圖5,在一實施例,當第三資料D3僅包括未被第一資料D1使用的第二資料D2之位元。資料重組電路200寫入第三資料D3至快取記憶體300的情況如下所述。第二資料D2為「101000000101」,第二位址為「4」,而轉換成的第一資料D1為「10000001」。由於內容為「10」的第二資料D2之開頭及內容為「01」的第二資料D2之結尾為未被第一資料D1使用的第二資料D2之位元,因此內容為「10」的第二資料D2之開頭及內容為「01」的第二資料D2之結尾就是需暫存的第三資料D3。
承上,由於第二資料D2之開頭的位址即為第二位址,因此第二資料D2之開頭的位址為「0100」(相對於十進位的「4」),第二資料D2之開頭的標籤360為「0100」。而第二資料D2之結尾的位址為第二位址加上第二資料D2的資料長度及減去第二資料D2之結尾01的資料長度,因此第二資料D2之結尾的位址為「1110」(相對於十進位的「14」),第二資料D2之結尾的標籤360為「1110」。由於第三資料D3對應的第二位址為「4」,因此第三資料D3寫入索引340為「4」的第五列之中的兩個區塊320,並分別以「010010」及「111001」寫入。
在一些實施例,資料位寬轉換器100適用的資料位址範圍為「1048576」。其中此資料位址範圍即表示受控單元400讀寫第二資料D2的範圍,話句話說,受控單元400只能從資料位址範圍中讀寫第二資料D2。第一位寬為「16」,第二位寬為「80」。在快取記憶體300中,索引340有「128」列,其中每一列具有「4」個區塊320。而各個區塊320中,標籤360的長度為「9」,第三資料D3的長度為「64」。因此快取記憶體300用於暫存第三資料D3的大小總共為「32768」。當資料位寬轉換器100以讀取10000次第一資料D1做測試,受控單元400獲得第二資料D2的資料量為「565280」。資料量代表各次獲得的第二資料D2的長度總和。而未使用快取記憶體300的資料位寬轉換器100,當資料位寬轉換器100以讀取10000次第一資料D1做測試,受控單元400獲得第二資料D2的資料量為「800000」。因此使用快取記憶體300之後,受控單元400的資料量節省29.34%。換句話說,資料重組電路200改從快取記憶體300獲得這些29.34%的資料量。由於快取記憶體300讀寫的速度比受控單元400快,因此減少資料位寬轉換器100的處理時間。
綜上所述,資料位寬轉換器可轉換不同位寬的第一資料D1及第二資料D2,並提供快取暫存第三資料D3的功能,其中第三資料D3為第二資料D2轉換成第一資料D1之後第二資料D2剩下的部分。因此,資料位寬轉換器100可避免重複讀取部分的第二資料D2,以減少第一資料D1及第二資料D2進行轉換時的處理時間。
S200、S220、S300A、S320A 、S300B、S320B:步驟 100:資料位寬轉換器 200:資料重組電路 300:快取記憶體 320:區塊 340:索引 360:標籤 400:受控單元 500:主控單元 D1:第一資料 D10:第一資料段 D11:第一個之第一資料段 D12:第二個之第一資料段 D13:第三個之第一資料段 D14:第四個之第一資料段 D2:第二資料 D20:第二資料段 D21:第一個之第二資料段 D22:第二個之第二資料段 D23:第三個之第二資料段 D3:第三資料 T1:位址示意表
圖1繪示依據本案一些實施例的資料位寬轉換器的示意圖。 圖2繪示依據本案一些實施例的搜尋程序的流程圖。 圖3A繪示依據本案一些實施例的暫存程序的流程圖。 圖3B繪示依據本案另一些實施例的暫存程序的流程圖。 圖4A繪示依據本案一些實施例的快取記憶體的示意圖。 圖4B繪示依據本案一些實施例的區塊的示意圖。 圖5繪示依據本案一些實施例的位寬轉換的示意圖。
100:資料位寬轉換器
200:資料重組電路
300:快取記憶體
400:受控單元
500:主控單元

Claims (10)

  1. 一種具有資料位寬轉換器之系統晶片,包括: 一第一智慧財產核,用於傳接以一第一位寬為資料段單位的一第一資料; 一第二智慧財產核,用於傳接以一第二位寬為資料段單位的一第二資料,其中該第二位寬不等於該第一位寬;及 一資料位寬轉換器,包括: 一受控單元,用以讀寫該第二資料; 一快取記憶體,用以讀寫及暫存一第三資料;及 一資料重組電路,用以轉換該第一資料及該第二資料,並依據一搜尋程序從該快取記憶體及該受控單元依序尋找該第二資料,以輸出該第一資料,及依據一暫存程序寫入該第三資料至該快取記憶體,其中在該第二資料轉換成該第一資料之後,該第二資料剩下的部分為該第三資料。
  2. 如請求項1所述的具有資料位寬轉換器之系統晶片,其中該資料位寬轉換器更包括一主控單元,用以輸出一控制指令至該資料重組電路以獲取該第一資料。
  3. 如請求項2所述的具有資料位寬轉換器之系統晶片,其中該搜尋程序包括: 依據該第一資料之該第一位寬、一第一位址、一第一資料段之數量及該第二資料之該第二位寬、一第二位址、一第二資料段之數量,獲得多個索引及多個標籤;及 依據該些索引及該些標籤從該快取記憶體尋找該第二資料,如獲得完整的該第二資料則停止該搜尋程序,反之,繼續從該受控單元尋找該第二資料,其中,當從該快取記憶體獲得該第二資料的任一部份,則抹除該快取記憶體對應的區塊。
  4. 如請求項3所述的具有資料位寬轉換器之系統晶片,其中該暫存程序包括: 依據該第一資料之該第一位寬、該第一位址、該些第一資料段及該第二資料之該第二位寬、該第二位址、該些第二資料段,獲得該第三資料及對應的該至少一個索引、該至少一個標籤,其中該第三資料僅包括未被該第一資料完全使用的該些第二資料段;及 依據該至少一個索引及該至少一個標籤,寫入該第三資料至該快取記憶體。
  5. 如請求項3所述的具有資料位寬轉換器之系統晶片,其中該暫存程序包括: 依據該第一資料之該第一位寬、該第一位址、該些第一資料段及該第二資料之該第二位寬、該第二位址、該些第二資料段,獲得該第三資料及對應的該至少一個索引、該至少一個標籤,其中該第三資料僅包括未被該第一資料使用的該第二資料之位元;及 依據該至少一個索引及該至少一個標籤,寫入該第三資料至該快取記憶體。
  6. 一種資料位寬轉換器,適於轉換以一第一位寬為資料段單位的一第一資料及以一第二位寬為資料段單位的一第二資料,及提供快取暫存一第三資料,其中該第一位寬不等於該第二位寬,該資料位寬轉換器包括: 一受控單元,用以讀寫該第二資料; 一快取記憶體,用以讀寫該第三資料;及 一資料重組電路,用以轉換該第一資料及該第二資料,並依據一搜尋程序從該快取記憶體及該受控單元依序尋找該第二資料,以輸出該第一資料,及依據一暫存程序寫入該第三資料至該快取記憶體,其中在該第二資料轉換成該第一資料之後,該第二資料剩下的部分為該第三資料。
  7. 如請求項6所述的資料位寬轉換器,更包括一主控單元,用以輸出一控制指令至該資料重組電路以獲取該第一資料。
  8. 如請求項7所述的資料位寬轉換器,其中該搜尋程序包括: 依據該第一資料之該第一位寬、一第一位址、一第一資料段之數量及該第二資料之該第二位寬、一第二位址、一第二資料段之數量,獲得多個索引及多個標籤;及 依據該些索引及該些標籤從該快取記憶體尋找該第二資料,如獲得完整的該第二資料則停止該搜尋程序,反之,繼續從該受控單元尋找該第二資料,其中,當從該快取記憶體獲得該第二資料的任一部份,則抹除該快取記憶體對應的區塊。
  9. 如請求項8所述的資料位寬轉換器,其中該暫存程序包括: 依據該第一資料之該第一位寬、該第一位址、該些第一資料段及該第二資料之該第二位寬、該第二位址、該些第二資料段,獲得該第三資料及對應的該至少一個索引、該至少一個標籤,其中該第三資料僅包括未被該第一資料完全使用的該些第二資料段;及 依據該至少一個索引及該至少一個標籤,寫入該第三資料至該快取記憶體。
  10. 如請求項8所述的資料位寬轉換器,其中該暫存程序包括: 依據該第一資料之該第一位寬、該第一位址、該些第一資料段及該第二資料之該第二位寬、該第二位址、該些第二資料段,獲得該第三資料及對應的該至少一個索引、該至少一個標籤,其中該第三資料僅包括未被該第一資料使用的該第二資料之位元;及 依據該至少一個索引及該至少一個標籤,寫入該第三資料至該快取記憶體。
TW107144882A 2018-12-12 2018-12-12 資料位寬轉換器及其系統晶片 TWI727236B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107144882A TWI727236B (zh) 2018-12-12 2018-12-12 資料位寬轉換器及其系統晶片
US16/366,139 US10698851B1 (en) 2018-12-12 2019-03-27 Data bit width converter and system on chip thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107144882A TWI727236B (zh) 2018-12-12 2018-12-12 資料位寬轉換器及其系統晶片

Publications (2)

Publication Number Publication Date
TW202022622A true TW202022622A (zh) 2020-06-16
TWI727236B TWI727236B (zh) 2021-05-11

Family

ID=71070919

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107144882A TWI727236B (zh) 2018-12-12 2018-12-12 資料位寬轉換器及其系統晶片

Country Status (2)

Country Link
US (1) US10698851B1 (zh)
TW (1) TWI727236B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367846A (zh) * 2018-12-25 2020-07-03 瑞昱半导体股份有限公司 数据位宽转换器及其系统芯片
TWI760880B (zh) * 2020-10-07 2022-04-11 瑞昱半導體股份有限公司 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法
CN114372009A (zh) * 2020-10-15 2022-04-19 瑞昱半导体股份有限公司 传输控制电路、数据传输系统及操作数据传输系统的方法
TWI770701B (zh) * 2020-09-11 2022-07-11 美商谷歌有限責任公司 基於硬體之儲存與回復控制器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117640783B (zh) * 2024-01-25 2024-04-09 富瀚微电子(成都)有限公司 一种数据传输方法、系统、电子设备以及可读介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595452B1 (en) * 2005-11-30 2013-11-26 Sprint Communications Company L.P. System and method for streaming data conversion and replication
JP2008033722A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd エンディアン変換回路を備えたデータ転送制御装置
JP5527512B2 (ja) * 2009-09-28 2014-06-18 ソニー株式会社 バスプロトコル変換装置及びバスプロトコル変換方法
US9489307B2 (en) * 2012-10-24 2016-11-08 Texas Instruments Incorporated Multi domain bridge with auto snoop response
JP5853211B2 (ja) * 2013-01-25 2016-02-09 パナソニックIpマネジメント株式会社 バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
US9513805B2 (en) * 2014-04-15 2016-12-06 International Business Machines Corporation Page table including data fetch width indicator
CN106201945B (zh) * 2016-06-28 2017-07-11 湖南恒茂高科股份有限公司 位宽转换装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367846A (zh) * 2018-12-25 2020-07-03 瑞昱半导体股份有限公司 数据位宽转换器及其系统芯片
CN111367846B (zh) * 2018-12-25 2022-01-11 瑞昱半导体股份有限公司 数据位宽转换器及其系统芯片
TWI770701B (zh) * 2020-09-11 2022-07-11 美商谷歌有限責任公司 基於硬體之儲存與回復控制器
TWI760880B (zh) * 2020-10-07 2022-04-11 瑞昱半導體股份有限公司 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法
US11625344B2 (en) 2020-10-07 2023-04-11 Realtek Semiconductor Corp. Transmission control circuit, data transmission system using different data formats, and operating method thereof
CN114372009A (zh) * 2020-10-15 2022-04-19 瑞昱半导体股份有限公司 传输控制电路、数据传输系统及操作数据传输系统的方法

Also Published As

Publication number Publication date
US20200192847A1 (en) 2020-06-18
US10698851B1 (en) 2020-06-30
TWI727236B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
TWI727236B (zh) 資料位寬轉換器及其系統晶片
CN108701081B (zh) 用于同时存取非易失性存储器的多个分区的设备和方法
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
CN101957726B (zh) 双列直插式存储模块中的相变存储器
US7447870B2 (en) Device for identifying data characteristics for flash memory
US20020144027A1 (en) Multi-use data access descriptor
US6003122A (en) Direct memory access controller
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
US10866736B2 (en) Memory controller and data processing circuit with improved system efficiency
CN102279817A (zh) 用于持久存储器的高速缓冲存储器相干性协议
US4513369A (en) Information processing system
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
US20050060441A1 (en) Multi-use data access descriptor
EP2548129A1 (en) Masked register write method and apparatus
TWI578163B (zh) 周邊介面電路與周邊記憶體系統
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
EP3506121A1 (en) Method and apparatus to efficiently perform filtering operations in an in-memory relational database
CN111367846B (zh) 数据位宽转换器及其系统芯片
US11755211B2 (en) Overhead reduction in data transfer protocol for NAND memory
TWI553483B (zh) 處理器及存取記憶體的方法
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
TWI749490B (zh) 寫入閃存管理表的電腦程式產品及方法及裝置
CN108536475B (zh) 完整编程命令处理方法与装置
US20240202156A1 (en) Device and method for adaptive bus protocol
TWI814655B (zh) 記憶裝置、快閃記憶體控制器及其控制方法