数据位宽转换器及其系统芯片的制作方法

文档序号:21362400发布日期:2020-07-04 04:36阅读:343来源:国知局
数据位宽转换器及其系统芯片的制作方法

本公开涉及数据位宽转换器。



背景技术:

现今,由于电子硬件系统功能的多样化,在开发上单一电子硬件系统时常需结合不同的知识产权(intellectualproperty,ip)核。而不同的ip核可能具备不同的技术规格,例如:在区块层级,不同的ip核可以具有不同数量的输入输出端;以及,在端层级,不同ip核的输入输出端可能具有不同的位宽(bitwidth)。因此在互连不同的ip核或是连结ip核与总线时,电子硬件系统需要使用数据位宽转换器作为中介,通过增加或减少位宽来解决数据传输的问题。

在数据位宽转换器的使用上,通常一端连结主控单元(master),而另一端连结受控单元(slave)。主控单元用于对受控单元提出数据的读取需求,而受控单元用于提供对应的数据给主控单元。因为主控单元及受控单元的位宽不同,因此主控单元及受控单元的连结就需要数据位宽转换器以协助转换位宽,主控单元及受控单元才能进行数据传输。由于现今电子产品对高速运算的需求,势必要减少数据位宽转换器的处理时间以提高主控单元读取受控单元的速度。



技术实现要素:

鉴于上述,本公开提出一种具有数据位宽转换器的系统芯片,适于转换以一第一位宽为数据段单位的一第一数据及以一第二位宽为数据段单位的一第二数据,及提供快取暂存一第三数据。系统芯片包括:一第一知识产权核、一第二知识产权核及一数据位宽转换器。第一知识产权核用于处理第一数据。第二知识产权核用于处理第二数据。数据位宽转换器包括一受控单元、一主控单元、一快取存储器及一数据重组电路。其中,受控单元用以读写第二数据;主控单元用以输出一控制指令至数据重组电路以获取第一数据;快取存储器用以读写第三数据;数据重组电路用以转换第一数据及第二数据,并依据一搜索程序从快取存储器及受控单元按序寻找第二数据以输出第一数据,及依据一暂存程序写入第三数据至快取存储器。其中在第二数据转换成第一数据之后,第二数据剩下的部分为第三数据。

依据一些实施例,搜索程序包括:依据第一数据的第一位宽、一第一位址、一第一数据段的数量及第二数据的第二位宽、一第二位址、一第二数据段的数量,获得多个索引及多个标签;及依据所述索引及所述标签从快取存储器寻找第二数据,如获得完整的第二数据则停止搜索程序,反之,继续从受控单元寻找第二数据,其中,当从快取存储器获得第二数据的任一部分,则抹除快取存储器对应的区块。

依据一些实施例,暂存程序包括:依据第一数据的第一位宽、第一位址、所述第一数据段及第二数据的第二位宽、第二位址、所述第二数据段,获得第三数据及对应的至少一个索引、至少一个标签,其中第三数据仅包括未被第一数据完全使用的所述第二数据段;及依据至少一个索引及至少一个标签,写入第三数据至快取存储器。

依据一些实施例,暂存程序包括:依据第一数据的第一位宽、第一位址、所述第一数据段及第二数据的第二位宽、第二位址、所述第二数据段,获得第三数据及对应的至少一个索引、至少一个标签,其中第三数据仅包括未被第一数据使用的第二数据的位元;及依据至少一个索引及至少一个标签,写入第三数据至快取存储器。

综上所述,数据位宽转换器可转换不同位宽的第一数据及第二数据,并提供快取暂存第三数据的功能,其中第三数据为第二数据转换成第一数据之后第二数据剩下的部分。因此,数据位宽转换器可避免重复读取部分的第二数据,以减少第一数据及第二数据进行转换时的处理时间。

附图说明

图1示出依据本公开一些实施例的数据位宽转换器的示意图。

图2示出依据本公开一些实施例的搜索程序的流程图。

图3a示出依据本公开一些实施例的暂存程序的流程图。

图3b示出依据本公开另一些实施例的暂存程序的流程图。

图4a示出依据本公开一些实施例的快取存储器的示意图。

图4b示出依据本公开一些实施例的区块的示意图。

图5示出依据本公开一些实施例的位宽转换的示意图。

符号说明

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,图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)、直接存储器存取(directmemoryaccess,dma)控制器、快捷周边互联标准(peripheralcomponentinterconnectexpress,pci-e)、串行的周边接口(serialperipheralinterface,spi)、周边输入/输出(peripherali/o)或ip核之间。而在另一些实施例中,数据位宽转换器100还可整合于一系统芯片(systemonachip,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从快取存储器300读取第三数据d3时,数据重组电路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从快取存储器300读取第三数据d3的情况如下所述。第一位宽为“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进行转换时的处理时间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1