TWI774093B - 用於轉換資料類型的轉換器、晶片、電子設備及其方法 - Google Patents
用於轉換資料類型的轉換器、晶片、電子設備及其方法 Download PDFInfo
- Publication number
- TWI774093B TWI774093B TW109136569A TW109136569A TWI774093B TW I774093 B TWI774093 B TW I774093B TW 109136569 A TW109136569 A TW 109136569A TW 109136569 A TW109136569 A TW 109136569A TW I774093 B TWI774093 B TW I774093B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- bit
- type
- output
- sign
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Communication Control (AREA)
Abstract
本公開涉及一種用於資料類型轉換的轉換器、方法、積體電路晶片和計算裝置,其中計算裝置可以包括在組合處理裝置中,該組合處理裝置還可以包括通用互聯介面和其他處理裝置。該計算裝置與其他處理裝置進行交互,共同完成用戶指定的計算操作。組合處理裝置還可以包括存儲裝置,該存儲裝置分別與計算裝置和其他處理裝置連接,用於計算裝置和其他處理裝置的資料。本公開的方案能夠廣泛地應用於各種資料類型轉換的應用中。
Description
本公開涉及資料處理技術領域,更具體地,涉及資料類型的轉換。
對於傳統的運算單元,在指令(運算單元)實現時一般只有固定精度浮點、整型數的相互轉換、功能單一。在人工智慧(AI)晶片中,執行的資料類型轉換指令數遠大于傳統的處理單元,且程式設計人員對於轉數功能的需求顯著增加:因此更大量的軟體計算行為使得通過軟體實現資料類型轉換的運算效率低、訪存開銷大、計算功耗高的弱點更加突出,其運算速度會成為整個處理器核的一個性能瓶頸。
同時,傳統的通過指令實現的運算單元都是單一功能實現的,如果需要處理器核實現新的資料類型轉換功能,需要按照新增的功能,按照乘法原理增加邏輯表達,其可拓展性差:一旦出現新的功能需求,會使晶片中運算單元的面積有倍數的增長,存在大量的重複計算邏輯,影響處理器的整體性能。
例如,當有M種輸入資料類型和N種輸出資料類型時,通常需要的資料轉換路徑為M*N條,因此相應的電路設計會相對複雜,功耗較高,而且每當出現一種新的資料類型時,則需要重新設計轉換功器,增加了工作量,降低了生產效率。
因此,用於資料類型轉換的傳統方法在AI晶片應用效果差,且我們無法參考傳統的實現方法去實現AI晶片中的運算單元。
本公開的一個目的是克服習知技術中資料轉換效率低,可擴展性差的缺陷。
根據本公開的第一方面,提供一種用於轉換資料類型的轉換器,包括:一第一轉換級,配置為接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,並根據該描述資訊,將該第一類型資料轉換為一中間結果;以及一第二轉換級,配置為將該中間結果轉換為該第二類型資料。
根據本公開的第二方面,提供一種晶片,其包括上述的轉換器。
根據本公開的第三方面,提供一種電子設備,其包括上述的晶片。
根據本公開的第四方面,提供一種用於轉換資料類型的方法,包括:接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,根據該描述資訊,將該第一類型資料轉換為一中間結果;以及將該中間結果轉換為該第二類型資料。
根據本公開的第五方面,提供一種電子設備,包括:一個或多個處理器;以及一記憶體,該記憶體中存儲有一電腦可執行指令,當該電腦可執行指令由該一個或多個處理器運行時,使得該電子設備執行如上所述的方法。
根據本公開的第六方面,提供一種電腦可讀存儲介質,包括電腦可執行指令,當該電腦可執行指令由一個或多個處理器運行時,執行如上所述的方法。
本公開所提供的技術方案的至少一個有益效果在於,能夠提升AI晶片中資料類型轉換的效率,降低運算負擔,減少所需的電路面積。
下面將結合本披露實施例中的附圖,對本披露實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本披露一部分實施例,而不是全部的實施例。基於本披露中的實施例,本領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本披露保護的範圍。
應當理解,本披露的申請專利範圍、說明書及附圖中的術語“第一”、“第二”、“第三”和“第四”等是用於區別不同物件,而不是用於描述特定順序。 本披露的說明書和申請專利範圍中使用的術語“包括”和 “包含”指示所描述特徵、整體、步驟、操作、元素和/或元件的存在,但並不排除一個或多個其它特徵、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應當理解,在此本披露說明書中所使用的術語僅僅是出於描述特定實施例的目的,而並不意在限定本披露。如在本披露說明書和申請專利範圍中所使用的那樣,除非上下文清楚地指明其它情況,否則單數形式的“一”、“一個”及“該”意在包括複數形式。還應當進一步理解,在本披露說明書和申請專利範圍中使用的術語“和/ 或”是指相關聯列出的項中的一個或多個的任何組合以及所有可能組合,並且包括這些組合。
如在本說明書和申請專利範圍中所使用的那樣,術語“如果”可以依據上下文被解釋為“當... 時”或“一旦”或“因應於確定”或“因應於檢測到”。類似地,短語“如果確定”或“如果檢測到[所描述條件或事件]”可以依據上下文被解釋為意指“一旦確定”或“因應於確定”或“一旦檢測到[所描述條件或事件]”或“因應於檢測到[所描述條件或事件]”。
第1圖示出了根據本公開第一方面的用於轉換資料類型的轉換器。第2圖示出了根據本公開另一個方面的用於轉換資料類型的方法的流程圖。
如第1圖所示,該轉換器包括:第一轉換級L1,配置為接收第一類型資料以及關於該第一類型資料和第二類型資料的描述資訊,並根據該描述資訊,將該第一類型資料轉換為中間結果;以及,第二轉換級L2,配置為將中間結果轉換為第二類型資料。
如第2圖所示,本公開的方法可以包括:第一操作S1,接收第一類型資料以及關於該第一類型資料和第二類型資料的描述資訊,根據該描述資訊,將該第一類型資料轉換為中間結果;以及第二操作S2,將該中間結果轉換為第二類型資料。
需要理解的是,上面的表述“第一類型資料”可以是原始的第一類型資料,也可以是經過變換,拼接,拆分後的第一類型資料,換言之,第一類型資料在各個階段的變形也包含在第一類型資料的範圍之內。
在本公開中,在轉換資料類型時,可以先轉換為中間結果,該中間結果對於所有的資料類型都是適用的。該中間結果可以有效地表示被轉換的資料(上文中的第一類型資料),並且可以根據該中間結果轉換為所需的任何類型的資料(上文中的第二類型資料)。換言之,該中間結果相對於所有類型的資料而言,具有公共的內容和/或結構,由此可以通過該中間結果轉換到其他的資料類型。
將第一類型轉換為中間結果,然後再將中間結果轉換為第二類型資料所帶來的有益效果包括但不限於:在傳統的硬體結構中,如果有M種類型的輸入資料,而有N種類型的輸出資料,則需要為每次轉換設計單獨的電路,由此電路的複雜度大約為M*N,這將大大增加電路設計的工作量,增加了電路面積,從而進一步引起功耗提升、成本增加等不利影響。而本公開所提供的技術方案在同等數量的資料類型轉換中,電路的複雜度僅僅大約為M+N,這能夠極大地降低電路設計的複雜度,減小電路的面積,並從而降低電路功耗,節約成本。
如上所述的第一類型資料和第二類型資料的位數可以是多種情形,例如可以是1位、2位、4位、8位、16位、32位等。而在本公開中,所採用的轉換器的處理位數(例如寄存器,記憶體,匯流排的位寬)等等可能是其他位數,例如32位,因此,根據本公開的一個實施方式,第一轉換級L1進一步配置為確定所接收的第一類型資料的數量,並將該數量的第一類型資料拼接起來,形成第一拼接資料,該第一轉換級L1根據該描述資訊,將該第一拼接資料轉換為中間結果。
例如,當輸入資料是8位,輸出資料為8位,而轉換器的處理位數(例如寄存器的位寬)為32位時,則一次可以同時接收4個輸入資料,即將4個輸入資料拼接起來形成32位資料。
而當輸入資料為8位,輸出資料為16位,而轉換器的處理位數為32位時,則一次可以同時接收2個輸入資料,即將2個輸入資料拼接起來形成32位資料。在此情況下,則可以將兩個8位資料擴展為兩個16位的資料,然後將此擴展形成的兩個16位資料拼接起來。
又例如,當輸入資料為16位,輸出資料為8位,而轉換器的處理位數為32位時,則一次可以同時接收2個輸入資料,即將2個輸入資料拼接起來形成32位資料。在此情況下,則輸出的兩個16位資料中包含了兩個8位輸出資料的資訊。
根據本公開的一個實施方式,可以通過以該轉換器的處理位數除以該第一類型資料和第二類型資料中位數高者的位數來確定所接收的第一類型資料的數量。
以輸入兩個8位的十六進位數81和82,輸出為兩個16位的數為例,則一次可以接收兩個資料。在本實施例中,十六進位數81和82的二進位表示分別為“1000 0001”和“1000 0010”,可以將其擴展為兩個16位的數,即“xxxx xxxx 1000 0001”和“yyyy yyyy 1000 0010”。8位數的實際資料放於16位數的低八位,而16位數的高位以零或者其他規定的數來補足(這裡以x來表示)。拼接後的資料可以為00008182,二進位表示為“xxxx xxxx yyyy yyyy 1000 0001 1000 0010”。即,32位的拼接資料中,第一個輸入資料“81”佔據了低8位(0~7),而第二個輸入資料“82”佔據了中間8位(8~15)。32位的高位(16~31)以x和y來補足,其中x和y根據實際情況來設定,二者可以相同,也可以不同。下文將進行詳細解釋。
需要理解的是,上述的拼接方式僅僅是一個示例,本領域具有通常知識者可以根據自己的需求來設置所需格式的拼接資料。例如可以將第一個接收的資料放置在32位拼接資料中的低16位,而將第二個接收的資料放置在32位拼接資料中的高16位。仍然是上述十六進位數81和82來舉例說明,拼接後的資料形式也可以例如是xxxx xxxx 1000 0001yyyy yyyy 1000 0010,這裡,x和y可以相同,也可以不同。
根據本公開的另一個實施方式,可以以預設的第一固定值來進行拼接。例如,該第一固定值可以為2或者其他數目。
通過上述實施方式中所示的拼接操作,可以增加資料的輸送量,提升處理效率。當然,本領域具有通常知識者可以理解的是,上述的資料拼接並不是必須的,而只是一種優選的方式。例如,當輸入資料和輸出資料中的至少一者的位數與轉換器處理的位數相同時,則不需要拼接;此外,還可以利用其它規定的格式(例如採用標記有效位的方式,即預先規定哪些位是有效位,哪些位是無效位),使得即使輸入資料和輸出資料中的至少一者的位數與轉換器處理的位數不相同時,也無需進行拼接。例如,在輸入資料位8位,輸出資料為16位,寄存器為32位的情況下,可以將該8位的輸入資料直接擴展為32位資料(例如通過在原8位輸入資料的特定位上添加0的方式),然後在輸出時將該32位資料還原為16位資料。
上面的情況中描述了第一類型資料的位數短於寄存器位數的情形,在另外一種情形下,如果輸入資料的位數大於轉換器的處理位數,例如輸入資料為64位,而轉換器的處理位數為32位時,則可以進行如下處理。
一種處理方式可以是截斷該64位的資料,留下所需的32位資料,而丟棄其他32位資料,並對留下的32位資料進行處理。此種方式將可能會引起一定的資料丟失和誤差。
根據本公開的另一種實施方式,該第一轉換級L1進一步配置為確定所接收的第一類型資料要拆分的數量,並將該第一類型資料拆分為該數量的拆分資料,該第一轉換級L1根據該描述資訊,將該拆分資料轉換為中間結果。
在該實施方式中,可以將64位的資料拆分為兩個32位的資料,並對該拆分後的兩個32位資料進行處理,最後對輸出的兩個資料進行拼接,從而形成所需的輸出資料。
根據本公開的一個實施方式,可以通過如下方式來確定所接收的第一類型資料要拆分的數量:以第一類型資料和第二類型資料中位數高者的位數除以轉換器的處理位數。
例如,當輸入資料為64位,輸出資料為64位,寄存器為32位時,可以將輸入資料拆分為兩個32位的資料;經過處理之後,在輸出端將兩個32位的資料重新拼接起來,從而形成64位的輸出資料。
又例如,當輸入資料為64位,輸出資料為16位,寄存器為32位時,可以將輸入資料拆分為兩個32位的資料,經過處理之後,在輸出端從兩個32位資料中截取有效資料部分,重新拼接為16位的輸出資料。
又例如,當輸入資料為16位,輸出資料為64位時,可以將16位的輸入資料擴展為兩個32位的資料,其中一個32位的資料中包含有效資訊,而另外一個32位的資料中包含無效資訊(例如全0),並在輸出時將此兩個32位的資料拼接為64位的輸出資料。
根據本公開的另一個實施方式,可以以預設的第二固定數值來拆分,例如,可以將該固定數值設置為2或其他數目。
對資料進行拆分和拼接,有利於輸入資料和輸出資料中時序的對準,避免或減少電路中時序控制部分的額外設計;此外,該實施方式有利於對資料進行並行處理,提高資源利用率。
可以在上述的第一轉換級L1和第二轉換級L2中增加相應的拆分和拼接功能,該功能可以以軟體和/或硬體等方式來實現。
可以看出,本公開不限制輸入、輸出和轉換器(例如寄存器)的位數,通過資料的拆分、拼接等方式,本公開能夠處理任何位數的資料。
第3圖示出了根據本公開的一個實施方式的第一轉換器L1的示意性框圖。
如第3圖所示,第一轉換級L1包括第一資料解析單元P1和第一運算單元C1。
第一資料解析單元P1配置為根據第一類型資料以及描述資訊來生成過渡符號位Tsign、過渡資料位Tdata和過渡指數位Tshift。該第一運算單元C1配置為根據該過渡符號位Tsign、過渡資料位Tdata和過渡指數位Tshift,來生成中間結果。
描述資訊可以由人工輸入,或者可以通過檔或者信號的形式來輸入到第一資料解析單元P1中。
根據本公開的一個實施方式,上述的描述資訊可以包括:第一描述資訊,用於描述第一類型資料的資料類型以及第一類型資料的第一指數位;第二描述資訊,用於描述第二類型資料的資料類型以及第二類型資料的第二指數位。
上述第一描述資訊和第二描述資訊中所描述的資料類型可以是多種,包括但不限於FIX4,FIX8,FIX16,FIX32,UFIX8,UFIX16,UFIX32,FP16,FP32,BFLOAT以及任何其他現有或者自訂的資料類型。需要理解的是,這裡僅僅以最高32位為例進行了舉例說明,對於64位或更高位,可以包含更多數量的資料類型。
此外,在本實施方式中,指示第一類型資料的移位值的第一指數位以及指示第二類型資料的移位值的第二指數位也可以由第一資料解析單元P1單獨地接收,然後由第一資料解析單元P1來計算第一指數位與第二指數位之間的差值。
或者,根據本公開的另一個實施方式,描述資訊可以包括第一類型資料的第一資料類型;第二類型資料的第二資料類型;以及差分指數位,該差分指數位用於指示第一類型資料的第一指數位與第二類型資料的第二指數位之間的差值。
與上一實施方式中差分指數位由第一資料解析單元P1計算得到而不同的是,在該實施方式中,差分指數位可以直接輸入到第一資料解析單元P1中,而無須經過後續計算。
需要說明的是,上文中所述的“差值”除了表明移位的大小之外,還表示移位的方向。本公開所述的差值可以是第一指數位減去第二指數位,也可以是第二指數位減去第一指數位。這對於本領域具有通常知識者而言是清楚地,因此這裡將不做贅述。
當第一資料解析單元P1計算得到或者直接接收到差分指數位時,可以根據該差分指數位計算得到上述的過渡指數位Tshift,該過渡指數位Tshift等同於該差分指數位。
上文中雖然將描述資訊和資料解釋為兩個不同的消息載體,但需要理解的是,在實際中二者可能並不存在明顯的界限。例如,當第一類型資料和第二類型資料均為Fix類型時,則可以在單獨的描述資訊中指明該第一類型資料和第二類型資料的移位值,並根據這兩個移位值計算其差分資料位。而當第一類型資料例如為Float類型時,則該Float類型資料本身中就包含著第一移位值,由此第一資料解析單元P1可以從該第一類型資料中提取到該第一移位值。由此,第一類型資料及其第一描述資訊,以及第二類型資料及其描述資訊可以是混合在一起的,也可以是分立的。
需要理解的是,這裡的術語“等同”表明的是一種實質上的相同,但可以是形式上不同。例如,對於某個8位數0000 0001,當其變換為0000 0000 0000 0001時,其本質上對先前8位數的另外一種表示方式,但可能並不完全相等。此外,需要理解的是,除了位數的變化之外,一個數的補數,移碼,二進位,十進位,十六進位等不同形式的表示,也在本文所述的“等同”的範疇內。換言之,只要有效資訊未被丟失,任何形式的變化都可以視為等同。
例如,當第一類型資料為Float類型,而第二類型資料為Fix類型時,從該Float類型資料中提取的第二移位值可能是以移碼方式來表示的,而描述該Fix類型資料的移位值可能是以原碼方式來表示的,此時在計算二者的差值時,需要統一變換成相同的碼型再進行差值計算。可以統一變換為移碼,可以統一變換成原碼,也可以統一變換成補數等其他類型的碼型,本發明將不再對碼型的變換進行詳細描述。
根據本公開的一個實施方式,該描述資訊還包括捨入類型,該捨入類型包括下列中的至少一種:TO_ZERO,OFF_ZERO,UP,DOWN,ROUNDING_OFF_ZERO,ROUNDING_TO_EVEN,隨機捨入。
TO_ZERO表示向零的方向捨入,換言之,表示向絕對值小的方向捨入;OFF_ZERO表示向遠離零的方向捨入,換言之,向絕對值大的方向捨入);UP表示向正無窮捨入;DOWN表示向負無窮捨入;ROUNDING_OFF_ZERO表示四捨五入;ROUNDING_TO_EVEN表示在四捨五入的基礎上,正好一半的值取到偶數。
需要理解的是,上述的捨入類型,僅僅是一些示例,本領域具有通常知識者可以設定各種期望的捨入方式。
第4a圖示出了根據本公開一個實施方式的第一計算單元C1的具體結構以及中間結果的資料結構。
根據本公開的一個實施方式,可以將該中間結果分為中間資料位ABS、中間符號位Sign和中間指數位EXP。下面詳細介紹如何從過渡指數位Tshift、過渡符號位Tsign以及過渡資料位Tdata來得到上述的中間結果。換言之,可以將所有的輸入資料轉換為該具有公共結構的中間資料。
如第4a圖所示,該第一運算單元C1包括:絕對值計算電路C11,配置為根據該過渡資料位Tdata來計算中間資料位ABS。
第5a圖示出了根據本公開一個實施方式的絕對值計算電路C11的示意性框圖。
如第5a圖所示,絕對值計算電路C11包括第二選擇器52,配置為判斷該過渡資料位Tdata是否小於零;第一補數計算器53,配置為如果該過渡資料位Tdata小於零,則計算該過渡資料位的補數,作為中間資料位ABS;否則以該過渡資料位Tdata作為中間資料位ABS。求補數實際是對除符號位之外的其他位求反並且加1。因此第一補數計算器53中可以包括第一反相器531和第一加法器532。而如果該過渡資料位Tdata大於等於零(不為負),則中間資料位ABS等同於過渡資料位Tdata。
第5b圖示出了根據本公開另一個實施方式的絕對值計算電路C11的示意性框圖。
如第5b圖所示,該絕對值計算電路C11進一步包括第一選擇器51和第一規格化器54。第一選擇器51,其接收過渡資料位Tdata,並判斷該過渡資料位Tdata的資料類型是第一型還是第二型。
上述的第一型例如可以是Fix類型,第二型例如可以是Float類型。下文以及附圖的描述中,將以Fix作為第一型的示例,以Float作為第二型的示例進行描述。需要理解的是,第一型和第二型資料也可以是任何其他適合的數型。
如果該過渡資料位Tdata是Fix類型,則進入第二選擇器52。在第二選擇器52中,判斷該過渡資料位Tdata是否小於零,如果該過渡資料位Tdata小於零(為負),則在第一補數計算器53中對該Tdata求補數,並作為中間資料位ABS。求補數實際是對除符號位之外的其他位求反並且加1。因此第一補數計算器53中可以包括第一反相器531和第一加法器532。而如果該過渡資料位Tdata大於等於零(不為負),則中間資料位ABS等同於過渡資料位Tdata。
如果該過渡資料位Tdata是Float類型,則進入第一規格化器54。在該第一規格化器54中,對該Tdata進行規格化,規格化的資料作為中間資料位ABS。
規格化是一種對Float類型數進行的操作,Float類型數在IEEE754標準的定義中有規格化數、非規格化數、零、正負無窮和非數幾種類型;在這一操作中,可以將所有的規格化數前補1,非規格化數後補0,構成數的實際原碼表示結果。該結果比Float類型中的規格化/非規格化表示結果多一位。
進一步如第4a圖所示,第一運算單元C1還包括指數位計算電路C12,配置為根據該過渡指數位Tshift來計算中間指數位EXP。根據本公開的一個實施方式,上述的中間指數位(EXP)等同於該過渡指數位Tshift。
進一步如第4a圖所示,根據本公開的一個實施方式,符號位計算電路C13可以是直連線。第一運算單元C1還包括符號位計算電路C13,配置為根據該過渡符號位Tsign來計算中間符號位Sign。需要理解的是,符號並不發生變化,因此可以通過直連線來根據過渡符號位Tsign來計算該中間符號位Sign。
進一步如第4b圖所示,根據本公開的一個實施方式,中間結果還可以包括中間捨入位STK,為了計算該中間捨入位STK,該第一計算電路C1還可以進一步包括:捨入位計算電路C14。
根據本公開的一個實施方式,該捨入位計算電路C14可以配置為根據該中間資料位ABS和中間符號位Sign來計算該中間捨入位。
根據本公開的另一個實施方式,該捨入位計算電路C14可以配置為根據該中間資料位ABS、中間指數位EXP和中間符號位Sign來計算該中間捨入位。
在上面計算中間捨入位STK的兩個實施方式中,中間指數位EXP可以使用,也可以不使用,例如當中間捨入位STK採用陣列的方式時(例如所有的捨入內容均需要保留),則可以不採用中間指數位EXP;而如果中間捨入位特別需要指明某一位或者幾位時,則可以採用中間指數位EXP。
根據本公開的一個實施方式,該捨入位計算電路C14可以通過與或邏輯來實現。例如,四捨五入的STK = ABS,以及向正無窮捨入的STK[n] = |ABS[n:x1] && ~SIGN等等。
如第4a圖所示,通過上述的轉換器和方法,所有類型的資料均可以被轉換為具有相同內容的中間結果。即,根據本公開的一個實施方式,該中間結果可以包括中間符號位Sign,中間指數位EXP和中間資料位ABS。
如第4b圖所示,根據本公開的另一個實施方式,該中間結果可以包括中間符號位Sign,中間指數位EXP、中間資料位ABS和中間捨入位STK。
第4a圖和第4b圖中的捨入位計算電路C14也可以設置在第二轉換級L2中,即第二轉換級L2可以接收包括中間符號位Sign,中間指數位EXP和中間資料位ABS的中間結果,並根據該中間結果來計算中間捨入位STK。
更進一步地,根據本公開的另外一個實施方式,捨入位計算電路也可以是單獨的模組,其可以獨立於第一轉換級L1和第二轉換級L2而存在。
儘管上面結合第4a圖、第4b圖、第5a圖和第5b圖進行了描述,但本領域具有通常知識者可以理解的是,這些圖中的電路,單元等元件可以單獨地存在,可以結合在一起存在,可以與其他轉換級結合起來存在。
可以通過第二轉換級L2將該中間結果轉換為所需的資料類型。
第6圖示出了根據本公開的一個實施方式的第二轉換級L2的示意性框圖。
如第6圖所示,第二轉換級L2可以包括前置輸出計算單元P2和資料恢復單元R2,該前置輸出計算單元P2配置為根據該中間資料位ABS、中間符號位Sign、中間指數位EXP和中間捨入位STK來計算前置輸出資料位Pdata和前置輸出符號位Psign。該資料恢復單元R2配置為根據該前置輸出資料位Pdata和前置輸出符號位Psign來生成第二類型資料。
需要理解的是,儘管第6圖中未示出第二轉化級L2包括捨入位計算電路C14,但第6圖中的中間捨入位STK可以來自於第一轉換級L1,也可以來自於L2本身所包含的捨入位計算電路C14。此外,這裡的前置輸出計算單元P2接收了四個輸入,分別為ABS、Sign、EXP和STK,但需要理解的是,如上所述,STK的計算可以在第一轉換級L1中完成,也可以在第二轉換級L2中完成,或者,還可以集成在該前置輸出計算單元P2中。這裡示出的四個輸入,僅僅是為了方便於理解和描述,而不在於對本公開的內容進行任何的限制。
第7a圖示出了根據本公開一個實施方式的前置輸出計算單元P2的示意性框圖。
如第7a圖所示,前置輸出計算單元P2包括移位運算器P21和加法器P22,配置為生成臨時輸出資料位ABS’和前置輸出符號位Psign。移位運算器P21配置為將中間資料位ABS移動中間指數位EXP,得到移位結果;加法器P22接收移位運算器P21的移位結果以及中間捨入位STK,來生成臨時輸出資料位ABS’;前置輸出符號位Psign等同於該中間符號位SIGN。
首先,在前置輸出計算單元P2中,將接收到的中間資料位ABS進行移位,移位的量和方向由中間指數位EXP來確定。所得到的移位結果輸入到接下來的加法器P22中。
加法器P22的輸出為ABS’=移位運算器P21的輸出結果+STK[-EXP-1]。而如果STK超出範圍,則STK取零。需要解釋的是,STK是一個陣列,比如一個32位陣列STK[31:0]。這裡面STK[0]就是最低位的元素,STK[31]是最高位的元素這樣。我們計算-EXP-1,如果是在0-31之間,就取對應的值,小於0則取0,大於0則進行特殊處理(根據STK類型的不同取0或31)。
在特定情況下,例如ABS’未溢出的情況下,則該ABS’可以直接作為前置輸出計算單元P2的輸出。
第7b圖示出了根據本公開的另一個實施方式的前置輸出計算單元P2的示意性框圖。
如第7b圖所示,前置輸出計算單元P2進一步包括選擇器P23,在該選擇器P23中判斷所生成的ABS’是否溢出,如果溢出,則對ABS’進行飽和處理,如果未溢出,則Pdata=ABS’。
飽和處理是一種在各種運算單元中都有的一種特殊情況處理。在運算包括轉數的過程中,會出現輸入資料得到的結果與輸出資料的取值範圍不同的情況:如果應該得到的結果的絕對值比輸出資料表示範圍的絕對值上限還要大,則出現上溢出;如果應該得到的結果的絕對值比輸出資料表示範圍的絕對值下限還要小,則出現下溢出;溢出情況一般有以下幾種處理辦法:取飽和值、高位截斷、取無窮或特殊值。本公開中可以採用任何方式來進行飽和處理。
此外,SIGN通過直連線輸出為Psign,即符號不發生變化。
此外,在第7a圖和第7b圖中未示出前置輸出指數位Pshift,在所有資料移位已經完成的情況下,Pshift=0。
第7a圖和第7b圖中的輸出資料,在某些特定情況下(例如輸入輸出均為Fix類型,符號均為正),例如臨時輸出資料位ABS’、前置輸出資料位Pdata以及前置輸出符號位Psign可以直接成為第二輸出資料,而無需進行進一步的處理。
第7a圖和第7b圖示出了本公開前置輸出計算單元P2的另一個實施方式,在第7a圖和第7b圖中,所輸出的前置輸出指數位Pdata,前置輸出指數位Psign可以輸出到外部以進行進一步處理。
第8圖示出了根據本公開的一個實施方式的資料恢復單元R2的結構示意圖。
如第8圖所示,該資料恢復單元R2用於根據輸出的前置輸出資料Pdata和前置輸出符號PSign來得到第二輸出資料。
如第8圖所示,資料恢復單元R2可以包括前置輸出處理電路R21,優選地,還可以包括資料組裝電路R22。資料組裝和上文中介紹的資料拼接可以是一個逆操作,將拼接的資料恢復成為所需的第二類型資料,本領域具有通常知識者可以根據實際的資料類型來確定是否需要增加該組裝電路。例如,對於未拼接的資料,則可以不需要該資料組裝電路R22,因此該資料組裝電路R22也只是優選而不是必須的。
例如,輸入為32位的Float類型數,而輸出為32位的Fix類型數,此時在輸入的時候並未發生拼接或者拆分,因此從長度上來講,並不需要資料組裝電路R22。
如第8圖所示,資料恢復單元R2中的前置輸出處理電路R21接收第7a圖中的臨時輸出資料位ABS’和前置示出符號位Psign,或者接收第7b圖中的前置輸出資料位Pdata和前置輸出符號位Psign,來得到輸出資料位表示Data_out。
對於特定資料類型的資料,例如非負數的Fix型資料,輸出資料位表示Data_out等同於前置輸出資料Pdata,而無需進行特殊的變換或處理。
考慮到資料類型中還存在例如Float等其他資料類型,本公開中的前置輸出處理電路R21進一步配置為生成浮點數小數點位表示SHIFT_FP。
進一步如第8圖所示,資料組裝電路R22根據輸出資料位表示Data_out、浮點數小數點位數表示SHIFT_FP以及前置輸出符號位Psign來得到最終的第二類型資料。需要理解的是,在第8圖中,浮點數小數點位數表示SHIFT_FP以虛線示出,表明該浮點數小數點位數表示SHIFT_FP在特定情況下可能並不存在,在此情況下,資料組裝電路R22配置為根據資料輸出位表示Data_out和前置輸出符號位Psign來得到該第二類型資料。
第9a圖示出了根據本公開一個實施方式的前置輸出處理電路R21的示意性框圖。
如第9a圖所示,本公開的前置輸出處理電路R21包括:第四選擇器92和第二補數計算器93。
在第9a圖中,在第四選擇器92中接收該Pdata,並且接收前置輸出符號位Psign。判斷該PSign是負數還是非負數,即判斷Psign等於1還是等於0。
如果Psign=1,則進入第二補數計算器93,該第二補數計算器包括第二反相器931和第二加法器932,該第二反相器931先對符號位之外的所有位求反,然後第二加法器932再加1。接下來,第二補數計算93器輸出結果作為輸出資料位表示Data_out。
如果Psign=0,則直接輸出該Pdata作為輸出資料位表示Data_out。
考慮到資料存在多種類型,因此可以事先對前置輸出資料位Pdata進行判斷,以確定後續如何進行進一步處理。
第9b圖示出了根據本公開的另一個實施方式的前置輸出處理電路R21的示意性框圖。
如第9b圖所示,該前置輸出處理電路R21進一步包括:第三選擇器91、第二規格化器94以及浮點數小數點確定器95。
其中,第三選擇器91接收該前置輸出資料位Pdata,判斷該前置輸出資料位Pdata的資料類型是Fix還是Float,如果前置輸出資料位Pdata的資料類型是Fix,則將該前置輸出資料位Pdata發送到第四選擇器92,如果該前置輸出資料位Pdata的資料類型是Float,則將該前置輸出資料位Pdata發送到第二規格化器94。
第二規格化器94可以將該前置輸出資料位Pdata進行規格化,並輸出為資料輸出位表示Data_out。
在規格化數的定義中,是通過簡單的大小比較進行規格化與非規格化區分的。絕對值大於可表示的絕對值最大值(正負飽和值),無法表示,上溢出並做飽和處理;絕對值小於飽和值但是大於規格化臨界值,進行規格化操作;絕對值小於規格化臨界值但是大於可表示最小值,進行非規格化操作;小於可表示最小值,下溢出並做飽和處理(取0或可表示最小值或特殊值)。在第二轉換級L2中的規格化就是去掉首位的1,非規格化就是右移一位,和之前第一轉換級L1中的規格化操作屬於互逆操作。
浮點數小數點位置確定器95可以根據該第二規格化器的輸出來確定浮點數小數點位數表示SHIFT_FP。
需要指出的是,上文中的各種階段的資料,在各個階段中可以保持位數的一致。例如,如果第一類型資料被拼接起來(例如兩個16位的資料被拼接為一個32位的資料),那麼過渡資料位Tdata也是兩個拼接起來的資料。類似地,中間結果(例如Sign,ABS,EXP,STK),前置輸出資料(例如前置輸出資料位Pdata,前置輸出符號位Psign),輸出資料位表示Data_out以及浮點數小數點位數表示SHIFT_FP均可以是兩個拼接起來的資料。拼接的形式可以根據使用者的需求來設定。
對於資料組裝電路R22,可能存在多種情況。
例如,對於一個32位的轉換器而言,如果輸入為16位的Fix類型數,而輸出為32位的Fix類型數,則可以簡單地通過在高位添加零的方式將輸入的16位轉換為32位數,則最終的輸出可以直接為32位數,並不需要進行任何的資料組裝等。
又例如,對於一個32位的轉換器而言,如果輸入為32位的Fix類型數,而輸出為16位的Fix類型數,則在第一轉換級中正常地對輸入進行轉化,而經過轉換後得到資料可以通過截去高位的16位數來得到最終的16位Fix類型數。
可以看出,上述的資料組裝電路R22在某些情況下可以不發揮作用,由此對於本公開並不是必須的。
此外,由於前置輸出處理電路R21輸出的輸出資料位表示Data_out以及浮點數小數點位數表示SHIFT_FP可能是多個資料拼接在一起的,因此可以採用該資料組裝電路R22將資料轉變或組裝為最終所需的資料形式,例如可以將拼接在一起的資料進行拆分,可以將資料的各個部分(例如有效資料部分和符號部分)進行組裝。
舉例而言,輸出資料位表示Data_out的資料可能是{0000 0000 0000 0000 0101 0011 0001 1010},而資料的符號位{0001},此時需要輸出的數為Fix8,那麼資料組裝電路R22可以從上面的資料中提取出兩個最終的第二類型資料,分別為{0101 0011}和{0001 1010},資料的符號分別為0和1。由此,陣列組裝電路可以從輸出資料位表示Data_out中提取出最終的資料。
本公開的第一轉換級L1還可以接收約束資訊,該約束資訊可用於指示該轉換器是否支援特定標準,和/或是否支援編譯優化。特定標準可以是任何適合本公開的已知或未知的標準,例如IEEE754;編譯優化例如可以是對編譯器行為-o0,-o1的支持等。
需要理解的是,上面僅僅是針對特定實例進行了描述,這些實例僅僅是為了方便說明而不對本公開的保護範圍形成任何限制。本公開的第一類型資料和第二類型資料的資料類型,以及約束資訊的內容,可以進行任何擴展,任何已有的或者未來新開發的資料類型,均可以以本公開的技術方案來實施。
在上文中,中間資料經過第二轉換級L2時,可能存在多種狀態,例如第7a圖中加法器的輸出ABS’,第7b圖中選擇器的輸出Pdata,第8圖、第9a圖和第9b圖中前置輸出處理電路的輸出Data_out等,這些資料(可選地,加上其他輔助資料)均可以等同於第二類型資料。例如,ABS’可以等同於第二類型資料,ABS’+Pdata也可以等同於第二類型資料;類似地,Pdata可以等同於第二類型資料,Pdata+Psign也可以等同於第二類型資料,二者的區別僅在於符號位;又例如,Data_out可以等同於第二類型資料,Data_out+Shift_FP也可以等同於第二類型資料。需要理解的是,這些不同階段的資料雖然以不同的符號來表示,但對於某些資料而言可能是相同或等同的資料,換言之,本文中所稱的“第二類型資料”可能是上面中任意一個資料,只是在各個圖中表示的方式不同而已。例如,當輸入數為Fix16類型,為正數,並且被擴展為一個32位數,輸出為Fix32時,則Pdata在經過第四選擇器(如第9a圖所示)後,被分配為Data_out直接輸出。Data_out的資料本身即符合Fix32的格式,因此也可以不做進一步處理,而直接輸出為第二類型資料。
下面將結合具體的示例來解釋上述的各種單元、電路以及部件。
實例1
實例1給出了一個Fix8轉Float16的實例。設輸入數為81和82,資料類型為fix8,輸出的資料類型為Float16,則將兩個數拼接的16進制數為DATA = 32’h 00008182 (0000 0000 0000 0000 1000 0001 1000 0010),指數位Shift為9位,例如-1(1 1111 1111),捨入方式為四捨五入。其中,在上面的表述中32’表示32位,h表示16進制。
如第1圖-第3圖所示,通過拼接之後,形成32位數,即經過第一資料解析單元P1之後的輸出為:過渡資料位Tdata為32’h ff81 ff82。拼接之後的shift,即過渡指數位Tshifit為-1 (1 1111 1111),與原始輸入等同。
所提取的Sign為0011,其中,只有兩個數有效(即11,分別為82和81的符號),無效位置0;有效數是兩個負數,則值為1。即過渡符號位Tsign為0011。
需要理解的是,上面的描述是以拼接後的資料為對象進行描述的,如果以單一資料作為對象(例如81)並且以實際值進行描述(未拼接之前的資料),則過渡資料位為81,過渡指數位為-1,而過渡符號位為1。
如第3圖所示,經過計算之後,即經過第一運算單元C1之後,可以得到:ABS=32’h 007f 007e ,輸入為Fix類型,經過選擇器P23取補數。EXP = -1 (1 1111 1111),與過渡指數位等同。SIGN = 0011 (直接相等)。STK = 32’h 007f 007e (四捨五入時,STK = ABS)。
接下來,中間結果ABS、EXP、SIGN和STK輸入到第二轉換級L2(如第6圖-第9b圖所示):通過移位運算器P21,由於EXP = -1,所以右移一位,得到移位結果 =32’h 003f 003f;通過加法器P22,此次加法加的例如是 STK[-EXP -1] = STK[0],在兩個數時對應為STK[16] = 1, STK[0] = 0:加法器輸出的高16位[31:16] = 16’h 003f + STK[16] = 16’h 0040; 加法器輸出的低16位[15:0] = 16’h 003f + STK[0] =16’h 003f。因此,加法器輸出 = 32’h 0040 003f。通過選擇器P23,顯然加法器輸出比較小,沒有溢出,不報例外。且Pdata = 加法器輸出= 32’h 0040 003f = 0000 0000 0100 0000 0000 0000 0011 1111。
接下來,資料進入前置輸出處理電路R21,如第8圖所示。輸出類型為Float16,故對Pdata取規格化,DATA_out = 32’h 0000 001f。SHIFT_FP = {6-15, 5-15} = {-9, -10} = {10111, 10110}。
接下來,資料通過資料組裝電路R22,如第8圖所示。將SIGN, SHIFT_FP DATA_out組裝為2個Float 16類型的資料。第二類型資料 = {1, 10111, 0000000000, 1, 10110, 0000011111}= 32’h dc00 d81f。
實例2
實例2給出了一個Float16轉Fix8,SHIFT = -3的實例。設輸入DATA = 32’h c001 4401(1100 0000 0000 0001 0100 0100 0000 0001),SHIFT = -3,捨入方式為向正無窮捨入。
如第1圖-第3圖所示,Tdata = 32’h 0401 0401 (0000 0100 0000 0001 0000 0100 0000 0001)(只有兩個有效數每個有11位,其餘位數做符號位拓展,由於fp本身原碼表示,符號位補0)。Tshifit = {16,17} (10000 10001) 輸入類型為Float,取中間若干位直接相等。Tsign = 0010(只有兩個數有效,無效位置0;有效數是一個負數一個正數,所以設為10)。
如第3圖所示,經過計算之後,即經過第一運算單元C1之後,可以得到ABS = 32’h 0401 0401,輸入為Float,直接原碼輸出ABS=Tdata。EXP = {16-15-(3) , 17–15–(3)} = {-2, -1} (輸入為Float類型,先取移碼-15, 再與輸出shift作差) = {11110 11111}。SIGN = 0010 (直接相等)。STK = 32’h 0000 ffff 。向正無窮捨入時,本例子中資料表示位數為ABS[31:16], ABS[15:0]), 則STK[n] = |ABS[n:x1] && ~SIGN, 其中 x2 >= n >= x1)。對於一個32位數而言的高16位而言,x2=31,x1=16;而對於其低16位,x2=15,x1=0。
接下來,中間結果ABS、EXP、SIGN和STK輸入到第二轉換級L2(如第6圖-第9b圖所示):通過移位運算器P21,由於EXP = {-2,-1},分別右移2,1位,得到移位結果 =32’h 0008 0010;通過加法器P22, 此次加法加的例如是 STK[-EXP -1] = STK[2],STK[1] ,在兩個數時對應為STK[18] = 0, STK[1] = 1 :加法器輸出的高16位[31:16] = 16’h 0008 + STK[18] =16’h 0008;加法器輸出的低16位 [15:0] = 16’h 0010 + STK[1] =16’h 0011。因此,加法器輸出 = 32’h 0008 0011。
通過選擇器P23,顯然加法器輸出比較小,沒有溢出,不報例外。且Pdata = 加法器輸出= 32’h 0008 0011= 0000 0000 0000 1000 0000 0000 0001 0001。
接下來,資料進入前置輸出處理電路R21,如第8圖所示。輸出類型為Fix,故對Pdata取補數表示, DATA_out = 32’h fff8 0011。
接下來,資料通過資料組裝電路R22,如第8圖所示。將得到的DATA_out轉化為2個Fix8類型的資料,置於低位並將高16位無效數置零。得到第二類型資料 = 32’h 0000 f811。
本公開還基於以上設備,提供了一種方法,如第2圖所示,公開中方法的其他操作和步驟出於簡化的目的未在附圖中示出。本公開的方法的操作可以基於本公開所記載的具體設備、單元和電路,但也可以基於其他的軟體、硬體、固件等,而不局限於上述的具體結構。
根據本公開的另一個方面,還提供一種電子設備,包括:一個或多個處理器;以及記憶體,該記憶體中存儲有電腦可執行指令,當該電腦可執行指令由該一個或多個處理器運行時,使得該電子設備執行如上所述的方法。
根據本公開的又一個方面,還提供一種電腦可讀存儲介質,包括電腦可執行指令,當該電腦可執行指令由一個或多個處理器運行時,執行如上所述的方法。
在傳統的實際計算中,資料類型轉換工作出現的的轉換類型少,約束少,絕大多數都可以用簡單的軟體行為和指令在較少時序週期內完成,更重要的是資料類型轉換指令出現的頻率非常低。
而在AI晶片中,由於精度的不同要求,在每一步驟的計算中都很可能出現資料類型轉換的需求,而一旦出現,也不僅僅是少量數的計算,而是非常密集的大規模計算,其資料組織非常規整。如果使用傳統的資料類型轉換方式,則大規模密集計算會產生較大的訪存延時。由於資料類型轉換指令出現頻率較高,此部分瓶頸會影響處理器核的整體計算性能。
此外,對於簡單堆積轉數指令會使得轉數模組出現大量邏輯冗餘,造成局部面積過大,佈線過於密集,影響處理器的局部性能。下面舉一個例子說明邏輯冗餘的問題:在Fix4轉fp16類型的資料類型轉換過程中,需要將Fix4輸入轉為絕對值形式,依據此絕對值形式計算捨入位,並在資料轉換的最後階段將相同數值資料由定點表示,轉化為normal或denormal形式的浮點數10位尾數表示,並最終由符號位、指數、尾數,完成輸出數的拼接。事實上,在Fix4轉fp16的過程中,也要有完全相同的前半部分邏輯:將Fix4輸入轉為絕對值形式,依據此絕對值形式計算捨入位;在Fix8轉fp16時,也會有完全相同的後半部分邏輯:相同數值資料由定點表示,轉化為normal或denormal形式的浮點數10位尾數表示,並最終由符號位、指數、尾數,完成輸出數的拼接。如果簡單擴充指令集,會出現大量的重複邏輯重複計算的硬體操作(如果用編譯器行為軟體控制該部分邏輯的計算,那麼該部分冗餘計算並沒有消失,而是在軟體實現中進行了重複計算),會影響處理器性能。
本公開的這種中間結果的結構設計的主要目的是減少重複的計算邏輯,相比軟體實現減少訪存延時開銷,同時具備更好的可拓展性和可攜性。例如,只要獲得能夠表示任何資料類型的中間結果,則可以對該中間結果進行靈活的處理,而不是必須採用本公開中所記載的具體電路和結構。本公開記載的內容也很容易地移植到其他的處理單元,例如傳統的CPU和GPU中。
在本披露的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。上述實施例的各技術特徵可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特徵所有可能的組合都進行描述,然而,只要這些技術特徵的組合不存在矛盾,都應當認為是本說明書記載的範圍。
依據以下條款可更好地理解前述內容:
條款A1,一種用於轉換資料類型的轉換器,包括:一第一轉換級(L1),配置為接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,並根據該描述資訊,將該第一類型資料轉換為一中間結果;以及一第二轉換級(L2),配置為將該中間結果轉換為該第二類型資料。
條款A2,如請求項1之轉換器,其中,該第一轉換級(L1)包括一第一資料解析單元(P1)和一第一運算單元(C1),該第一資料解析單元(P1)配置為根據該第一類型資料以及該描述資訊來生成一過渡符號位(Tsign)、一過渡資料位(Tdata)和一過渡指數位(Tshift);該第一運算單元(C1)配置為根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果。
條款A3,如請求項2之轉換器,其中,該中間結果包括一中間資料位(ABS)、一中間符號位(Sign)和一中間指數位(EXP),該第一運算單元(C1)包括:一絕對值計算電路(C11),配置為根據該過渡資料位(Tdata)來計算該中間資料位(ABS);一指數位計算電路(C12),配置為根據該過渡指數位(Tshift)來計算該中間指數位(EXP);一符號位計算電路(C13),配置為根據該過渡符號位(Tsign)來計算該中間符號位(Sign)。
條款A4,如請求項3之轉換器,其中,該中間結果進一步包括一中間捨入位(STK),該第一運算單元(C1)進一步包括:一捨入位計算電路(C14),配置為根據該中間資料位(ABS)和該中間符號位(Sign)來計算該中間捨入位(STK)。
條款A5,如請求項3之轉換器,其中,該中間結果進一步包括一中間捨入位(STK),該第一運算單元(C1)進一步包括:一捨入位計算電路(C14),配置為根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算該中間捨入位(STK)。
條款A6,如請求項3-5中任意一項之轉換器,其中,該絕對值計算電路(C11)包括:一第二選擇器,配置為判斷該過渡資料位(Tdata)是否小於零;一第一補數計算器,配置為如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則以該過渡資料位(Tdata)作為該中間資料位(ABS)。
條款A7,如請求項6之轉換器,其中,該絕對值計算電路(C11)進一步包括一第一選擇器和一第一規格化器,該第一選擇器配置為判斷該過渡資料位(Tdata)的資料類型是第一型還是第二型; 如果該過渡資料位(Tdata)的資料類型是第一型,則選擇該第二選擇器進行處理;如果該過渡資料位(Tdata)的資料類型是第二型,則選擇該第一規格化器進行處理;該第一規格化器配置為當一過渡資料位(Tdata)的資料類型為第二型時,將該過渡資料位(Tdata)進行規格化,以作為該中間資料位(ABS)。
條款A8,如請求項3至7中任一項之轉換器,其中,該指數位計算電路(C12)的輸出該中間指數位(EXP)等同於該過渡指數位(Tshift)。
條款A9,如請求項3至7中任一項之轉換器,其中,該符號位計算電路(C13)為一直連線。
條款A10,如請求項1至9中任一項之轉換器,其中,該第一轉換級(L1)進一步配置為確定所接收的該第一類型資料的一數量,並將該數量的該第一類型資料拼接起來,形成一第一拼接資料,該第一轉換級(L1)根據該描述資訊,將該第一拼接資料轉換為中間結果。
條款A11,如請求項10之轉換器,其中,通過如下方式來確定所接收的該第一類型資料的該數量:以預設的一第一固定數值;或者以該轉換器的處理位數除以該第一類型資料和該第二類型資料中位數高者的位數。
條款A12,如請求項1至9中任一項之轉換器,其中,該第一轉換級(L1)進一步配置為確定所接收的該第一類型資料要拆分的該數量,並將該第一類型資料拆分為該數量的一拆分資料,該第一轉換級(L1)根據該描述資訊,將該拆分資料轉換為該中間結果。
條款A13,如請求項12之轉換器,其中,通過如下方式來確定所接收的該第一類型資料要拆分的該數量:以預設的一第二固定數值;或者以該第一類型資料和該第二類型資料中位數高者的位數除以該轉換器的處理位數。
條款A14,如請求項1至13中任一項之轉換器,其中,該描述資訊包括:一第一描述資訊,用於描述該第一類型資料的資料類型以及該第一類型資料的一第一指數位;一第二描述資訊,用於描述該第二類型資料的資料類型以及該第二類型資料的一第二指數位;該過渡指數位(Tshift)等同於該第一指數位和該第二指數位之間的差值。
條款A15,如請求項1至13中任意一項之轉換器,其中,該描述資訊包括:該第一類型資料的一第一資料類型;該第二類型資料的一第二資料類型;以及一差分指數位,該差分指數位用於指示該第一類型資料的該第一指數位與該第二類型資料的該第二指數位之間的差值;該過渡指數位(Tshift)等同於該差分指數位。
條款A16,如請求項14或15之轉換器,其中,該描述資訊還包括一捨入類型,該捨入類型包括下列中的至少一種:TO_ZERO,OFF_ZERO,UP,DOWN,ROUNDING_OFF_ZERO,ROUNDING_TO_EVEN,隨機捨入。
條款A17,如請求項3之轉換器,其中,該第二轉換級(L2)包括一捨入位計算電路(C14),配置為根據該中間資料位(ABS)和該中間符號位(Sign)來計算一中間捨入位(STK)。
條款A18,如請求項3之轉換器,其中,該第二轉換級(L2)包括一捨入位計算電路(C14),配置為根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算一中間捨入位(STK)。
條款A19,如請求項4、5、17或18之轉換器,其中,該第二轉換級(L2)配置為根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來生成該第二類型資料。
條款A20,如請求項4、5、17或18之轉換器,其中,該捨入位計算電路(C14)通過與或邏輯來實現。
條款A21,如請求項19之轉換器,其中,該第二轉換級(L2)包括:一前置輸出計算單元(P2)和一資料恢復單元(R2),該前置輸出計算單元(P2)配置為根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算一前置輸出資料位(Pdata)和一前置輸出符號位(Psign);該資料恢復單元(R2)配置為根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料。
條款A22,如請求項21之轉換器,其中,該前置輸出計算單元(P2)包括:一移位運算器(P21)和一加法器(P22),配置為生成一臨時輸出資料位(ABS’)和該前置輸出符號位(Psign),其中該移位運算器(P21)配置為將該中間資料位(ABS)移動該中間指數位(EXP),得到一移位結果;該加法器(P22)配置為根據該移位結果和該中間捨入位(STK)來生成該臨時資料位(ABS’);該前置輸出符號位(Psign)與該中間符號位等同。
條款A23,如請求項22之轉換器,該前置輸出該計算單元(P2)進一步包括一選擇器(P23),該選擇器(P23)配置為檢測該臨時資料位(ABS’)是否大於一飽和值,如果大於,則對該臨時資料位(ABS’)進行飽和處理,從而得到該前置輸出資料位(Pdata);如果不大於,則將該臨時資料位(ABS’)輸出為該前置輸出資料位(Pdata)。
條款A24,如請求項21至23中任一項之轉換器,其中,該資料恢復單元(R2)包括一前置輸出處理電路(R21)和一資料組裝電路(R22):該前置輸出處理電路(R21)配置為接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成一輸出資料位表示(Data_out);該資料組裝電路(R22)配置為根據該輸出資料位表示(Data_out)和該前置輸出符號位(Psign)來生成該第二類型資料。
條款A25,如請求項24之轉換器,其中,該前置輸出處理電路(R21)進一步配置為生成一浮點數小數點位表示(SHIFT_FP),該資料組裝電路(R22)配置為根據該資料輸出位表示(Data_out),該浮點數小數點位數表示(SHIFT_FP)和該前置輸出符號位(Psign)來生成該第二類型資料。
條款A26,如請求項24或25之轉換器,其中,該前置輸出處理電路(R21)包括:一第四選擇器和一第二補數計算器,該第四選擇器配置為接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),如果該前置輸出符號位(Psign)為負數,則將該前置輸出資料位輸出到該第二補數計算器,如果該前置輸出符號位(Psign)為非負數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out);該第二補數計算器配置為對該前置輸出資料位(Pdata)求補數。
條款A27,如請求項26之轉換器,其中,該前置輸出處理電路(R21)進一步包括:一第三選擇器、一第二規格化器以及一浮點數小數點確定器,其中該第三選擇器配置為接收該前置輸出資料位(Pdata),判斷該前置輸出資料位(Pdata)的資料類型是第一型還是第二型,如果該前置輸出資料位(Pdata)的資料類型是第一型,則將該前置輸出資料位(Pdata)發送到該第四選擇器,如果該前置輸出資料位(Pdata)的資料類型是第二型,則將該前置輸出資料位(Pdata)發送到該第二規格化器;該第二規格化器配置為將該前置輸出資料位(Pdata)進行規格化,並輸出為該資料輸出位表示(Data_out);該浮點數小數點位置確定器配置為根據該第二規格化器的輸出來確定該浮點數小數點位數表示(SHIFT_FP)。
條款A28,如請求項1至27中任一項之轉換器,該第一轉換級(L1)進一步配置為接收一約束資訊,該約束資訊用於指示是否支援特定標準,和/或是否支援編譯優化。
條款A29,如請求項1至28中任一項之轉換器,其中,該第一類型資料和該第二類型資料的資料類型是可擴展的。
條款A30,一種晶片,包括如請求項1至29中任一項之轉換器。
條款A31,一種計算裝置,包括如請求項1至29中任一項之轉換器或者如請求項30所述的晶片。
條款A32,一種用於轉換資料類型的方法,包括:接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,並根據該描述資訊,將該第一類型資料轉換為一中間結果;以及將該中間結果轉換為該第二類型資料。
條款A33,如請求項32之方法,其中,將該第一類型資料轉換為該中間結果包括:根據該第一類型資料以及該描述資訊來生成一過渡符號位(Tsign)、一過渡資料位(Tdata)和一過渡指數位(Tshift);根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果。
條款A34,如請求項33之方法,其中,該中間結果包括一中間資料位(ABS)、一中間符號位(Sign)和一中間指數位(EXP),根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果包括:根據該過渡資料位(Tdata)來計算該中間資料位(ABS);根據該過渡指數位(Tshift)來計算該中間指數(EXP);根據該過渡符號位(Tsign)來計算該中間符號位(Sign)。
條款A35,如請求項34之方法,其中,該中間結果進一步包括一中間捨入位(STK),根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift)來生成該中間結果進一步包括:根據該中間資料位(ABS)和該中間符號位(Sign)來計算該中間捨入位(STK)。
條款A36,如請求項34之方法,其中,該中間結果進一步包括一中間捨入位(STK),根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift)來生成該中間結果進一步包括:根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算該中間捨入位(STK)。
條款A37,如請求項34至36中任一項之方法,其中,根據該過渡資料位(Tdata)來計算該中間資料位(ABS)包括:判斷該過渡資料位(Tdata)是否小於零;如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則以該過渡資料位(Tdata)作為該中間資料位(ABS)。
條款A38,如請求項37之方法,其中,根據該過渡資料位(Tdata)來計算該中間資料位(ABS)進一步包括:判斷該過渡資料位(Tdata)的資料類型是第一型還是第二型, 如果該過渡資料位(Tdata)的資料類型是第一型,則判斷該過渡資料位(Tdata)是否小於零;如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則以該過渡資料位(Tdata)作為該中間資料位(ABS);如果該過渡資料位(Tdata)的資料類型是第二型,則將該過渡資料位(Tdata)進行規格化,以作為該中間資料位(ABS)。
條款A39,如請求項34至38中任一項之方法,其中,該中間指數位(EXP)等同於該過渡指數位(Tshift)。
條款A40,如請求項36之方法,其中,計算該中間捨入位(STK)通過與或邏輯來實現。
條款A41,如請求項32至40中任一項之方法,接收該第一類型資料以及關於該第一類型資料和該第二類型資料的該描述資訊包括:確定所接收的該第一類型資料的一數量,並將該數量的該第一類型資料拼接起來,形成一第一拼接資料,該第一拼接資料被轉換為該中間結果。
條款A42,如請求項41之方法,其中,通過如下方式來確定所接收的該第一類型資料的一數量:以預設的一第一固定數值;或者以所述方法採用的轉換器的處理位數除以該第一類型資料和該第二類型資料中位數高者的位數。
條款A43,如請求項32至40中任一項之方法,其中,接收該第一類型資料以及關於該第一類型資料和該第二類型資料的該描述資訊包括:確定所接收的該第一類型資料要拆分的一數量,並將該第一類型資料拆分為該數量的一拆分資料,該拆分資料被轉換為該中間結果。
條款A44,如請求項43之方法,通過如下方式來確定所接收的該第一類型資料要拆分的該數量:以預設的一第二固定數值;或者以該第一類型資料和該第二類型資料中位數高者的位數除以所述方法採用的轉換器的處理位數。
條款A45,如請求項32至44中任意一項之方法,其中,該描述資訊包括:一第一描述資訊,用於描述該第一類型資料的資料類型以及該第一類型資料的一第一指數位;一第二描述資訊,用於描述該第二類型資料的資料類型以及該第二類型資料的一第二指數位;該過渡指數位(Tshift)等同於該第一指數位和該第二指數位之間的差值。
條款A46,如請求項32至44中任一項之方法,其中,該描述資訊包括:該第一類型資料的一第一資料類型;該第二類型資料的一第二資料類型;以及一差分指數位,該差分指數位用於指示該第一類型資料的該第一指數位與該第二類型資料的該第二指數位之間的差值;該過渡指數位(Tshift)等同於該差分指數位。
條款A47,如請求項45或46之方法,其中,該描述資訊還包括一捨入類型,該捨入類型包括下列中的至少一種:TO_ZERO,OFF_ZERO,UP,DOWN,ROUNDING_OFF_ZERO,ROUNDING_TO_EVEN,隨機捨入。
條款A48,如請求項35或36之方法,其中,將該中間結果轉換為該第二類型資料包括:根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來生成該第二類型資料。
條款A49,如請求項48之方法,其中,將該中間結果轉換為該第二類型資料包括:根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算一前置輸出資料位(Pdata)和一前置輸出符號位(Psign);以及根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成第二類型資料。
條款A50,如請求項49之方法,其中,根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數(EXP)和該中間捨入(STK)來計算該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)包括:將該中間資料位(ABS)移動該中間指數位(EXP),得到一移位結果;根據該移位結果和該中間捨入位(STK)來生成一臨時資料位(ABS’);該前置輸出符號位(Psign)與該中間符號位等同。
條款A51,如請求項50之方法,根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)進一步包括:檢測該臨時資料位(ABS’)是否大於一飽和值,如果大於,則對該臨時資料位(ABS’)進行飽和處理,從而得到該前置輸出資料位(Pdata);如果不大於,則將該臨時資料位(ABS’)輸出為該前置輸出資料位(Pdata)。
條款A52,如請求項49至51中任一項之方法,其中,根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料包括:接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成一輸出資料位表示(Data_out);根據該資料輸出位表示(Data_out)和該前置輸出符號位(Psign)來得到該第二類型資料。
條款A53,如請求項52之方法,其中,根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料進一步包括:根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)生成一浮點數小數點位表示(SHIFT_FP); 根據該資料輸出位表示(Data_out),該浮點數小數點位數表示(SHIFT_FP)和該前置輸出符號位(Psign)來得到該第二類型資料。
條款A54,如請求項52或53之方法,其中,接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成該輸出資料位表示(Data_out)包括:接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),如果該前置輸出符號位(Psign)為負數,則對該前置輸出資料位(Pdata)求補數;如果該前置輸出符號位(Psign)為正數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out)。
條款A55,如請求項54之方法,其中,接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成該輸出資料位表示(Data_out)進一步包括:接收該前置輸出資料位(Pdata),判斷該前置輸出資料位(Pdata)的資料類型是第一型還是第二型,如果該前置輸出資料位(Pdata)的資料類型是第一型,則如果該前置輸出符號位(Psign)為負數,則對該前置輸出資料位(Pdata)求補數;如果該前置輸出符號位(Psign)為非負數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out);如果該前置輸出資料位(Pdata)的資料類型是第二型,則將該前置輸出資料位(Pdata)進行規格化,並輸出為該資料輸出位表示(Data_out);該浮點數小數點位置確定器配置為根據該第二規格化器的輸出來確定該浮點數小數點位數表示(SHIFT_FP)。
條款A56,如請求項32至55中任一項之方法,進一步包括接收一約束資訊,該約束資訊用於指示是否支援特定標準,和/或是否支援編譯優化。
條款A57,如請求項32至56中任一項之方法,其中,該第一類型資料和該第二類型資料的資料類型是可擴展的。
條款A58,一種電子設備,包括:一個或多個處理器;以及一記憶體,該記憶體中存儲有一電腦可執行指令,當該電腦可執行指令由該一個或多個處理器運行時,使得該電子設備執行如請求項32至57中任一項之方法。
條款A59,一種電腦可讀存儲介質,包括一電腦可執行指令,當該電腦可執行指令由一個或多個處理器運行時,執行如請求項32至57中任一項之方法。
本披露還公開了一個組合處理裝置1000,其包括上述的計算裝置1002,通用互聯介面1004,和其他處理裝置1006。根據本披露的計算裝置1000與其他處理裝置1006進行交互,共同完成用戶指定的操作。第10圖為組合處理裝置1000的示意圖。
其他處理裝置1006,包括中央處理器(CPU)、圖形處理器(GPU)、神經網路處理器等通用/專用處理器中的一種或以上的處理器類型。其他處理裝置1006所包括的處理器數量不做限制。其他處理裝置作為機器學習運算裝置與外部資料和控制的介面,包括資料搬運,完成對本機器學習運算裝置的開啟、停止等基本控制;其他處理裝置1006也可以和機器學習運算裝置協作共同完成運算任務。
通用互聯介面1004,用於在計算裝置1002(包括例如機器學習運算裝置)與其他處理裝置1006間傳輸資料和控制指令。該計算裝置1002從其他處理裝置1006中獲取所需的輸入資料,寫入該計算裝置1002片上的存儲裝置;可以從其他處理裝置1006中獲取控制指令,寫入計算裝置片1002上的控制緩存;也可以讀取計算裝置1002的存儲模組中的資料並傳輸給其他處理裝置1006。
可選的,該結構還可以包括存儲裝置1008,存儲裝置1008分別與該計算裝置1002和該其他處理裝置1006連接。存儲裝置1008用於保存在該計算裝置1002和該其他處理裝置1006的資料,尤其適用於所需要運算的資料在本計算裝置1002或其他處理裝置1006的內部存儲中無法全部保存的資料。
該組合處理裝置1000可以作為手機、機器人、無人機、視頻監控設備等設備的系統單晶片(System on Chip, SOC),有效降低控制部分的核心面積,提高處理速度,降低整體功耗。此情況時,該組合處理裝置1000的通用互聯介面1004與設備的某些部件相連接。某些部件譬如監視器,顯示器,滑鼠,鍵盤,網卡,wifi介面。
在一些實施例裡,本披露還公開了一種晶片,其包括了上述計算裝置1002或組合處理裝置1000。
在一些實施例裡,本披露還公開了一種晶片封裝結構,其包括了上述晶片。
在一些實施例裡,本披露還公開了一種板卡,其包括了上述晶片封裝結構。參閱第11圖,其提供了一種示例性的板卡1100,上述板卡1100除了包括上述晶片1102以外,還可以包括其他的配套部件,該配套部件包括但不限於:存儲器件1104、介面裝置1106和控制器件1108。
該存儲器件1104與該晶片封裝結構內的晶片通過匯流排連接,用於存儲資料。該存儲器件1104可以包括多組存儲單元1110。每一組該存儲單元1110與該晶片1102通過匯流排1114連接。可以理解,每一組該存儲單元1110可以是雙倍速率同步動態隨機記憶體(Double Data Rate SDRAM,DDR SDRAM)。
DDR不需要提高時鐘頻率就能加倍提高SDRAM的速度。DDR允許在時鐘脈衝的上升沿和下降沿讀出資料。DDR的速度是標準SDRAM的兩倍。在一個實施例中,該存儲器件1104可以包括4組該存儲單元1110。每一組該存儲單元1110可以包括多個DDR4顆粒(晶片)。在一個實施例中,該晶片1102內部可以包括4個72位DDR4控制器,上述72位DDR4控制器中64bit用於傳輸資料,8bit用於ECC校驗。在一個實施例中,每一組該存儲單元1110包括多個並聯設置的雙倍速率同步動態隨機記憶體。DDR在一個時鐘週期內可以傳輸兩次數據。在該晶片1102中設置控制DDR的控制器,用於對每個該存儲單元1110的資料傳輸與資料存儲的控制。
該介面裝置1106與該晶片封裝結構內的晶片1102電連接。該介面裝置1106用於實現該晶片1102與外部設備1112(例如伺服器或電腦)之間的資料傳輸。例如在一個實施例中,該介面裝置1106可以為標準PCIE介面。比如,待處理的資料由伺服器通過標準PCIE介面傳遞至該晶片1102,實現資料轉移。在另一個實施例中,該介面裝置1106還可以是其他的介面,本披露並不限制上述其他的介面的具體表現形式,該介面單元能夠實現轉接功能即可。另外,該晶片1102的計算結果仍由該介面裝置傳送回外部設備(例如伺服器)。
該控制器件1108與該晶片1102電連接。該控制器件1108用於對該晶片1102的狀態進行監控。具體的,該晶片1102與該控制器件1108可以通過SPI介面電連接。該控制器件1108可以包括微控制器(Micro Controller Unit,MCU)1116。如該晶片1102可以包括多個處理晶片、多個處理核或多個處理電路,可以帶動多個負載。因此,該晶片1102可以處於多負載和輕負載等不同的工作狀態。通過該控制裝置1108可以實現對該晶片1102中多個處理晶片、多個處理和/或多個處理電路的工作狀態的調控。
在一些實施例裡,本披露還公開了一種電子設備或裝置,其包括了上述板卡1100。
電子設備或裝置包括資料處理裝置、機器人、電腦、印表機、掃描器、平板電腦、智慧終端機、手機、行車記錄器、導航儀、感測器、監視器、伺服器、雲端伺服器、相機、攝影機、投影機、手錶、耳機、移動存儲、可穿戴設備、交通工具、家用電器、和/或醫療設備。
該交通工具包括飛機、輪船和/或車輛;該家用電器包括電視、空調、微波爐、冰箱、電鍋、加濕器、洗衣機、電燈、瓦斯爐、油煙機;該醫療設備包括核磁共振儀、B超儀和/或心電圖儀。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域具有通常知識者應該知悉,本披露並不受所描述的動作順序的限制,因為依據本披露,某些步驟可以採用其他順序或者同時進行。其次,本領域具有通常知識者也應該知悉,說明書中所描述的實施例均屬於可選實施例,所涉及的動作和模組並不一定是本披露所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本披露所提供的幾個實施例中,應該理解到,所披露的裝置,可通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如該單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性、光學、聲學、磁性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本披露各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體程式模組的形式實現。
所述集成的單元如果以軟體程式模組的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取記憶體中。基於這樣的理解,當本披露的技術方案可以以軟體產品的形式體現出來,該電腦軟體產品存儲在一個記憶體中,包括若干指令用以使得一台電腦設備(可為個人電腦、伺服器或者網路設備等)執行本披露各個實施例所述方法的全部或部分步驟。而前述的記憶體包括:隨身碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、移動硬碟、磁碟或者光碟等各種可以存儲程式碼的介質。
以上對本披露實施例進行了詳細介紹,本文中應用了具體個例對本披露的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本披露的方法及其核心思想;同時,對於本領域的一般具有通常知識者,依據本披露的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本披露的限制。
100:浮點資料格式
51:第一選擇器
52:第二選擇器
53:第一補數計算器
531:第一反相器
532:第一加法器
54:第一規格化器
91:第三選擇器
92:第四選擇器
93:第二補數計算器
931:第二反相器
932:第二加法器
94:第二規格化器
1000:組合處理裝置
1002:計算裝置
1004:通用互聯介面
1006:其他處理裝置
1008:存儲裝置
1100:板卡
1102:晶片
1104:存儲器件
1106:介面裝置
1108:控制器件
1110:存儲單元
1112:外部設備
1114:匯流排
1116:微處理器
ABS:中間資料位
ABS’:臨時輸出資料位
C1:第一運算單元
C11:絕對值計算電路
C12:指數值計算電路
C13:符號位計算電路
C14:捨入位計算電路
Data_out:輸出資料位表示
EXP:中間指數位
L1:第一轉換級
L2:第二轉換級
P1:第一資料解析單元
P2:前置輸出計算單元
P21:移位運算器
P22:加法器
P23:選擇器
Pdata:前置輸出資料位
Psign:前置輸出符號位
R2:資料恢復單元
R21:前置輸出處理電路
R22:資料組裝電路
S1-S2:步驟
Sign:中間符號位
SHIFT_FP:浮點數小數點位數表示
STK:中間捨入位
Tdata:過渡資料位
Tshift:過渡指數位
Tsign:過渡符號位
[第1圖] 示出了根據本公開第一方面的用於轉換資料類型的轉換器。
[第2圖] 示出了根據本公開另一個方面的用於轉換資料類型的方法的流程圖。
[第3圖]示出了根據本公開的一個實施方式的第一轉換器L1的示意性框圖。
[第4a圖]示出了根據本公開一個實施方式的第一計算單元C1的具體結構以及中間結果的資料結構。
[第4b圖] 示出了根據本公開另一個實施方式的第一計算單元C1的具體結構以及中間結果的資料結構。
[第5a圖] 示出了根據本公開一個實施方式的絕對值計算電路C11的示意性框圖。
[第5b圖] 示出了根據本公開一個實施方式的絕對值計算電路C11的示意性框圖。
[第6圖] 示出了根據本公開的一個實施方式的第二轉換級L2的示意性框圖。
[第7a圖] 示出了根據本公開一個實施方式的前置輸出計算單元P2的示意性框圖。
[第7b圖]示出了根據本公開另一個實施方式的前置輸出計算單元P2的示意性框圖。
[第8圖] 示出了根據本公開的一個實施方式的資料恢復單元R2的結構示意圖。
[第9a圖]示出了根據本公開一個實施方式的前置輸出處理電路R21的示意性框圖。
[第9b圖]示出了根據本公開另一個實施方式的前置輸出處理電路R21的示意性框圖。
[第10圖]示出了根據本公開實施例的一種組合處理裝置的結構圖。
[第11圖]示出了根據本披露實施例的一種板卡的結構示意圖。
1000:組合處理裝置
1002:計算裝置
1004:通用互聯介面
1006:其他處理裝置
1008:存儲裝置
Claims (59)
- 一種用於轉換資料類型的轉換器,包括:一第一轉換級(L1),配置為接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,並根據該描述資訊,將該第一類型資料轉換為一中間結果;以及一第二轉換級(L2),配置為將該中間結果轉換為該第二類型資料;其中,該描述資訊包括:一第一描述資訊,用於描述該第一類型資料的資料類型以及該第一類型資料的一第一指數位;一第二描述資訊,用於描述該第二類型資料的資料類型以及該第二類型資料的一第二指數位;或者該描述資訊包括:該第一類型資料的一第一資料類型;該第二類型資料的一第二資料類型;以及一差分指數位,該差分指數位用於指示該第一類型資料的該第一指數位與該第二類型資料的該第二指數位之間的差值。
- 如請求項1之轉換器,其中,該第一轉換級(L1)包括一第一資料解析單元(P1)和一第一運算單元(C1),該第一資料解析單元(P1)配置為根據該第一類型資料以及該描述資訊來生成一過渡符號位(Tsign)、一過渡資料位(Tdata)和一過渡指數位(Tshift);該第一運算單元(C1)配置為根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果。
- 如請求項2之轉換器,其中,該中間結果包括一中間資料位(ABS)、一中間符號位(Sign)和一中間指數位(EXP),該第一運算單元(C1)包括:一絕對值計算電路(C11),配置為根據該過渡資料位(Tdata)來計算該中間資料位(ABS);一指數位計算電路(C12),配置為根據該過渡指數位(Tshift)來計算該中間指數位(EXP);一符號位計算電路(C13),配置為根據該過渡符號位(Tsign)來計算該中間符號位(Sign)。
- 如請求項3之轉換器,其中,該中間結果進一步包括一中間捨入位(STK),該第一運算單元(C1)進一步包括:一捨入位計算電路(C14),配置為根據該中間資料位(ABS)和該中間符號位(Sign)來計算該中間捨入位(STK)。
- 如請求項3之轉換器,其中,該中間結果進一步包括一中間捨入位(STK),該第一運算單元(C1)進一步包括:一捨入位計算電路(C14),配置為根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算該中間捨入位(STK)。
- 如請求項3至5任一項之轉換器,其中,該絕對值計算電路(C11)包括:一第二選擇器,配置為判斷該過渡資料位(Tdata)是否小於零;一第一補數計算器,配置為如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則 以該過渡資料位(Tdata)作為該中間資料位(ABS)。
- 如請求項6之轉換器,其中,該絕對值計算電路(C11)進一步包括一第一選擇器和一第一規格化器,該第一選擇器配置為判斷該過渡資料位(Tdata)的資料類型是第一型還是第二型;如果該過渡資料位(Tdata)的資料類型是第一型,則選擇該第二選擇器進行處理;如果該過渡資料位(Tdata)的資料類型是第二型,則選擇該第一規格化器進行處理;該第一規格化器配置為當一過渡資料位(Tdata)的資料類型為第二型時,將該過渡資料位(Tdata)進行規格化,以作為該中間資料位(ABS)。
- 如請求項3至5任一項之轉換器,其中,該指數位計算電路(C12)的輸出該中間指數位(EXP)等同於該過渡指數位(Tshift)。
- 如請求項3至5任一項之轉換器,其中,該符號位計算電路(C13)為一直連線。
- 如請求項1至5任一項之轉換器,其中,該第一轉換級(L1)進一步配置為確定所接收的該第一類型資料的一數量,並將該數量的該第一類型資料拼接起來,形成一第一拼接資料,該第一轉換級(L1)根據該描述資訊,將該第一拼接資料轉換為中間結果。
- 如請求項10之轉換器,其中,通過如下方式來確定所接收的該第一類型資料的該數量:以預設的一第一固定數值;或者 以該轉換器的處理位數除以該第一類型資料和該第二類型資料中位數高者的位數。
- 如請求項1至5任一項之轉換器,其中,該第一轉換級(L1)進一步配置為確定所接收的該第一類型資料要拆分的該數量,並將該第一類型資料拆分為該數量的一拆分資料,該第一轉換級(L1)根據該描述資訊,將該拆分資料轉換為該中間結果。
- 如請求項12之轉換器,其中,通過如下方式來確定所接收的該第一類型資料要拆分的該數量:以預設的一第二固定數值;或者以該第一類型資料和該第二類型資料中位數高者的位數除以該轉換器的處理位數。
- 如請求項2至5任一項之轉換器,其中,該過渡指數位(Tshift)等同於該第一指數位和該第二指數位之間的差值。
- 如請求項2至5任一項之轉換器,其中,該過渡指數位(Tshift)等同於該差分指數位。
- 如請求項1至5之轉換器,其中,該描述資訊還包括一捨入類型,該捨入類型包括下列中的至少一種:TO_ZERO,OFF_ZERO,UP,DOWN,ROUNDING_OFF_ZERO,ROUNDING_TO_EVEN,隨機捨入。
- 如請求項3之轉換器,其中,該第二轉換級(L2)包括一捨入位計算電路(C14),配置為根據該中間資料位(ABS)和該中間符號位(Sign)來計算一中間捨入位(STK)。
- 如請求項3之轉換器,其中,該第二轉換級(L2)包括一捨入位計算電路(C14),配置為根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算一中間捨入位(STK)。
- 如請求項4、5、17或18之轉換器,其中,該第二轉換級(L2)配置為根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來生成該第二類型資料。
- 如請求項4、5、17或18之轉換器,其中,該捨入位計算電路(C14)通過與或邏輯來實現。
- 如請求項19之轉換器,其中,該第二轉換級(L2)包括:一前置輸出計算單元(P2)和一資料恢復單元(R2),該前置輸出計算單元(P2)配置為根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算一前置輸出資料位(Pdata)和一前置輸出符號位(Psign);該資料恢復單元(R2)配置為根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料。
- 如請求項21之轉換器,其中,該前置輸出計算單元(P2)包括:一移位運算器(P21)和一加法器(P22),配置為生成一臨時輸出資料位(ABS’)和該前置輸出符號位(Psign),其中該移位運算器(P21)配置為將該中間資料位(ABS)移動該中間指數位(EXP),得到一移位結果;該加法器(P22)配置為根據該移位結果和該中間捨入位(STK)來生成該臨時資料位(ABS’);該前置輸出符號位(Psign)與該中間符號位等同。
- 如請求項22之轉換器,該前置輸出該計算單元(P2)進一步包括一選擇器(P23),該選擇器(P23)配置為檢測該臨時資料位(ABS’)是否大於一飽和值,如果大於,則對該臨時資料位(ABS’)進行飽和處理,從而得到該前置輸出資料位(Pdata);如果不大於,則將該臨時資料位(ABS’)輸出為該前置輸出資料位(Pdata)。
- 如請求項21之轉換器,其中,該資料恢復單元(R2)包括一前置輸出處理電路(R21)和一資料組裝電路(R22):該前置輸出處理電路(R21)配置為接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成一輸出資料位表示(Data_out);該資料組裝電路(R22)配置為根據該輸出資料位表示(Data_out)和該前置輸出符號位(Psign)來生成該第二類型資料。
- 如請求項10之轉換器,其中,所述乘法器用於根據運算模式進行所述兩個浮點數的乘法運算,所述運算模式指示所述兩個浮點數的資料格式,所述尾數處理單元用於根據所述運算模式以及所述兩個浮點數的尾數來獲得所述乘法運算後的尾數,並且所述指數處理單元用於根據所述運算模式以及所述兩個浮點數的指數來獲得所述乘法運算後的指數。
- 如請求項24之轉換器,其中,該前置輸出處理電路(R21)包括:一第四選擇器和一第二補數計算器,該第四選擇器配置為接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),如果該前置輸出符號位(Psign)為負數,則將該前置輸出資料位輸 出到該第二補數計算器,如果該前置輸出符號位(Psign)為非負數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out);該第二補數計算器配置為對該前置輸出資料位(Pdata)求補數。
- 如請求項26之轉換器,其中,該前置輸出處理電路(R21)進一步包括:一第三選擇器、一第二規格化器以及一浮點數小數點確定器,其中該第三選擇器配置為接收該前置輸出資料位(Pdata),判斷該前置輸出資料位(Pdata)的資料類型是第一型還是第二型,如果該前置輸出資料位(Pdata)的資料類型是第一型,則將該前置輸出資料位(Pdata)發送到該第四選擇器,如果該前置輸出資料位(Pdata)的資料類型是第二型,則將該前置輸出資料位(Pdata)發送到該第二規格化器;該第二規格化器配置為將該前置輸出資料位(Pdata)進行規格化,並輸出為該資料輸出位表示(Data_out);該浮點數小數點位置確定器配置為根據該第二規格化器的輸出來確定該浮點數小數點位數表示(SHIFT_FP)。
- 如請求項1至5、17及18任一項之轉換器,該第一轉換級(L1)進一步配置為接收一約束資訊,該約束資訊用於指示是否支援特定標準,和/或是否支援編譯優化。
- 如請求項1至5、17及18任一項之轉換器,其中,該第一類型資料和該第二類型資料的資料類型是可擴展的。
- 一種晶片,包括如請求項1-29任一項之轉換器。
- 一種計算裝置,包括如請求項1-29任一項之轉換器或者如請求項30之晶片。
- 一種用於轉換資料類型的方法,包括:接收一第一類型資料以及關於該第一類型資料和一第二類型資料的一描述資訊,並根據該描述資訊,將該第一類型資料轉換為一中間結果;以及將該中間結果轉換為該第二類型資料;其中,該描述資訊包括:一第一描述資訊,用於描述該第一類型資料的資料類型以及該第一類型資料的一第一指數位;一第二描述資訊,用於描述該第二類型資料的資料類型以及該第二類型資料的一第二指數位;或者該描述資訊包括:該第一類型資料的一第一資料類型;該第二類型資料的一第二資料類型;以及一差分指數位,該差分指數位用於指示該第一類型資料的該第一指數位與該第二類型資料的該第二指數位之間的差值。
- 如請求項32之方法,其中,將該第一類型資料轉換為該中間結果包括:根據該第一類型資料以及該描述資訊來生成一過渡符號位(Tsign)、一過渡資料位(Tdata)和一過渡指數位(Tshift);根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果。
- 如請求項33之方法,其中,該中間結果包括一中間資料位(ABS)、一中間符號位(Sign)和一中間指數位(EXP),根據該過渡符號位 (Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift),來生成該中間結果包括:根據該過渡資料位(Tdata)來計算該中間資料位(ABS);根據該過渡指數位(Tshift)來計算該中間指數(EXP);根據該過渡符號位(Tsign)來計算該中間符號位(Sign)。
- 如請求項34之方法,其中,該中間結果進一步包括一中間捨入位(STK),根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift)來生成該中間結果進一步包括:根據該中間資料位(ABS)和該中間符號位(Sign)來計算該中間捨入位(STK)。
- 如請求項34之方法,其中,該中間結果進一步包括一中間捨入位(STK),根據該過渡符號位(Tsign)、該過渡資料位(Tdata)和該過渡指數位(Tshift)來生成該中間結果進一步包括:根據該中間資料位(ABS)、該中間指數位(EXP)和該中間符號位(Sign)來計算該中間捨入位(STK)。
- 如請求項34至36任一項之方法,其中,根據該過渡資料位(Tdata)來計算該中間資料位(ABS)包括:判斷該過渡資料位(Tdata)是否小於零;如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則以該過渡資料位(Tdata)作為該中間資料位(ABS)。
- 如請求項37之方法,其中,根據該過渡資料位(Tdata)來計算該中間資料位(ABS)進一步包括: 判斷該過渡資料位(Tdata)的資料類型是第一型還是第二型,如果該過渡資料位(Tdata)的資料類型是第一型,則判斷該過渡資料位(Tdata)是否小於零;如果該過渡資料位(Tdata)小於零,則計算該過渡資料位的補數,作為該中間資料位(ABS);否則以該過渡資料位(Tdata)作為該中間資料位(ABS);如果該過渡資料位(Tdata)的資料類型是第二型,則將該過渡資料位(Tdata)進行規格化,以作為該中間資料位(ABS)。
- 如請求項34至36任一項之方法,其中,該中間指數位(EXP)等同於該過渡指數位(Tshift)。
- 如請求項36之方法,其中,計算該中間捨入位(STK)通過與或邏輯來實現。
- 如請求項32至36及40任一項之方法,接收該第一類型資料以及關於該第一類型資料和該第二類型資料的該描述資訊包括:確定所接收的該第一類型資料的一數量,並將該數量的該第一類型資料拼接起來,形成一第一拼接資料,該第一拼接資料被轉換為該中間結果。
- 如請求項41之方法,其中,通過如下方式來確定所接收的該第一類型資料的一數量:以預設的一第一固定數值;或者以所述方法採用的轉換器的處理位數除以該第一類型資料和該第二類型資料中位數高者的位數。
- 如請求項32至36及40任一項之方法,其中,接收該第一類型資料以及關於該第一類型資料和該第二類型資料的該描述資訊包括: 確定所接收的該第一類型資料要拆分的一數量,並將該第一類型資料拆分為該數量的一拆分資料,該拆分資料被轉換為該中間結果。
- 如請求項43之方法,通過如下方式來確定所接收的該第一類型資料要拆分的該數量:以預設的一第二固定數值;或者以該第一類型資料和該第二類型資料中位數高者的位數除以所述方法採用的轉換器的處理位數。
- 如請求項33至36及40任一項之方法,其中,該過渡指數位(Tshift)等同於該第一指數位和該第二指數位之間的差值。
- 如請求項33至36及40任一項之方法,其中,該過渡指數位(Tshift)等同於該差分指數位。
- 如請求項45之方法,其中,該描述資訊還包括一捨入類型,該捨入類型包括下列中的至少一種:TO_ZERO,OFF_ZERO,UP,DOWN,ROUNDING_OFF_ZERO,ROUNDING_TO_EVEN,隨機捨入。
- 如請求項35或36之方法,其中,將該中間結果轉換為該第二類型資料包括:根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來生成該第二類型資料。
- 如請求項48之方法,其中,將該中間結果轉換為該第二類型資料包括: 根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算一前置輸出資料位(Pdata)和一前置輸出符號位(Psign);以及根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成第二類型資料。
- 如請求項49之方法,其中,根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數(EXP)和該中間捨入(STK)來計算該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)包括:將該中間資料位(ABS)移動該中間指數位(EXP),得到一移位結果;根據該移位結果和該中間捨入位(STK)來生成一臨時資料位(ABS’);該前置輸出符號位(Psign)與該中間符號位等同。
- 如請求項50之方法,根據該中間資料位(ABS)、該中間符號位(Sign)、該中間指數位(EXP)和該中間捨入位(STK)來計算該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)進一步包括:檢測該臨時資料位(ABS’)是否大於一飽和值,如果大於,則對該臨時資料位(ABS’)進行飽和處理,從而得到該前置輸出資料位(Pdata);如果不大於,則將該臨時資料位(ABS’)輸出為該前置輸出資料位(Pdata)。
- 如請求項49之方法,其中,根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料包括:接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成一輸出資料位表示(Data_out); 根據該資料輸出位表示(Data_out)和該前置輸出符號位(Psign)來得到該第二類型資料。
- 如請求項52之方法,其中,根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)來生成該第二類型資料進一步包括:根據該前置輸出資料位(Pdata)和該前置輸出符號位(Psign)生成一浮點數小數點位表示(SHIFT_FP);根據該資料輸出位表示(Data_out),該浮點數小數點位數表示(SHIFT_FP)和該前置輸出符號位(Psign)來得到該第二類型資料。
- 如請求項52之方法,其中,接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成該輸出資料位表示(Data_out)包括:接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),如果該前置輸出符號位(Psign)為負數,則對該前置輸出資料位(Pdata)求補數;如果該前置輸出符號位(Psign)為正數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out)。
- 如請求項54之方法,其中,接收該前置輸出資料位(Pdata)和該前置輸出符號位(Psign),以生成該輸出資料位表示(Data_out)進一步包括:接收該前置輸出資料位(Pdata),判斷該前置輸出資料位(Pdata)的資料類型是第一型還是第二型,如果該前置輸出資料位(Pdata)的資料類型是第一型,則 如果該前置輸出符號位(Psign)為負數,則對該前置輸出資料位(Pdata)求補數;如果該前置輸出符號位(Psign)為非負數,則將該前置輸出資料位輸出為該資料輸出位表示(Data_out);如果該前置輸出資料位(Pdata)的資料類型是第二型,則將該前置輸出資料位(Pdata)進行規格化,並輸出為該資料輸出位表示(Data_out);該浮點數小數點位置確定器配置為根據該第二規格化器的輸出來確定該浮點數小數點位數表示(SHIFT_FP)。
- 如請求項32至36及40任一項之方法,進一步包括接收一約束資訊,該約束資訊用於指示是否支援特定標準,和/或是否支援編譯優化。
- 如請求項32至36及40任一項之方法,其中,該第一類型資料和該第二類型資料的資料類型是可擴展的。
- 一種電子設備,包括:一個或多個處理器;以及一記憶體,該記憶體中存儲有一電腦可執行指令,當該電腦可執行指令由該一個或多個處理器運行時,使得該電子設備執行如請求項32至57任一項之方法。
- 一種電腦可讀存儲介質,包括一電腦可執行指令,當該電腦可執行指令由一個或多個處理器運行時,執行如請求項32至57任一項之方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025769.8A CN112711441A (zh) | 2019-10-25 | 2019-10-25 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
CN201911025769.8 | 2019-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202117534A TW202117534A (zh) | 2021-05-01 |
TWI774093B true TWI774093B (zh) | 2022-08-11 |
Family
ID=75540949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109136569A TWI774093B (zh) | 2019-10-25 | 2020-10-21 | 用於轉換資料類型的轉換器、晶片、電子設備及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230185526A1 (zh) |
CN (1) | CN112711441A (zh) |
TW (1) | TWI774093B (zh) |
WO (1) | WO2021078211A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11269632B1 (en) * | 2021-06-17 | 2022-03-08 | International Business Machines Corporation | Data conversion to/from selected data type with implied rounding mode |
CN113961506B (zh) * | 2021-10-19 | 2023-08-29 | 海飞科(南京)信息技术有限公司 | 加速器和电子装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930355A (zh) * | 2010-08-24 | 2010-12-29 | 中国航天科技集团公司第九研究院第七七一研究所 | 实现寄存器文件分组编址、读写控制方法的寄存器电路 |
CN102122240A (zh) * | 2011-01-20 | 2011-07-13 | 东莞市泰斗微电子科技有限公司 | 一种数据类型转换电路 |
CN108055041A (zh) * | 2017-12-22 | 2018-05-18 | 苏州中晟宏芯信息科技有限公司 | 一种数据类型转换电路单元及装置 |
US20190196826A1 (en) * | 2017-12-21 | 2019-06-27 | Intel Corporation | Apparatus and method for adding packed data elements with rotation and halving |
US20190235838A1 (en) * | 2016-10-20 | 2019-08-01 | Advanced Micro Devices, Inc. | Dynamic variable precision computation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5762451B2 (ja) * | 2013-01-31 | 2015-08-12 | 京セラドキュメントソリューションズ株式会社 | データ変換プログラム |
US9461667B2 (en) * | 2013-12-30 | 2016-10-04 | Samsung Electronics Co., Ltd. | Rounding injection scheme for floating-point to integer conversion |
CN109992459B (zh) * | 2019-03-29 | 2023-03-28 | 合芯科技(苏州)有限公司 | 数据转换方法、装置、设备及存储介质 |
-
2019
- 2019-10-25 CN CN201911025769.8A patent/CN112711441A/zh active Pending
-
2020
- 2020-10-21 TW TW109136569A patent/TWI774093B/zh active
- 2020-10-22 US US17/619,816 patent/US20230185526A1/en active Pending
- 2020-10-22 WO PCT/CN2020/122950 patent/WO2021078211A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930355A (zh) * | 2010-08-24 | 2010-12-29 | 中国航天科技集团公司第九研究院第七七一研究所 | 实现寄存器文件分组编址、读写控制方法的寄存器电路 |
CN102122240A (zh) * | 2011-01-20 | 2011-07-13 | 东莞市泰斗微电子科技有限公司 | 一种数据类型转换电路 |
US20190235838A1 (en) * | 2016-10-20 | 2019-08-01 | Advanced Micro Devices, Inc. | Dynamic variable precision computation |
US20190196826A1 (en) * | 2017-12-21 | 2019-06-27 | Intel Corporation | Apparatus and method for adding packed data elements with rotation and halving |
CN108055041A (zh) * | 2017-12-22 | 2018-05-18 | 苏州中晟宏芯信息科技有限公司 | 一种数据类型转换电路单元及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW202117534A (zh) | 2021-05-01 |
US20230185526A1 (en) | 2023-06-15 |
CN112711441A (zh) | 2021-04-27 |
WO2021078211A1 (zh) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021147395A1 (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
WO2021078212A1 (zh) | 用于向量内积的计算装置、方法和集成电路芯片 | |
CN110515589B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
TWI763079B (zh) | 用於浮點運算的乘法器、方法、積體電路晶片和計算裝置 | |
CN111008003B (zh) | 数据处理器、方法、芯片及电子设备 | |
TWI774093B (zh) | 用於轉換資料類型的轉換器、晶片、電子設備及其方法 | |
TW202143025A (zh) | 用於元素近似的計算單元 | |
WO2021078210A1 (zh) | 用于神经网络运算的计算装置、方法、集成电路和设备 | |
TW202109281A (zh) | 帶正負號多字乘法器 | |
CN111381808B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
WO2021185262A1 (zh) | 计算装置、方法、板卡和计算机可读存储介质 | |
WO2021078209A1 (zh) | 用于转换数据类型的转换器、芯片、电子设备及其方法 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258633B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN101510149A (zh) | 一种数据处理方法和装置 | |
CN209895329U (zh) | 乘法器 | |
CN110647307B (zh) | 数据处理器、方法、芯片及电子设备 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
WO2021073511A1 (zh) | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 | |
WO2021073512A1 (zh) | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 | |
WO2022268188A1 (zh) | 一种在多核或单核处理器中对数据进行排序的方法 | |
CN111258542A (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
WO2023231363A1 (zh) | 乘累加操作数的方法及其设备 | |
CN113033799B (zh) | 数据处理器、方法、装置及芯片 |