TWI756765B - 位元組填充電路以及位元組填充方法 - Google Patents
位元組填充電路以及位元組填充方法 Download PDFInfo
- Publication number
- TWI756765B TWI756765B TW109125983A TW109125983A TWI756765B TW I756765 B TWI756765 B TW I756765B TW 109125983 A TW109125983 A TW 109125983A TW 109125983 A TW109125983 A TW 109125983A TW I756765 B TWI756765 B TW I756765B
- Authority
- TW
- Taiwan
- Prior art keywords
- byte
- data stream
- residual
- gate
- xth
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 2
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/07—Synchronising arrangements using pulse stuffing for systems with different or fluctuating information rates or bit rates
- H04J3/076—Bit and byte stuffing, e.g. SDH/PDH desynchronisers, bit-leaking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/07—Synchronising arrangements using pulse stuffing for systems with different or fluctuating information rates or bit rates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W74/00—Wireless channel access
- H04W74/002—Transmission of channel access control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
提出一種位元組填充電路以及位元組填充方法。位元組填充方法包含:接收第一資料流並且根據第一資料流產生第二資料流,其中第一資料流的第一尺寸是N個位元組,並且第二資料流的第二尺寸是2N個位元組;響應於第二資料流的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫第X位元組,並且將第二填充位元組插入至第二資料流的第(X+1)位元組,其中X為介於1至2N-1之間的正整數;組合殘餘資料流以及第二資料流的第一部分以產生第三資料流,並且將第二資料流的第二部分配置為殘餘資料流;以及輸出第三資料流。
Description
本發明是有關於一種位元組填充電路以及位元組填充方法。
高階資料鏈路控制(high-level data link control,HDLC)協定為一種廣域網路(wide area network,WAN)應用的乙太網資料格式。圖1是一種HDLC資料流的示意圖。HDLC資料流可包含數個HDLC框架(frame),且兩個HDLC框架之間可以旗標位元組隔開。一般來說,HDLC資料流是以十六進位數值「7E」來作為旗標位元組。為了使HDLC資料流的接收端能正確地辨識HDLC框架中的有效負載(payload)以及旗標之間的差異,HDLC框架中的十六進位數值「7E」需要被替換成其他的十六進位數值。
圖2是使用位元組填充以將資料流轉換成HDLC資料流的示意圖。包含十六進位數值「7E」的旗標位元組會被新增至資料流的兩端,而資料流中的十六進位數值「7E」會被替換成十六進位數值「7D5E」,並且資料流中的十六進位數值「7D」會被替換成十六進位數值「7D5D」。因此,經過位元組填充後,HDLC資料流的有效負載的尺寸會大於原本的資料流的尺寸。
另一方面,隨著乙太網的載波頻率增加,許多常見的可程式邏輯陣列(field programmable gate array,FPGA)或超大型積體電路(very large scale integrated,VLSI)技術已經漸漸地無法支援乙太網的載波頻率。舉例來說,常見的FPGA或VLSI技術可能無法支援超過500百萬赫(MHz)的操作頻率,但現行的乙太網的載波頻率可能高達10吉赫(GHz)。為了減少操作頻率,乙太網的串列資料可被改為並列資料。舉例來說,將10GHz的64位元串列資料轉換成64位元並列資料,可將操作頻率從10GHz減少到156.25MHz。
然而,若對並列資料進行位元組填充以將並列資料轉換成HDLC資料,則所述HDLC資料的尺寸可能增大,從而超過並列資料的資料匯流排所支援的尺寸。
本發明提供一種位元組填充電路以及位元組填充方法,適用於對並列資料進行位元組填充。
本發明的一種位元組填充電路,包含輸入閘、邏輯電路、殘餘暫存器、殘餘閘以及輸出閘。輸入閘接收第一資料流並且根據第一資料流產生第二資料流,其中第一資料流的第一尺寸是N個位元組,並且第二資料流的第二尺寸是2N個位元組,其中N為正整數。邏輯電路耦接輸入閘,並且包含第X階邏輯閘。第X階邏輯閘響應於第二資料流的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫第X位元組,並且將第二填充位元組插入至第二資料流的第(X+1)位元組,其中X為介於1至2N-1之間的正整數。殘餘暫存器儲存殘餘資料流。殘餘閘耦接邏輯電路以及殘餘暫存器,其中殘餘閘組合殘餘資料流以及第二資料流的第一部分以產生第三資料流,並且將第二資料流的第二部分配置為殘餘資料流。輸出閘耦接殘餘閘,並且輸出第三資料流。
在本發明的一實施例中,上述的第X階邏輯閘響應於第X位元組與第二旗標位元組匹配而將第三填充位元組插入至第(X+1)位元組。
在本發明的一實施例中,上述的第三資料流的第三尺寸是N個位元組,其中殘餘閘根據殘餘資料流的第四尺寸以及第三尺寸以決定第二資料流的第一部分。
在本發明的一實施例中,上述的位元組填充電路更包含殘餘計數器以及控制器。殘餘計數器儲存對應於殘餘資料流的第四尺寸的殘餘計數值。控制器耦接至輸入閘、第X階邏輯閘以及殘餘閘,其中控制器響應於第殘餘計數值大於或等於N而停止輸入閘以及第X階邏輯閘的運作,直到經更新的殘餘計數值小於N。
在本發明的一實施例中,上述的第X階邏輯閘響應於第X位元組與第一旗標位元組以及第二旗標位元組的其中之一匹配而將計數值加一,其中殘餘閘根據計數值以及殘餘計數值產生經更新的殘餘計數值。
在本發明的一實施例中,上述的第一旗標位元組是十六進位數值「7E」,第一填充位元組是十六進位數值「7D」,並且第二填充位元組是十六進位數值「5E」,其中第二旗標位元組是十六進位數值「7D」,並且第三填充位元組是十六進位數值「5D」。
在本發明的一實施例中,上述的第三資料流為並列資料。
在本發明的一實施例中,上述的輸入閘對第一資料流進行填零以產生第二資料流。
在本發明的一實施例中,上述的第X階邏輯閘平移第二資料流中的第(X+1)位元組至第(2N)位元組以將第二填充位元組插入至第(X+1)位元組。
本發明的一種位元組填充方法,包含:接收第一資料流並且根據第一資料流產生第二資料流,其中第一資料流的第一尺寸是N個位元組,並且第二資料流的第二尺寸是2N個位元組,其中N為正整數;響應於第二資料流的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫第X位元組,並且將第二填充位元組插入至第二資料流的第(X+1)位元組,其中X為介於1至2N-1之間的正整數;組合殘餘資料流以及第二資料流的第一部分以產生第三資料流,並且將第二資料流的第二部分配置為殘餘資料流;以及輸出第三資料流。
基於上述,本發明可對並列資料進行位元組填充,並且經過位元組填充後的並列資料的位元寬度(bit width)將不會變大。
圖3根據本發明的實施例繪示一種位元組填充電路100的示意圖。位元組填充電路100可包含控制器110、輸入暫存器120、輸入閘130、計數器141、暫存器142、邏輯電路300、殘餘閘(remnant gate)170、殘餘計數器181、殘餘暫存器182、輸出閘190以及輸出暫存器200。位元組填充電路100可接收資料流S1,對資料流S1進行位元組填充以產生資料流S3,並且輸出資料流S3,其中資料流S1可為串列資料(serial data)或並列資料(parallel data),並且資料流S3可為並列資料。位元組填充電路1005中的各個暫存器可以是先入先出(first in first out,FIFO)暫存器。
控制器110可耦接並且控制輸入暫存器120、輸入閘130、計數器141、暫存器142、邏輯電路300、殘餘閘170、殘餘計數器181、殘餘暫存器182、輸出閘190以及輸出暫存器200。詳細來說,控制器110例如是中央處理單元(central processing unit,CPU),或是其他可程式化之一般用途或特殊用途的微控制單元(micro control unit,MCU)、微處理器(microprocessor)、數位信號處理器(digital signal processor,DSP)、可程式化控制器、特殊應用積體電路(application specific integrated circuit,ASIC)、圖形處理器(graphics processing unit,GPU)、影像訊號處理器(image signal processor,ISP)、影像處理單元(image processing unit,IPU)、算數邏輯單元(arithmetic logic unit,ALU)、複雜可程式邏輯裝置(complex programmable logic device,CPLD)、FPGA或其他類似元件或上述元件的組合。
輸入暫存器120可用以接收並儲存資料流S1,其中資料流S1可以是串列資料,並且資料流S1的尺寸可以是N個位元組。在本實施例中,N可為8,但本發明不限於此。舉例來說,N可以是任意的正整數。
輸入閘130可耦接輸入暫存器120,自輸入暫存器120接收資料流S1,並且根據資料流S1產生資料流S2,其中資料流S2的尺寸可以是2N個位元組。在本實施例中,2N可為16,但本發明不限於此。輸入閘130可對資料流S1進行填零(zero filling)以產生資料流S2。具體來說,資料流S1可包含第一位元組至第N位元組等N個位元組,其中所述第一位元組例如是資料流S1的最高有效位元組(most significant bit,MSB)或最低有效位元組(least significant bit,LSB)的其中之一,並且第N位元組例如是資料流S1的MSB或LSB的其中之另一。輸入閘130可在資料流S1的第N位元組後新增N個位元組以產生資料流S2,其中每一個新增的位元組的值可為零。換句話說,資料流S2的第一位元組至第N位元組可用以儲存資料流S1,並且資料流S2的第(N+1)位元組至第(2N)位元組可用以儲存數值「零」。
輸入閘130可耦接暫存器142,並將資料流S2輸入至暫存器142以儲存,其中暫存器142的尺寸可以是2N個位元組。計數器141中的計數值C0可以是零。計數器141以及暫存器142可耦接至邏輯電路300。
邏輯電路300可包含(2N-1)個階層,且每個階層可包含分別與控制器110耦接的邏輯閘、計數器以及暫存器,其中暫存器的尺寸可以是2N個位元組。舉例來說,邏輯電路300的第一階層可包含第一階邏輯閘150-1、第一階計數器161-1以及第一階暫存器162-1,其中第一階暫存器162-1的尺寸可以是2N個位元組。類似地,邏輯電路300的第X階層(X為介於1與(2N-1)之間的正整數)可包含第X階邏輯閘150-X、第X階計數器161-X以及第X階暫存器162-X,其中第X階暫存器162-X的尺寸可以是2N個位元組。邏輯電路300的第(2N-1)階層可包含第(2N-1)階邏輯閘150-(2N-1)、第(2N-1)階計數器161-(2N-1)以及第(2N-1)階暫存器162-(2N-1),其中第(2N-1)階暫存器162-(2N-1)的尺寸可以是2N個位元組。
第一階邏輯閘150-1可耦接至計數器141以及暫存器142,並可耦接至第一階計數器161-1以及第一階暫存器162-1。第一階邏輯閘150-1可自計數器141接收計數值C0,並可自暫存器142接收資料流S2。第一階邏輯閘150-1可用以判斷資料流S2的第一位元組(例如:資料流S2的MSB或LSB的其中之一)是否與第一旗標位元組或第二旗標位元組匹配,從而決定是否對資料流S2的第一位元組進行位元組填充。若資料流S2的第一位元組與第一旗標位元組或第二旗標位元組的其中之一匹配,則第一階邏輯閘150-1可對資料流S2的第一位元組進行位元組填充,並可將計數值C0加一。若資料流S2的第一位元組與第一旗標位元組或第二旗標位元組不匹配,則第一階邏輯閘150-1可不對資料流S2的第一位元組進行位元組填充,並可不將計數值C0加一。
圖4根據本發明的實施例繪示對資料流S2的第一位元組進行位元組填充的示意圖。第一階邏輯閘150-1可響應於資料流S2的第一位元組與第一旗標位元組匹配而用第一填充位元組複寫資料流S2的第一位元組,將第二填充位元組插入至資料流S2的第二位元組,並且將計數值C0加一。第一階邏輯閘150-1可平移第二位元組至第(2N)位元組以將第二填充位元組插入至資料流S2的第二位元組。
在一實施例中,第一旗標位元組可為十六進位數值「7E」,第一填充位元組可為十六進位數值「7D」,並且第二填充位元組可為十六進位數值「5E」。據此,若第一階邏輯閘150-1判斷暫存器142中的資料流S2的第一位元組為十六進位數值「7E」,則第一階邏輯閘150-1可對所述第一位元組進行位元組填充。詳細來說,第一階邏輯閘150-1可用十六進位數值「7D」複寫資料流S2的第一位元組,並平移資料流S2的第二位元組至第(2N)位元組。在經過平移後,原先位於資料流S2的第i位元組的資料會被移動到資料流S2的第(i+1)位元組,其中i為介於2至(2N-1)的正整數。舉例來說,原先位於資料流S2的第二位元組的資料會被移動到資料流S2的第三位元組,原先位於資料流S2的第(2N-1)位元組的資料會被移動到資料流S2的第(2N)位元組,並且原先位於資料流S2的第(2N)位元組的資料會被刪除。在完成平移後,第一階邏輯閘150-1可將十六進位數值「5E」寫入至資料流S2的第二位元組,以完成對第二位元組的位元組填充。在完成對資料流S2的第一位元組的位元組填充後,第一階邏輯閘150-1可將資料流S2輸入至第一階暫存器162-1以儲存,其中第一階暫存器162-1的尺寸可為2N個位元組。另一方面,若第一階邏輯閘150-1判斷資料流S2的第一位元組為十六進位數值「7E」,則第一階邏輯閘150-1可將計數值C0加一以產生計數值C1,並將計數值C1輸入至第一階計數器161-1以儲存。
另一方面,第一階邏輯閘150-1可響應於資料流S2的第一位元組與第二旗標位元組匹配而將第三填充位元組插入至資料流S2的第二位元組。第一階邏輯閘150-1可平移第二位元組至第(2N)位元組以將第三填充位元組插入至資料流S2的第二位元組。
在一實施例中,第二旗標位元組可為十六進位數值「7D」,第三填充位元組可為十六進位數值「5D」。據此,若第一階邏輯閘150-1判斷資料流S2的第一位元組為十六進位數值「7D」,則第一階邏輯閘150-1可對所述第一位元組進行位元組填充。詳細來說,第一階邏輯閘150-1可平移資料流S2的第二位元組至第(2N)位元組。在經過平移後,原先位於資料流S2的第i位元組的資料會被移動到資料流S2的第(i+1)位元組,其中i為介於2至(2N-1)的正整數。在完成平移後,第一階邏輯閘150-1可將十六進位數值「5D」寫入至資料流S2的第二位元組,以完成對第二位元組的位元組填充。在完成對資料流S2的第一位元組的位元組填充後,第一階邏輯閘150-1可將資料流S2輸入至第一階暫存器162-1以儲存。另一方面,若第一階邏輯閘150-1判斷資料流S2的第一位元組為十六進位數值「7D」,則第一階邏輯閘150-1可將計數值C0加一以產生計數值C1,並將計數值C1輸入至第一階計數器161-1以儲存。
回到圖3,控制器110可將第一階計數器161-1中的計數值C1以及第一階暫存器162-1中的資料流S2輸入至邏輯電路300的第二階層,以由第二階層決定是否對資料流S2的第二位元組進行位元組填充。以此類推,邏輯電路300的第X階層的第X階邏輯閘150-X可自邏輯電路300的第(X-1)階層接收計數值C(X-1)以及資料流S2,並可決定是否對資料流S2的第X位元組進行位元組填充。若資料流S2的第X位元組與第一旗標位元組或第二旗標位元組的其中之一匹配,則第X階邏輯閘150-X可對資料流S2的第X位元組進行位元組填充,並可將計數值C(X-1)加一。若資料流S2的第X位元組與第一旗標位元組或第二旗標位元組不匹配,則第X階邏輯閘150-X可不對資料流S2的第X位元組進行位元組填充,並可不將計數值C(X-1)加一。
圖5根據本發明的實施例繪示對資料流S2的第X位元組進行位元組填充的示意圖。邏輯電路300的第(X-1)階層可包含第(X-1)階邏輯閘150-(X-1)、第(X-1)階計數器161-(X-1)以及第(X-1)階暫存器162-(X-1)。第X階邏輯閘150-X可耦接至第(X-1)階計數器161-(X-1)以及第(X-1)階暫存器162-(X-1),並可耦接至第X階計數器161-X以及第X階暫存器162-X。第X階邏輯閘150-X可自第(X-1)階暫存器162-(X-1)取得資料流S2的第一位元組至第(X-1)位元組,並且將資料流S2的第一位元組至第(X-1)位元組輸入至第X階暫存器162-X以儲存。此外,第X階邏輯閘150-X可響應於資料流S2的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫資料流S2的第X位元組,將第二填充位元組插入至資料流S2的第(X+1)位元組,並且將計數值C(X-1)加一。第X階邏輯閘150-X可平移第X位元組至第(2N)位元組以將第二填充位元組插入至資料流S2的第X位元組。
在一實施例中,第一旗標位元組可為十六進位數值「7E」,第一填充位元組可為十六進位數值「7D」,並且第二填充位元組可為十六進位數值「5E」。據此,若第X階邏輯閘150-X判斷第(X-1)階暫存器162-(X-1)中的資料流S2的第X位元組為十六進位數值「7E」,則第X階邏輯閘150-X可對第X位元組進行位元組填充。
詳細來說,第X階邏輯閘150-X可用十六進位數值「7D」複寫資料流S2的第X位元組,並平移資料流S2的第(X+1)位元組至第(2N)位元組。在經過平移後,原先位於資料流S2的第i位元組的資料會被移動到資料流S2的第(i+1)位元組,其中i為介於X+1至(2N-1)的正整數。舉例來說,原先位於資料流S2的第(X+1)位元組的資料會被移動到資料流S2的第(X+2)位元組,並且原先位於資料流S2的第(2N)位元組的資料會被刪除。在完成平移後,第X階邏輯閘150-X可將十六進位數值「5E」寫入至資料流S2的第(X+1)位元組,以完成對第X位元組的位元組填充。在完成對資料流S2的第X位元組的位元組填充後,第X階邏輯閘150-X可將資料流S2的第X位元組至第2N位元組輸入至第X階暫存器162-X以儲存,其中第X階暫存器162-X的尺寸可為2N個位元組。另一方面,若第X階邏輯閘150-X判斷資料流S2的第X位元組為十六進位數值「7E」,則第一階邏輯閘150-1可將計數值C(X-1)加一以產生計數值CX,並將計數值CX輸入至第X階計數器161-X以儲存。
另一方面,第X階邏輯閘150-X可響應於資料流S2的第X位元組與第二旗標位元組匹配而將第三填充位元組插入至資料流S2的第(X+1)位元組。第X階邏輯閘150-X可平移第(X+1)位元組至第(2N)位元組以將第三填充位元組插入至資料流S2的第(X+1)二位元組。
在一實施例中,第二旗標位元組可為十六進位數值「7D」,第三填充位元組可為十六進位數值「5D」。據此,若第X階邏輯閘150-X判斷資料流S2的第X位元組為十六進位數值「7D」,則第X階邏輯閘150-X可對所述第X位元組進行位元組填充。詳細來說,第X階邏輯閘150-X可平移資料流S2的第(X+1)位元組至第(2N)位元組。在經過平移後,原先位於資料流S2的第i位元組的資料會被移動到資料流S2的第(i+1)位元組,其中i為介於X+1至(2N-1)的正整數。舉例來說,原先位於資料流S2的第(X+1)位元組的資料會被移動到資料流S2的第(X+2)位元組,並且原先位於資料流S2的第(2N)位元組的資料會被刪除。在完成平移後,第X階邏輯閘150-X可將十六進位數值「5D」寫入至資料流S2的第(X+1)位元組,以完成對第X位元組的位元組填充。在完成對資料流S2的第X位元組的位元組填充後,第X階邏輯閘150-X可將資料流S2的第X位元組至第2N位元組輸入至第X階暫存器162-X以儲存。另一方面,若第X階邏輯閘150-X判斷資料流S2的第X位元組為十六進位數值「7D」,則第X階邏輯閘150-X可將計數值C(X-1)加一以產生計數值CX,並將計數值CX輸入至第X階計數器161-X以儲存。
回到圖3,與上述的邏輯電路300的第一階層或第X階層相似,邏輯電路300的最後階層,即第(2N-1)階層,可決定是否對資料流S2的第(2N-1)位元組進行位元組填充。第(2N-1)階邏輯閘151-(2N-1)可耦接至第(2N-1)階計數器161-(2N-1)以及第(2N-1)階暫存器162-(2N-1)。在執行完與第一階邏輯閘151-1或第X階邏輯閘151-X相似的步驟後,第(2N-1)階邏輯閘151-(2N-1)可將計數值C(2N-1)輸入至第(2N-1)階計數器161-(2N-1)以儲存,並可將資料流S2輸入至第(2N-1)階暫存器162-(2N-1)以儲存,其中第(2N-1)階暫存器162-(2N-1)的尺寸可為2N個位元組。
殘餘閘170可耦接至第(2N-1)階計數器161-(2N-1)以及第(2N-1)階暫存器162-(2N-1),並可耦接至殘餘計數器181以及殘餘暫存器182。殘餘計數器181以及殘餘暫存器182可耦接至輸出閘190。輸出閘190可耦接至輸出暫存器200。殘餘暫存器182的尺寸可為2N個位元組,並可用以儲存殘餘資料流。殘餘計數器181可儲存殘餘計數值R,其中殘餘計數值R對應於殘餘資料流的尺寸。舉例來說,若殘餘資料流的尺寸為K個位元組,則殘餘計數值R可等於K,其中K為介於0至2N之間的正整數。
殘餘閘170可根據殘餘計數器181中的殘餘計數值R判斷殘餘暫存器182中的殘餘資料流的尺寸。若殘餘資料流的尺寸(或殘餘計數器181中的殘餘計數值R)小於資料流S3的尺寸(例如:N個位元組),則殘餘閘170可將殘餘暫存器182中的殘餘資料流與第(2N-1)階暫存器161-(2N-1)中的資料流S2的第一部分進行組合以產生資料流S3。殘餘閘170可根據資料流S3的尺寸和殘餘計數值R決定資料流S2的第一部份的尺寸。資料流S2的第一部分的尺寸可為資料流S3的尺寸減去殘餘計數值R。在產生資料流S3後,殘餘閘170可將資料流S3輸出至輸出閘190,並且輸出閘190可使用輸出暫存器200來儲存及輸出資料流S3。而後,殘餘閘170可將資料流S2的第二部分(即:除了第一部分外的剩餘部分)配置為新的殘餘資料流,並可根據第(2N-1)階計數器161-(2N-1)中的計數值C(2N-1)以及殘餘計數值R來更新殘餘計數值R,其中經更新的殘餘計數值R等於計數值C(2N-1)與原先的殘餘計數值R的總和(即:經更新的R=R+C(2N-1))。新的殘餘資料流可由殘餘暫存器182儲存。
圖6根據本發明的實施例繪示殘餘閘170與輸出閘190在時脈週期T1和T2時的運作的示意圖。在本實施例中,假設邏輯電路300共對資料流S2執行了三次的位元組填充,而使得資料流S2所包含的資料從資料流S1的N個位元組擴增為(N+3)個位元組,並使得計數值C(2N-1)等於3,其中N等於8。此外,假設殘餘暫存器182包含的殘餘資料流的尺寸為6個位元組,並且殘餘計數器181中的殘餘計數值R等於6。
在時脈週期T1期間,殘餘閘170可響應於殘餘計數值R(R=6)小於N(N=8)而組合資料流S2的第一部分以及殘餘資料流,藉以產生資料流S3。殘餘閘170可基於資料流S3的尺寸(即:N=8)以及殘餘計數值R(即:R=6)的差值為2(即:8-6=2)而決定資料流S2的第一部份的尺寸等於2個位元組。殘餘閘170可將殘餘暫存器182中的殘餘資料流與第(2N-1)階暫存器162-(2N-1)中的資料流S2的2個位元組(例如:第一位元組以及第二位元組)進行組合以產生資料流S3。在資料流S3被輸出至輸出暫存器200後,殘餘暫存器182可被清空。殘餘閘170可將資料流S2的第二部分(即:剩餘的9個位元組)配置為新的殘餘資料流,並使用殘餘暫存器182來儲存新的殘餘資料流。殘餘閘170可根據原先的殘餘計數值R(即:R=6)與計數值C(2N-1)(即:C(2N-1)=3)的總和而將殘餘計數器181中的殘餘計數值R更新為9(即:6+3=9)。
另一方面,若殘餘資料流的尺寸(或殘餘計數器181中的殘餘計數值R)大於或等於資料流S3的尺寸(例如:N個位元組),則殘餘閘170可通知控制器110停止輸入閘130以及邏輯電路300的運作,直到經更新的殘餘計數值R小於N。殘餘閘170可將殘餘資料流S2中的N個位元組配置為資料流S3。在產生資料流S3後,殘餘閘170可將資料流S3輸出至輸出閘190,並且輸出閘190可使用輸出暫存器200來儲存及輸出資料流S3。而後,殘餘閘170可根據資料流S3的尺寸以及殘餘計數值R來更新殘餘計數值R,其中經更新的殘餘計數值R等於原先的殘餘計數值R與N的差值(即:經更新的R=R-N)。
圖7根據本發明的實施例繪示殘餘閘170與輸出閘190在時脈週期T2和T3時的運作的示意圖。在本實施例中,假設N等於8,並且假設殘餘暫存器182包含的殘餘資料流的尺寸為9個位元組,並且殘餘計數器181中的殘餘計數值R等於9。
在時脈週期T2期間,殘餘閘170可響應於殘餘計數值R(即:R=9)大於或等於N(即:N=8)而通知控制器110停止輸入閘130以及邏輯電路300的運作。在輸入閘130以及邏輯電路300停止運作的期間,將不會有新的資料流被輸入至殘餘暫存器182中。殘餘閘170可將殘餘資料流S2中的8個位元組的資料流配置為資料流S3。在產生資料流S3後,殘餘閘170可將資料流S3輸出至輸出閘190,並且輸出閘190可使用輸出暫存器200來儲存及輸出資料流S3。而後,殘餘閘170可根據原先的殘餘計數值R(即:R=9)與資料流S3的尺寸(即:N=8)的差值而將殘餘計數器181中的殘餘計數值R更新為1(即:9-8=1)。
接著,在時脈週期T3期間,殘餘閘170可判斷經更新的殘餘計數值R(即:R=1)小於N(即:N=8)。據此,殘餘閘170可通知控制器110恢復輸入閘130以及邏輯電路300的運作。
圖8根據本發明的實施例繪示一種位元組填充方法的流程圖,其中所述位元組填充方法可由如圖3所示的位元組填充電路100實施。在步驟S801中,接收第一資料流,其中第一資料流的尺寸為N個位元組。N可為正整數。在步驟S802中,對第一資料流進行填零以產生第二資料流,其中第二資料流的尺寸為2N個位元組。在步驟S803中,檢查第二資料流的位元組[i](即:第二資料流的第i個位元組),其中i的初始值為1,並且i為介於1至(2N-1)之間的正整數。在步驟S804中,判斷第二資料流的位元組[i]是否與十六進位值「7E」匹配。若為是,則進入步驟S805。若為否,則進入步驟S808。在步驟S805中,用十六進位值「7D」複寫位元組[i]。在步驟S806中,將十六進位值「5E」插入至位元組[i+1]。在步驟S807中,使i等於(i+1)。在步驟S808中,判斷第二資料流的位元組[i]是否與十六進位值「7D」匹配。若為是,則進入步驟S809。若為否,則進入步驟S810。在步驟S809中,將十六進位值「5D」插入至位元組[i+1]。在步驟S810中,判斷i是否等於(2N-1)。若為是,則進入步驟S811。若為否,則進入步驟S807。在步驟S811中,組合殘餘資料流與第二資料流的第一部分以產生第三資料流,將第二資料流的第二部分配置為殘餘資料流,並且輸出第三資料流。
綜上所述,本發明的邏輯電路可對資料流進行位元組填充並以增大尺寸的暫存器來儲存經位元組填充的資料流。若殘餘暫存器中的殘餘資料流的尺寸小於預設值,則殘餘閘可將經位元組填充的資料流的一部分與殘餘暫存器中殘餘資料流組合以產生輸出資料流。若殘餘暫存器中的殘餘資料流的尺寸大於或等於預設值,則控制器可停止邏輯電路以及殘餘閘的運作,以便控制器清空殘餘暫存器中的部分資料。在殘餘暫存器中的部分資料被清空後,控制器可恢復邏輯電路以及殘餘閘的運作。邏輯電路可繼續地為資料流進行位元組填充,並且殘餘閘可繼續地將經過位元組填充的資料流的一部分與殘餘暫存器中殘餘資料流組合以產生輸出資料流。因此,本發明可對並列資料進行位元組填充,且經位元組填充的並列資料可正確地被輸出。
100:位元組填充電路
110:控制器
120:輸入暫存器
130:輸入閘
141:計數器
142:暫存器
150-1:第一階邏輯閘
150-X:第X階邏輯閘
150-(2N-1):第(2N-1)階邏輯閘
161-1:第一階計數器
161-(X-1):第(X-1)階計數器
161-X:第X階計數器
161-(2N-1):第(2N-1)階計數器
162-1:第一階暫存器
162-(X-1):第(X-1)階暫存器
162-X:第X階暫存器
162-(2N-1):第(2N-1)階暫存器
170:殘餘閘
181:殘餘計數器
182:殘餘暫存器
190:輸出閘
200:輸出暫存器
300:邏輯電路
S1、S2、S3:資料流
S801、S802、S803、S804、S805、S806、S807、S808、S809、S810、S811:步驟
T1、T2、T3:時脈週期
圖1是一種HDLC資料流的示意圖。
圖2是使用位元組填充以將資料流轉換成HDLC資料流的示意圖。
圖3根據本發明的實施例繪示一種位元組填充電路的示意圖。
圖4根據本發明的實施例繪示對資料流的第一位元組進行位元組填充的示意圖。
圖5根據本發明的實施例繪示對資料流的第X位元組進行位元組填充的示意圖。
圖6根據本發明的實施例繪示殘餘閘與輸出閘在時脈週期T1和T2時的運作的示意圖。
圖7根據本發明的實施例繪示殘餘閘與輸出閘在時脈週期T2和T3時的運作的示意圖。
圖8根據本發明的實施例繪示一種位元組填充方法的流程圖。
S801、S802、S803、S804、S805、S806、S807、S808、S809、S810、S811:步驟
Claims (10)
- 一種位元組填充電路,包括: 輸入閘,接收第一資料流並且根據所述第一資料流產生第二資料流,其中所述第一資料流的第一尺寸是N個位元組,並且所述第二資料流的第二尺寸是2N個位元組,其中N為正整數; 邏輯電路,耦接所述輸入閘,包括: 第X階邏輯閘,響應於所述第二資料流的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫所述第X位元組,並且將第二填充位元組插入至所述第二資料流的第(X+1)位元組,其中X為介於1至2N-1之間的正整數; 殘餘暫存器,儲存殘餘資料流; 殘餘閘,耦接所述邏輯電路以及所述殘餘暫存器,其中所述殘餘閘組合所述殘餘資料流以及所述第二資料流的第一部分以產生第三資料流,並且將所述第二資料流的第二部分配置為所述殘餘資料流;以及 輸出閘,耦接所述殘餘閘,並且輸出所述第三資料流。
- 如請求項1所述的位元組填充電路,其中所述第X階邏輯閘響應於所述第X位元組與第二旗標位元組匹配而將第三填充位元組插入至所述第(X+1)位元組。
- 如請求項1所述的位元組填充電路,其中所述第三資料流的第三尺寸是N個位元組,其中所述殘餘閘根據所述殘餘資料流的第四尺寸以及所述第三尺寸以決定所述第二資料流的所述第一部分。
- 如請求項1所述的位元組填充電路,更包括: 殘餘計數器,儲存對應於所述殘餘資料流的第四尺寸的殘餘計數值;以及 控制器,耦接至所述輸入閘、所述第X階邏輯閘以及所述殘餘閘,其中所述控制器響應於所述第殘餘計數值大於或等於N而停止所述輸入閘以及所述第X階邏輯閘的運作,直到經更新的所述殘餘計數值小於N。
- 如請求項1所述的位元組填充電路,其中所述第X階邏輯閘響應於所述第X位元組與所述第一旗標位元組以及所述第二旗標位元組的其中之一匹配而將計數值加一,其中所述殘餘閘根據所述計數值以及所述殘餘計數值產生經更新的所述殘餘計數值。
- 如請求項2所述的位元組填充電路,其中所述第一旗標位元組是十六進位數值「7E」,所述第一填充位元組是十六進位數值「7D」,並且所述第二填充位元組是十六進位數值「5E」,其中所述第二旗標位元組是十六進位數值「7D」,並且所述第三填充位元組是十六進位數值「5D」。
- 如請求項1所述的位元組填充電路,其中所述第三資料流為並列資料。
- 如請求項1所述的位元組填充電路,其中所述輸入閘對所述第一資料流進行填零以產生所述第二資料流。
- 如請求項8所述的位元組填充電路,其中所述第X階邏輯閘平移所述第二資料流中的所述第(X+1)位元組至第(2N)位元組以將所述第二填充位元組插入至所述第(X+1)位元組。
- 一種位元組填充方法,包括: 接收第一資料流並且根據所述第一資料流產生第二資料流,其中所述第一資料流的第一尺寸是N個位元組,並且所述第二資料流的第二尺寸是2N個位元組,其中N為正整數; 響應於所述第二資料流的第X位元組與第一旗標位元組匹配而用第一填充位元組複寫所述第X位元組,並且將第二填充位元組插入至所述第二資料流的第(X+1)位元組,其中X為介於1至2N-1之間的正整數; 組合殘餘資料流以及所述第二資料流的第一部分以產生第三資料流,並且將所述第二資料流的第二部分配置為所述殘餘資料流;以及 輸出所述第三資料流。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109125983A TWI756765B (zh) | 2020-07-31 | 2020-07-31 | 位元組填充電路以及位元組填充方法 |
| US17/023,361 US11418276B2 (en) | 2020-07-31 | 2020-09-16 | Byte stuffing circuit and byte stuffing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109125983A TWI756765B (zh) | 2020-07-31 | 2020-07-31 | 位元組填充電路以及位元組填充方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202207674A TW202207674A (zh) | 2022-02-16 |
| TWI756765B true TWI756765B (zh) | 2022-03-01 |
Family
ID=80003786
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109125983A TWI756765B (zh) | 2020-07-31 | 2020-07-31 | 位元組填充電路以及位元組填充方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11418276B2 (zh) |
| TW (1) | TWI756765B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101479969A (zh) * | 2006-06-26 | 2009-07-08 | Nxp股份有限公司 | 数据封装的方法和设备 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1169806A (zh) * | 1995-01-10 | 1998-01-07 | 诺基亚电信公司 | 分组无线系统以及分组无线系统的终端设备 |
| US6046817A (en) * | 1997-05-12 | 2000-04-04 | Lexmark International, Inc. | Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer |
| US6054942A (en) * | 1997-08-14 | 2000-04-25 | Cisco Technology, Inc. | System and method for scaleable encoding and decoding of variable bit frames |
| US20040015617A1 (en) * | 2001-01-25 | 2004-01-22 | Sangha Onkar S. | Flexible network interfaces and flexible data clocking |
| JP2003017424A (ja) * | 2001-06-29 | 2003-01-17 | Shin Etsu Handotai Co Ltd | 拡散ウェーハの製造方法 |
| FR2844652B1 (fr) * | 2002-09-18 | 2005-02-25 | Sagem | Systeme de transmission d'une pluralite de flux plesiochrones vers une unite centrale de traitement |
| JP5200660B2 (ja) * | 2008-05-23 | 2013-06-05 | 富士通株式会社 | 伝送方法及び伝送装置 |
| CN108111298A (zh) * | 2017-12-04 | 2018-06-01 | 哈尔滨理工大学 | 基于s盒共用的低熵掩码方案 |
| CN109274697B (zh) * | 2018-11-22 | 2021-11-12 | 湖南有马信息技术有限公司 | 数据帧转义方法、系统及相关装置 |
-
2020
- 2020-07-31 TW TW109125983A patent/TWI756765B/zh active
- 2020-09-16 US US17/023,361 patent/US11418276B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101479969A (zh) * | 2006-06-26 | 2009-07-08 | Nxp股份有限公司 | 数据封装的方法和设备 |
| CN101479969B (zh) | 2006-06-26 | 2012-07-04 | Nxp股份有限公司 | 数据封装的方法和设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11418276B2 (en) | 2022-08-16 |
| TW202207674A (zh) | 2022-02-16 |
| US20220038199A1 (en) | 2022-02-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6760742B1 (en) | Multi-dimensional galois field multiplier | |
| US5878057A (en) | Highly parallel cyclic redundancy code generator | |
| Kebschull et al. | Efficient graph-based computation and manipulation of functional decision diagrams | |
| US7171604B2 (en) | Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine | |
| JPH04211547A (ja) | 同期回路 | |
| US4937828A (en) | High speed parallel CRC device for concatenated data frames | |
| JP2005102213A (ja) | メッセージのcrcを計算するための方法 | |
| JP2002164791A (ja) | Crc符号演算回路、及びcrc符号演算方法 | |
| TWI756765B (zh) | 位元組填充電路以及位元組填充方法 | |
| Nair et al. | A symbol based algorithm for hardware implementation of cyclic redundancy check (CRC) | |
| TW575816B (en) | Method and apparatus for creating a message digest using a parallel, one-way hash algorithm | |
| TWM607067U (zh) | 位元組填充電路 | |
| JPH03219725A (ja) | 誤り検査コード生成装置および伝送誤り検出装置 | |
| US5844423A (en) | Half-full flag generator for synchronous FIFOs | |
| CN116472676A (zh) | 一种安全散列算法的数据压缩电路和芯片 | |
| JP3540287B2 (ja) | パラレル処理回路 | |
| US20190319643A1 (en) | Reed solomon decoder and semiconductor device including the same | |
| JP2003037504A (ja) | グレイコード発生装置 | |
| CN109981222A (zh) | 预偏置的有线数字电视校验和的串行产生装置 | |
| Muralidharan | Performance Enhancement Counter with Minimal Clock Period | |
| KR100936374B1 (ko) | 병렬 구조의 워드기반 fsr 구조 및 그 동작 방법 | |
| JPH02248120A (ja) | ディジタル伝送装置の誤り訂正用符号器/復号器システム | |
| Thibeault et al. | A scan-based configurable, programmable, and scalable architecture for sliding window-based operations | |
| JPH1196030A (ja) | 有限体上の乗算方法及び乗算回路 | |
| Shi et al. | On supporting sequential constraints for on-chip generation of post-silicon validation stimuli |