CN111478708B - 电子设备、芯片、系统总线、译码模块、译码器及方法 - Google Patents
电子设备、芯片、系统总线、译码模块、译码器及方法 Download PDFInfo
- Publication number
- CN111478708B CN111478708B CN202010244657.8A CN202010244657A CN111478708B CN 111478708 B CN111478708 B CN 111478708B CN 202010244657 A CN202010244657 A CN 202010244657A CN 111478708 B CN111478708 B CN 111478708B
- Authority
- CN
- China
- Prior art keywords
- address
- decoder
- preset
- bits
- decoding
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请实施例提供一种电子设备、芯片、系统总线、译码模块、译码器及译码方法,译码器可获取预设指令,预设指令的地址段具有起始地址和结束地址,起始地址和所述结束地址具有相同的地址宽度;译码器被配置的比较算法用于从起始地址的低位和结束地址的低位开始,比较起始地址的比特位和结束地址的比特位,直到起始地址的第一预设比特位和结束地址的第二预设比特位同或为真;译码器的多个比较器用于从起始地址的第一预设比特位和结束地址的第二预设比特位开始,逐个比较起始地址的比特位和结束地址的比特位,直到起始地址的高位和结束地址的高位比较完成。本申请实施例节省译码器在译码过程中通过电路比较地址的资源。
Description
技术领域
本申请涉及译码技术领域,特别涉及一种电子设备、芯片、系统总线、译码模块、译码器及译码方法。
背景技术
片上系统诸如一芯片一般包括有系统总线(BUS)、主机(Master)、从机(Slave)、译码模块(Decoder,简称DEC)和仲裁器(Arbiter,简称ABR)。主机负责发送业务命令到译码器,业务命令一般包括有地址信息,从机负责发送接收命令。当需要接收命令时,可以由从机发送接收命令,然后主机根据该发送接收命令发送业务命令到译码器,译码器可以对业务命令的地址信息进行译码操作,以将译码后的信息通过仲裁器传输到从机。
其中,译码器在译码过程中通过译码器的物理电路逐个对业务命令的地址进行地址比较。随着系统总线规模的变大,业务命令的地址段的数目也会变大,导致译码器在译码过程中被物理电路中的比较器占用过多的资源。
发明内容
本申请实施例提供一种电子设备、芯片、系统总线、译码模块、译码器及译码方法,可以节省译码器在译码过程中通过电路比较地址的资源。
本申请实施例公开一种译码器,所述译码器可获取预设指令,所述预设指令的地址段具有起始地址和结束地址,其中所述起始地址和所述结束地址具有相同的地址宽度;
所述译码器被配置的比较算法用于从所述起始地址的低位和所述结束地址的低位开始,比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的第一预设比特位和所述结束地址的第二预设比特位同或为真;
所述译码器的多个比较器用于从所述起始地址的第一预设比特位和所述结束地址的第二预设比特位开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的高位和所述结束地址的高位比较完成。
本申请实施例还公开一种译码器,所述预设指令的地址段的位宽为L,其中L为整数,所述译码器包括多个比较器,所述比较器的个数小于2*L。
本申请实施例还公开一种译码器,所述译码器可获取预设指令的地址段,将所述预设指令的地址段的低位定义为A、高位定义为B和预设位定义为C,其中,A、B和C均为自然数,且A<C<B;
所述预设指令的地址段具有起始地址和结束地址,所述起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,所述结束地址的低位定义为A2、高位定义为B2和预设位定义为C2;
其中,A1至C1之间的比特位均相同,且包括A1、但不包括C1;
其中,A2至C2之间的比特位均相同,且包括A2、但不包括C2;
其中,C1和C2相同,A1和A2相同,B1和B2相同;
所述译码器被配置的比较算法用于从所述起始地址的A1和所述结束地址的A2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的C1和所述结束地址的C2;
所述译码器的多个比较器用于从所述起始地址的C1和所述结束地址的C2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到将所述起始地址的B1和所述结束地址的B2比较完成。
本申请实施例还公开一种译码器,所述译码器可获取预设指令,将所述预设指令的地址段的低位定义为A、高位定义为B、预设位定义为C,其中A、B和C均为自然数,且A<C<B;
所述译码器包括多个比较器,所述译码器的比较器的个数为2(B-C+1)。
本申请实施例还公开一种译码模块,包括:
N个译码器,其中N为整数,每一译码器为如上任一所述的译码器,所有译码器的比较器的个数小于2*N*L,或所有译码器的比较器的个数为2*N*(B-C+1);
N个有效端口,一有效端口与一译码器连接;和
一选择电路,所述选择电路与所述N个有效端口连接;
所述译码器用于将其译码结果输出到所述N个有效端口中的有效端口,所述选择电路用于在所述译码结果有效时选择所述有效端口以输出所述译码结果。
本申请实施例还公开一种系统总线,包括:
至少一个译码模块,每一译码模块为如上所述的译码模块;和
至少一个有效仲裁器,每一有效仲裁器连接所有的译码模块,所述至少一个有效仲裁器用于按照预设规则输出有效的译码结果。
本申请实施例还公开一种系统总线,包括:
至少一个译码模块,每一译码模块为如上所述的译码模块,所述译码模块还包括一无效端口,所述无效端口与所述N个译码器连接,且所述无效端口与所述选择电路连接,所述选择电路还用于在所述译码结果无效时选择所述无效端口以输出所述译码结果;
至少一个有效仲裁器,每一有效仲裁器连接所有的译码模块,所述至少一个有效仲裁器用于按照预设规则输出有效的译码结果;
一无效存储模块;和
一无效仲裁器,所述无效仲裁器与所述无效存储模块连接,且所述无效仲裁器与所有译码模块连接,所述无效仲裁器用于将无效的译码结果输出到所述无效存储模块。
本申请实施例还公开一种芯片,包括:
至少一个接收模块,所述接收模块用于发送接收预设指令的命令;
至少一个发送模块,所述发送模块用于发送所述预设指令;和
系统总线,为如上任一所述的系统总线,所述系统总线的一有效仲裁器与一接收模块连接,所述系统总线的一译码模块与一发送模块连接;
所述至少一个有效仲裁器用于按照预设规则将有效的译码结果输出至所有的接收模块。
本申请实施例还公开一种电子设备,包括如上所述的芯片。
本申请实施例还公开一种译码方法,包括:
译码器获取预设指令,所述预设指令的地址段具有起始地址和结束地址,其中所述起始地址和所述结束地址具有相同的地址宽度;
所述译码器被配置的比较算法从所述起始地址的低位和所述结束地址的低位开始,比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的第一预设比特位和所述结束地址的第二预设比特位同或为真;
所述译码器的多个比较器从所述起始地址的第一预设比特位和所述结束地址的第二预设比特位开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的高位和所述结束地址的高位比较完成,得到译码结果。
本申请实施例还公开一种译码方法,包括:
译码器获取预设指令,将所述预设指令的地址段的低位定义为A、高位定义为B和预设位定义为C,其中A、B和C均为自然数,且A<C<B;所述预设指令的地址段具有起始地址和结束地址,将所述起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,将所述结束地址的低位定义为A2、高位定义为B2和预设位定义为C2;其中A1至C1之间的比特位均相同,且包括A1、但不包括C1,其中A2至C2之间的比特位均相同,且包括A2、但不包括C2;其中,C1和C2相同,A1和A2相同,B1和B2相同;
所述译码器被配置的比较算法从所述起始地址的A1和所述结束地址的A2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的C1和所述结束地址的C2;
所述译码器的多个比较器从所述起始地址的C1和所述结束地址的C2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到将所述起始地址的B1和所述结束地址的B2比较完成。
本申请实施例中,译码器在译码过程中可配置软件算法以及译码器的多个比较器共同对地址段的起始地址和结束地址进行比较,相比译码器在译码过程中仅通过译码器的多个比较器对地址段的起始电子和结束地址进行比较,本申请实施例可以节省译码器的比较器面积,可以节省译码器在译码过程中的资源。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的SOC的内部部分结构示意图。
图2为图1所示芯片中系统总线的结构示意图。
图3为图1所示译码模块的结构示意图。
图4为本申请实施例提供的SOC的另一结构示意图。
图5为图4所示SOC中系统总线的结构示意图。
图6为图4所示SOC中译码模块的结构示意图。
图7为本申请实施例提供的电子设备的结构示意图。
图8为本申请实施例提供的译码方法的第一流程示意图。
图9为本申请实施例提供的译码方法的第二流程示意图。
图10为本申请实施例提供的译码方法的第三流程示意图。
图11为本申请实施例提供的译码方法的第四流程示意图。
具体实施方式
本申请实施例提供的技术方案可以应用于信号的传输,诸如片上系统(System-on-a-chip,SOC),也可以称为芯片系统、系统级芯片,可以简称为芯片。可以理解的是,该SOC也可以应用于电子设备诸如智能手机。
请参阅图1,图1为本申请实施例提供的SOC的内部部分结构示意图。SOC2可以包括至少一个发送模块(Master,简称M)诸如第一发送模块(M0)40A和第二发送模块(M1)40B。每一个发送模块均可以发送预设指令,可以将该预设指令理解为业务命令,还可以理解为发送模块负责发送业务命令。需要说明的是,本申请实施例所限定的发送模块的个数并不限于此,诸如发送模块的个数可以为1个、3个等。
SOC2可以包括至少一个接收模块(Slave,简称S)诸如第一接收模块(S0)60A和第二接收模块(S1)60B。每一个接收模块均可以发送接收预设指令的命令,以从发送模块获取所需的信息。还可以理解为接收模块负责发送接收命令,以从发送模块获取所需的信息。需要说明的是,本申请实施例所限定的发送模块的个数并不限于此,诸如发送模块的个数可以为1个、3个等。
请结合图2,图2为图1所示芯片中系统总线的结构示意图。SOC2可以包括系统总线诸如系统总线(BUS)20,BUS20与所有的发送模块以及所有的接收模块连接,诸如BUS20通过信号线分别与第一发送模块40A、第二发送模块40B、第一接收模块60A和第二接收模块60B连接,以实现信号的传输。在一些实施例中,BUS20的类型可以为交叉开关矩阵(Crossbar)类型,当然,BUS20也可以为其他类型。
可以理解的是,若将信号从发送模块传输到接收模块,往往需要译码操作。基于此,本申请实施例可以在BUS20上集成至少一个译码模块(Decoder,简称DEC)诸如第一译码模块(DEC0)200A和第二译码模块(DEC1)200B。需要说明的是,本申请实施例所限定的译码模块的个数并不限于此,诸如译码模块的个数可以为1个、3个等。
一个译码模块与一个发送模块通过信号线连接,诸如第一发送模块40A和第一译码模块200A通过信号线连接,第二发送模块40B和第二译码模块200B通过信号线连接。其中,译码模块的个数和发送模块的个数相等。诸如译码模块的个数为X,发送模块的个数也为X。其中X为整数。
一个译码模块与一个接收模块通过一有效仲裁器(Arbiter,简称ABR)连接。可以在BUS20上集成至少一个有效仲裁器诸如第一有效仲裁器(ARB0)400A和第二有效仲裁器(ARB1)400B。每一个有效仲裁器与所有的译码模块通过信号线连接,且一个有效仲裁器与一个接收模块通过信号线连接。诸如第一译码模块200A和第二译码模块200B均通过信号线与第一有效仲裁器400A连接,第一译码模块200A和第二译码模块200B均通过信号线与第二有效仲裁器400B连接,第一有效仲裁器400A与第一接收模块60A通过信号线连接,第二有效仲裁器400B与第二接收模块60B通过信号线连接。所有的有效仲裁器均按照预设规则将译码模块所输出的有效的译码结果传输到接收模块。
需要说明的是,本申请实施例所限定的有效仲裁器的个数并不限于此,诸如有效仲裁器的个数可以为1个、3个等。其中有效仲裁器的个数和接收模块的个数相等。诸如接收模块的个数为Y,有效仲裁器的个数也为Y。其中Y为整数。
请参阅图3,图3为图1所示译码模块的结构示意图。译码模块200可以为图1所示的第一译码模块200A,译码模块200也可以为图1所示的第二译码模块200B。图3仅为本申请实施例所提供的译码模块的一种具体举例说明。其中,译码模块200可以包括多个部分,诸如译码电路部分、端口部分、端口选择电路部分。译码电路部分、端口部分、端口选择电路部分可以为三个独立的部分单元,本申请实施例可以将译码电路部分、端口部分、端口选择电路部分封装在一起,并集成到SUB20上。
可以将译码电路部分定义为译码器220,译码器220至少为一个,诸如译码器220为8个,分别为第一译码器(ADDR_COMP0)221、第二译码器(ADDR_COMP1)222、第三译码器(ADDR_COMP2)223、第四译码器(ADDR_COMP3)224、第五译码器(ADDR_COMP4)225、第六译码器(ADDR_COMP5)226、第七译码器(ADDR_COMP6)227和第八译码器(ADDR_COMP7)228。需要说明的是,每一个译码器220用来译码预设指令的地址段,且不同译码器220所对应的地址段不同诸如第一译码器221所对应的地址段与第二译码器222所对应的地址段不同。即一个译码器220对应一个地址段。若译码器220为8个,则对应有8个地址段。
需要说明的是,译码器220的个数并不限于此,诸如译码器220还可以为1个、2个、16个等等。可以根据实际需求配置译码器220的个数,即可以根据所需译码的地址段来确定译码器220的个数。
可以将端口部分定义为有效端口240,有效端口240至少为一个,诸如有效端口240为8个,分别为第一有效端口(TARGET_PORT0)241、第二有效端口(TARGET_PORT1)242、第三有效端口(TARGET_PORT2)243、第四有效端口(TARGET_PORT3)244、第五有效端口(TARGET_PORT4)245、第六有效端口(TARGET_PORT5)246、第七有效端口(TARGET_PORT6)247和第八有效端口(TARGET_PORT7)248。
一个有效端口240与一个译码器220通过信号线连接。诸如第一译码器221和第一有效端口241通过信号线连接,第二译码器222和第二有效端口242通过信号线连接,第三译码器223和第三有效端口243通过信号线连接,第四译码器224和第四有效端口244通过信号线连接,第五译码器225和第五有效端口245通过信号线连接,第六译码器226和第六有效端口246通过信号线连接,第七译码器227和第七有效端口247通过信号线连接,第八译码器228和第八有效端口248通过信号线连接。有效端口240的个数和译码器220的个数相同,诸如译码器220的个数为N,则有效端口240的个数也为N,其中N为整数。
其中,译码器220可以将其译码结果输出到与其对应的有效端口240。诸如第一译码器221将其译码结果输出到第一有效端口241。
可以将端口选择电路部分定义为选择电路(PORT_NO_MUX)260,选择电路260与所有的有效端口240连接,选择电路260还与所有的有效仲裁器连接,诸如选择电路260与第一仲裁器400A通过信号线连接,选择电路260与第二仲裁器400B通过信号线连接。选择电路260用于在译码结果有效时选择有效端口中的其中一个以输出译码结果。诸如第一译码器221的译码结果有效,第一译码器221将其译码结果输出到第一有效端口241,选择电路260允许第一有效端口241与所有的仲裁器连接,以将第一译码器221的有效译码结果传输到其中一个仲裁器诸如第一仲裁器400A,通过第一仲裁器400A按照其预设规则将该有效的译码结果传输到第一接收模块60A。
需要说明的是,有效译码结果或有效的译码结果可以理解为译码器220的译码结果为真,即预设指令的地址段为有效的地址段。
实际信号传输过程中,当需要接收命令时,可以由接收模块诸如第一接收模块60A发送接收预设指令的命令,然后发送模块诸如第一发送模块40A根据该命令发送预设指令到译码模块200诸如译码模块200A。译码模块200A中的译码器220诸如第一译码器221可以对预设指令的地址信息进行译码操作,以得到有效的译码结果。选择电路240可以选择与该第一译码器221连接的有效端口240诸如第一有效端口241,以将该第一有效端口241与有效仲裁器诸如第一有效仲裁器400A连接,以将有效的译码结果通过第一有效仲裁器400A传输到第一接收模块60A。
为了进一步解释说明译码器220的译码过程,下面针对译码器220进行详细说明。
预设指令的地址段具有起始地址和结束地址,或者说预设指令的地址段对应有起始地址和结束地址。发送模块诸如第一发送模块40A可以将预设指令发送到译码模块200诸如第一译码模块200A的其中一个译码器220。一译码器220获取预设指令后,可以对预设指令的地址段进行译码。译码器220在对预设指令的地址段进行译码过程中,可以对地址段所对应的起始地址和结束地址进行比较,以确定该地址段是否为真,或者说以确定该地址段是否有效。
其中,地址段的起始地址和地址段的结束地址具有相同的地址宽度(ADDR_WIDTH),或者说地址段的起始地址和地址段的结束地址具有相同的比特(bit)位。比如预设指令的地址段的起始地址(addr_range_start)为0x00400000,预设指令的地址段的结束地址(addr_range_end)为0x005FFFFF,其中0所代表的二进制为0000,x代表4个比特位的二进制,4代表二进制的0100,5代表二进制的0101,F代表二进制的1111。每一个地址段的起始地址和结束地址均具有低位和高位,诸如0x005FFFFF的低位为1,高位为0。可以将低位定义为0bit位,或者定义为第一bit位。
在一些实施例中,译码器220可以采用其比较电路诸如多个比较器来比较地址段的起始地址和结束地址的所有比特位,以确定该地址段是否为真,或者说以确定该地址段是否有效。然而,随着地址段数量的逐渐增加,在实际应用过程中会占用译码器220中大量的比较器面积,占用大量的资源。
可以理解的是,某一指令的地址段所对应的起始地址和结束地址从低位开始至某一预设位全为0,或全为1。诸如0x00400000从低位0bit位开始至21bit位均为0,诸如0x005FFFFF从低位0bit位开始至20bit位均1。0x00400000的21it位为0,0x005FFFFF的21bit位也为0。0x00400000的21it位和0x005FFFFF的21bit位同或为真。
基于此,在某一指令的地址段所对应的起始地址和结束地址从低位开始至某一预设位全为0,或全为1部分地址段的起始地址和结束地址的bit位是固定不变的,比较起来比较简单,可以采用软件算法,或者软件工具实现。本申请实施例在其他一些实施例中,在某一指令的地址段所对应的起始地址和结束地址从低位开始至某一预设位全为0,或全为1的部分采用软件算法来比较地址段所对应的起始地址和结束地址的比特位。地址段所对应的起始地址和结束地址从低位开始至某一预设位全为0,或全为1,采用软件算法进行比较,容易实现。而且在比较过程中可以节省译码器220大量比较器的面积,节省资源的占用。
诸如译码器220被配置的比较算法用于从起始地址的低位和结束地址的低位开始,比较起始地址的比特位和结束地址的比特位,直到起始地址的第一预设比特位和结束地址的第二预设比特位同或为真。译码器220的多个比较器用于从起始地址的第一预设比特位和结束地址的第二预设比特位开始,逐个比较起始地址的比特位和结束地址的比特位,直到起始地址的高位和结束地址的高位比较完成。
需要说明的是每一译码器220的比较器的个数可以与预设指令的地址段的位宽相同,也可以不同。诸如预设指令的地址段的位宽为L,或者说地址段的地址宽度为L,L为整数诸如32、64等。一个译码器220的比较器的个数可以为2*L。一个译码模块200若具有N个译码器220,则一个译码模块200的比较器的个数可以为2*N*L。在译码器220译码过程中,可以仅使用部分比较器对地址段进行比较,可以节省资源的占用。
在其他一些实施例中,一个译码器220比较器的个数可以小于2*L,而一个译码模块200的比较器的个数可以小于2*N*L。诸如将预设指令的地址段的低位定义为A、高位定义为B及预设未定义为C,A可以被定义为0bit位,也可以定义为第1bit为,诸如A为0bit位。B可以为地址段的最后一位诸如31bit位,也可以定义为第32bit位。C可以为地址段A和B之间的任意一位诸如21bit位,也可以定义为第22bit位。可以理解的是,A<C<B。比如A为0,C为21,B为31。
可以将起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,可以将结束地址的低位定义为A2、高位定义为B2和预设位定义为C2。可以理解的是,A=A1=A2,B=B1=B2,C=C1=C2。其中,A1至C1之间的比特位均相同,且包括A1、但不包括C1。其中,A2至C2之间的比特位均相同,且包括A2、但不包括C2。其中,A1的bit位和A2的bit位不同,诸如A1的bit位为0,A2的bit位为1。其中,C1的bit位和C2的bit位相同,从而C1的bit位和C2的bit位同或为真。
译码器220被配置的比较算法用于从起始地址的A1和结束地址的A2开始,逐个比较起始地址的比特位和结束地址的比特位,直到起始地址的C1和结束地址的C2。需要说明的是,比较算法在比较过程中不包括C1和C2。译码器220的多个比较器用于从起始地址的C1和结束地址的C2开始,逐个比较起始地址的比特位和结束地址的比特位,直到将起始地址的B1和结束地址的B2比较完成。
每一译码器220的比较器的个数可以为2*(B-C+1)。即每一译码器220的比较器只需要从起始地址的C1所对应的bit位和结束地址的C2所对应的bit位至高位进行比较即可。一起始地址从C1至高位B1之间的bit位数为(B1-C1+1),也可以为(B-C+1)个,每一起始地址的一个bit位对应一个比较器。一结束地址从C2至高位B2之间的bit位数为(B2-C2+1),也可以为(B-C+1)个,每一结束地址的一个bit位对应一个比较器。由此可见,若实现一个译码器220从起始地址的第一预设比特位和结束地址的第二预设比特位开始,逐个比较起始地址的比特位和结束地址的比特位,直到起始地址的高位和结束地址的高位比较完成一个子比较电路至少需要2*(B-C+1)个比较器。比如一译码器220的比较器个数为2*(B-C+1)个,就可以节省大量比较器的个数,减少资源的占用。
具体举例来说,比如预设指令的地址段的起始地址为0x00400000,该预设指令的结束地址为0x005FFFFF,首尾地址中低21bit为全0和全1则由译码器220的多个比较器的比较逻辑如下:
(addr[ADDR_WIDTH-1:21]>=addr_range_start[ADDR_WIDTH-1:21])&(addr[ADDR_WIDTH-1:21]<=addr_range_end[ADDR_WIDTH-1:21])。
再比如:预设指令的地址段的起始地址为0x70000000,该预设指令的结束地址为0x9EFFFFFF,首尾地址低24bit为全0和全1,则由译码器220的多个比较器的比较逻辑如下:
(addr[ADDR_WIDTH-1:24]>=addr_range_start[ADDR_WIDTH-1:24])&(addr[ADDR_WIDTH-1:24]<=addr_range_end[ADDR_WIDTH-1:24])。
由此,本申请实施例可以根据SOC2地址段特性,寻找地址首尾地址从低位开始的第一个同或为真的bit位,即为无需采用译码器220的比较器比较的bit数目,译码器220的比较器只比较该bit位及该位以上的bit位。从而可以节省大量的比较器面积,减少资源的占用。
需要说明的是,在译码模块200的译码器220的译码过程中存在一些特殊情况,诸如地址段无效,或者说译码器220的译码结果无效,则该地址段为假。则需要舍弃该地址段。
请参阅图4至图6,图4为本申请实施例提供的SOC的另一结构示意图,图5为图4所示SOC中系统总线的结构示意图,图6为图4所示SOC中译码模块的结构示意图。译码模块200还可以包括无效端口(DUMMY_PORT8)280,无效端口通过信号线与译码模块200中的所有译码器220连接,且无效端口280与选择电路260连接。选择电路260还用于在译码器220的译码结果无效时选择该无效端口280以输出该无效的译码结果。BUS20还可以集成有无效存储模块(DUMMY)600和无效仲裁器(ARB2)400C,无效仲裁器400C与所有的译码模块200诸如第一译码模块200A和第二译码模块200B通过信号线连接,无效仲裁器400C与无效存储模块600通过信号线连接,无效仲裁器400C用于将无效的译码结果输出到无效存储模块600,以舍弃该无效的译码结果。
可以理解的是,本申请实施例所限定的SOC2可应用到电子设备中。
请参阅图7,图7为本申请实施例提供的电子设备的结构示意图。电子设备1可以包括主板12,主板12可以集成各种电路,诸如主板12集成有SOC2。该SOC2可以参阅以上内容,在此不再赘述。需要说明的是,该SOC2可以集成有电子设备1的中央处理器,以作为电子设备1的处理中心。该SOC2也可以集成有电子设备1的图像处理器,以处理电子设备1的摄像头所拍摄的图像或视频。
电子设备1可以是手机、台式电脑、笔记本、平板电脑、腕表设备、电视机、媒体播放器、计算机监视器等具有SOC2的设备。
电子设备1还可以包括壳体14和显示屏16,壳体14可以作为载体以承载显示屏16和主板12。需要说明的是,该电子设备还可以包括其他器件,诸如电池等。
为了进一步详细说明本申请实施例译码器比较地址段的具体过程,下面从译码的具体过程的角度进行描述。
请参阅图8,图8为本申请实施例提供的译码方法的第一流程示意图。结合图1至图6,本申请实施例译码方法包括:
1001,译码器获取预设指令,所述预设指令的地址段具有起始地址和结束地址,其中所述起始地址和所述结束地址具有相同的地址宽度。需要说明的是,译码器可以参阅图3或图6所示的译码器220,该译码器220可以集成在译码模块200中,诸如图1、图2、图4和图5中的第一译码模块200A和第二译码模块200B中。
1003,所述译码器被配置的比较算法从所述起始地址的低位和所述结束地址的低位开始,比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的第一预设比特位和所述结束地址的第二预设比特位同或为真。由于预设指令的地址段的首尾地址的低位至预设位全0或全1采用比较算法进行比较容易实现,可以节省大量的比较器,以节省资源的占用。
1004,所述译码器的多个比较器从所述起始地址的第一预设比特位和所述结束地址的第二预设比特位开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的高位和所述结束地址的高位比较完成,得到译码结果。其中,译码器的比较器的比较过程可以参阅以上内容在此不再赘述。
需要说明的是,若所述译码结果有效,即译码器的译码结果为真,所述方法还包括:所述译码器将有效的译码结果输出到N个有效端口中的一个有效端口,选择电路选择所述有效端口以输出有效的译码结果。诸如选择电路260选择第一有效端口241与有效仲裁器诸如第一有效仲裁器400A连接,以将有效的译码结果输出到第一接收模块60A。
若所述译码结果无效,即译码器的译码结果为假,所述方法还包括:所述译码器将无效的译码结果输出到一无效端口,选择电路选择所述无效端口以输出无效的译码结果。诸如选择电路260选择无效端口280与无效仲裁器400C连接,以将无效译码结果输出到无效存储模块600而舍弃。
请参阅图9,图9为本申请实施例提供的译码方法的第二流程示意图。结合图1至图6,以及图8,所述译码器为N个,其中N为整数,所述预设指令的地址段的位宽为L,每一所述译码器的比较器的个数小于2*L,本申请实施例译码方法在译码器获取预设指令的地址段之后还可以包括:
1002,根据所述预设指令的地址段从多个译码器中确定出与所述预设指令的地址段匹配的译码器。需要说明的是,不同的地址段对应不同的译码器,即在译码模块200获取到预设指令的地址段后,确定出该地址段与哪一个译码器对应,找出与该地址段对应的译码器后,通过该译码器对与其对应的地址段进行译码操作。
请参阅图10,图10为本申请实施例提供的译码方法的第三流程示意图。结合图1至图6,本申请实施例译码方法包括:
2001,译码器获取预设指令,将所述预设指令的地址段的低位定义为A、高位定义为B和预设位定义为C,其中A、B和C均为自然数,且A<C<B;所述预设指令的地址段具有起始地址和结束地址,将所述起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,将所述结束地址的低位定义为A2、高位定义为B2和预设位定义为C2;其中A1至C1之间的比特位均相同,且包括A1、但不包括C1,其中A2至C2之间的比特位均相同,且包括A2、但不包括C2;其中,C1和C2相同,A1和A2相同,B1和B2相同。需要说明的是,译码器可以参阅图3或图6所示的译码器220,该译码器220可以集成在译码模块200中,诸如图1、图2、图4和图5中的第一译码模块200A和第二译码模块200B中。
2003,所述译码器被配置的比较算法从所述起始地址的A1和所述结束地址的A2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的C1和所述结束地址的C2。由于预设指令的地址段的首尾地址的低位至预设位全0或全1采用比较算法进行比较容易实现,可以节省大量的比较器,以节省资源的占用。
2004,所述译码器的多个比较器从所述起始地址的C1和所述结束地址的C2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到将所述起始地址的B1和所述结束地址的B2比较完成。其中,译码器的比较器的比较过程可以参阅以上内容在此不再赘述。
需要说明的是,若所述译码结果有效,即译码器的译码结果为真,所述方法还包括:所述译码器将有效的译码结果输出到N个有效端口中的一个有效端口,选择电路选择所述有效端口以输出有效的译码结果。诸如选择电路260选择第一有效端口241与有效仲裁器诸如第一有效仲裁器400A连接,以将有效的译码结果输出到第一接收模块60A。
若所述译码结果无效,即译码器的译码结果为假,所述方法还包括:所述译码器将无效的译码结果输出到一无效端口,选择电路选择所述无效端口以输出无效的译码结果。诸如选择电路260选择无效端口280与无效仲裁器400C连接,以将无效译码结果输出到无效存储模块600而舍弃。
请参阅图11,图11为本申请实施例提供的译码方法的第四流程示意图。结合图1至图6,以及图10,所述译码器为N个,其中N为整数,每一所述译码器的比较器的个数为2(B-C+1),本申请实施例译码方法在译码器获取预设指令的地址段之后还可以包括:
2002,根据所述预设指令的地址段从多个译码器中确定出与所述预设指令的地址段匹配的译码器。需要说明的是,不同的地址段对应不同的译码器,即在译码模块200获取到预设指令的地址段后,确定出该地址段与哪一个译码器对应,找出与该地址段对应的译码器后,通过该译码器对与其对应的地址段进行译码操作。
以上对本申请实施例提供的电子设备、芯片、系统总线、译码模块、译码器及译码方法进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (16)
1.一种译码器,其特征在于,所述译码器可获取预设指令,所述预设指令的地址段具有起始地址和结束地址,其中所述起始地址和所述结束地址具有相同的地址宽度;
所述译码器被配置的比较算法用于从所述起始地址的低位和所述结束地址的低位开始,比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的第一预设比特位和所述结束地址的第二预设比特位同或为真,所述比较算法为软件算法;
所述译码器的多个比较器用于从所述起始地址的第一预设比特位和所述结束地址的第二预设比特位开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的高位和所述结束地址的高位比较完成。
2.根据权利要求1所述的译码器,其特征在于,所述预设指令的地址段的位宽为L,其中L为整数,所述译码器的比较器的个数小于2*L。
3.一种译码器,其特征在于,所述译码器可获取预设指令的地址段,将所述预设指令的地址段的低位定义为A、高位定义为B和预设位定义为C,其中,A、B和C均为自然数,且A<C<B;
所述预设指令的地址段具有起始地址和结束地址,所述起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,所述结束地址的低位定义为A2、高位定义为B2和预设位定义为C2;
其中,A1至C1之间的比特位均相同,且包括A1、但不包括C1;
其中,A2至C2之间的比特位均相同,且包括A2、但不包括C2;
其中,C1和C2相同,A1和A2相同,B1和B2相同;
所述译码器被配置的比较算法用于从所述起始地址的A1和所述结束地址的A2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的C1和所述结束地址的C2比较完成,所述比较算法为软件算法;
所述译码器的多个比较器用于从所述起始地址的C1和所述结束地址的C2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到将所述起始地址的B1和所述结束地址的B2比较完成。
4.根据权利要求3所述的译码器,其特征在于,所述译码器的比较器的个数为2*(B-C+1)。
5.一种译码模块,其特征在于,包括:
N个译码器,其中N为整数,每一译码器为如权利要求1至2任一项所述的译码器,所有译码器的比较器的个数小于2*N*L,或每一个译码器为如权利要求3至4任一项所述的译码器,所有译码器的比较器的个数为2*N*(B-C+1);
N个有效端口,一有效端口与一译码器连接;和
一选择电路,所述选择电路与所述N个有效端口连接;
所述译码器用于将其译码结果输出到所述N个有效端口中的有效端口,所述选择电路用于在所述译码结果有效时选择所述有效端口以输出所述译码结果。
6.根据权利要求5所述的译码模块,其特征在于,所述译码模块还包括一无效端口,所述无效端口与所述N个译码器连接,且所述无效端口与所述选择电路连接;
所述选择电路还用于在所述译码结果无效时选择所述无效端口以输出所述译码结果。
7.一种系统总线,其特征在于,包括:
至少一个译码模块,每一译码模块为如权利要求5所述的译码模块;和
至少一个有效仲裁器,每一有效仲裁器连接所有的译码模块,所述至少一个有效仲裁器用于按照预设规则输出有效的译码结果。
8.一种系统总线,其特征在于,包括:
至少一个译码模块,每一译码模块为如权利要求6所述的译码模块;
至少一个有效仲裁器,每一有效仲裁器连接所有的译码模块,所述至少一个有效仲裁器用于按照预设规则输出有效的译码结果;
一无效存储模块;和
一无效仲裁器,所述无效仲裁器与所述无效存储模块连接,且所述无效仲裁器与所有译码模块连接,所述无效仲裁器用于将无效的译码结果输出到所述无效存储模块。
9.一种芯片,其特征在于,包括:
至少一个接收模块,所述接收模块用于发送接收预设指令的命令;
至少一个发送模块,所述发送模块用于发送所述预设指令;和
系统总线,为如权利要求7或8所述的系统总线,所述系统总线的一有效仲裁器与一接收模块连接,所述系统总线的一译码模块与一发送模块连接;
所述至少一个有效仲裁器用于按照预设规则将有效的译码结果输出至所有的接收模块。
10.一种电子设备,其特征在于,包括如权利要求9所述的芯片。
11.一种译码方法,其特征在于,包括:
译码器获取预设指令,所述预设指令的地址段具有起始地址和结束地址,其中所述起始地址和所述结束地址具有相同的地址宽度;
所述译码器被配置的比较算法从所述起始地址的低位和所述结束地址的低位开始,比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的第一预设比特位和所述结束地址的第二预设比特位同或为真,所述比较算法为软件算法;
所述译码器的多个比较器从所述起始地址的第一预设比特位和所述结束地址的第二预设比特位开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的高位和所述结束地址的高位比较完成,得到译码结果。
12.根据权利要求11所述的方法,其特征在于,所述译码器为N个,其中N为整数,所述预设指令的地址段的位宽为L,每一所述译码器的比较器的个数小于2*L;
所述译码器获取预设指令之后,所述方法还包括:
根据所述预设指令的地址段从多个译码器中确定出与所述预设指令的地址段匹配的译码器。
13.根据权利要求12所述的方法,其特征在于,若所述译码结果有效,所述方法还包括:所述译码器将有效的译码结果输出到N个有效端口中的一个有效端口,选择电路选择所述有效端口以输出有效的译码结果;
若所述译码结果无效,所述方法还包括:所述译码器将无效的译码结果输出到一无效端口,选择电路选择所述无效端口以输出无效的译码结果。
14.一种译码方法,其特征在于,包括:
译码器获取预设指令,将所述预设指令的地址段的低位定义为A、高位定义为B和预设位定义为C,其中A、B和C均为自然数,且A<C<B;所述预设指令的地址段具有起始地址和结束地址,将所述起始地址的低位定义为A1、高位定义为B1和预设位定义为C1,将所述结束地址的低位定义为A2、高位定义为B2和预设位定义为C2;其中A1至C1之间的比特位均相同,且包括A1、但不包括C1,其中A2至C2之间的比特位均相同,且包括A2、但不包括C2;其中,C1和C2相同,A1和A2相同,B1和B2相同;
所述译码器被配置的比较算法从所述起始地址的A1和所述结束地址的A2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到所述起始地址的C1和所述结束地址的C2比较完成,所述比较算法为软件算法;
所述译码器的多个比较器从所述起始地址的C1和所述结束地址的C2开始,逐个比较所述起始地址的比特位和所述结束地址的比特位,直到将所述起始地址的B1和所述结束地址的B2比较完成。
15.根据权利要求14所述的方法,其特征在于,所述译码器为N个,其中N为整数,每一所述译码器的比较器的个数为2(B-C+1);
所述译码器获取预设指令之后,所述方法还包括:
根据所述预设指令的地址段从多个译码器中确定出与所述预设指令的地址段匹配的译码器。
16.根据权利要求15所述的方法,其特征在于,若译码结果有效,所述方法还包括:所述译码器将有效的译码结果输出到N个有效端口中的一个有效端口,选择电路选择所述有效端口以输出有效的译码结果;
若所述译码结果无效,所述方法还包括:所述译码器将无效的译码结果输出到一无效端口,选择电路选择所述无效端口以输出无效的译码结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010244657.8A CN111478708B (zh) | 2020-03-31 | 2020-03-31 | 电子设备、芯片、系统总线、译码模块、译码器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010244657.8A CN111478708B (zh) | 2020-03-31 | 2020-03-31 | 电子设备、芯片、系统总线、译码模块、译码器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111478708A CN111478708A (zh) | 2020-07-31 |
CN111478708B true CN111478708B (zh) | 2023-08-11 |
Family
ID=71750223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010244657.8A Active CN111478708B (zh) | 2020-03-31 | 2020-03-31 | 电子设备、芯片、系统总线、译码模块、译码器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111478708B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946717A (en) * | 1995-07-13 | 1999-08-31 | Nec Corporation | Multi-processor system which provides for translation look-aside buffer address range invalidation and address translation concurrently |
US6401197B1 (en) * | 1996-10-31 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor and multiprocessor system |
CN1438612A (zh) * | 1995-02-03 | 2003-08-27 | 株式会社东芝 | 图像信息的编码/译码系统 |
CN1471762A (zh) * | 2000-09-13 | 2004-01-28 | �����ּ�����˾ | 第三代频分双工调制解调交织器 |
CN101599302A (zh) * | 2009-07-23 | 2009-12-09 | 西安空间无线电技术研究所 | 一种基于fpga的ldpc译码器的译码码字的高效存储方法 |
CN102394661A (zh) * | 2011-11-08 | 2012-03-28 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
CN104767536A (zh) * | 2015-03-19 | 2015-07-08 | 深圳市力合微电子股份有限公司 | 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器 |
WO2017215030A1 (zh) * | 2016-06-15 | 2017-12-21 | 庞浩学 | 一种有查询功能的存储器及其查询方法 |
CN110738015A (zh) * | 2019-09-10 | 2020-01-31 | 广东高云半导体科技股份有限公司 | 片上系统及其fpga内核信息处理方法 |
-
2020
- 2020-03-31 CN CN202010244657.8A patent/CN111478708B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1438612A (zh) * | 1995-02-03 | 2003-08-27 | 株式会社东芝 | 图像信息的编码/译码系统 |
US5946717A (en) * | 1995-07-13 | 1999-08-31 | Nec Corporation | Multi-processor system which provides for translation look-aside buffer address range invalidation and address translation concurrently |
US6401197B1 (en) * | 1996-10-31 | 2002-06-04 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor and multiprocessor system |
CN1471762A (zh) * | 2000-09-13 | 2004-01-28 | �����ּ�����˾ | 第三代频分双工调制解调交织器 |
CN101599302A (zh) * | 2009-07-23 | 2009-12-09 | 西安空间无线电技术研究所 | 一种基于fpga的ldpc译码器的译码码字的高效存储方法 |
CN102394661A (zh) * | 2011-11-08 | 2012-03-28 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
CN104767536A (zh) * | 2015-03-19 | 2015-07-08 | 深圳市力合微电子股份有限公司 | 基于ofdm电力线通信系统的qc-ldpc译码方法和译码器 |
WO2017215030A1 (zh) * | 2016-06-15 | 2017-12-21 | 庞浩学 | 一种有查询功能的存储器及其查询方法 |
CN110738015A (zh) * | 2019-09-10 | 2020-01-31 | 广东高云半导体科技股份有限公司 | 片上系统及其fpga内核信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111478708A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590099B (zh) | 一种多主机访问从机的方法、扩展装置及存储介质 | |
US7694029B2 (en) | Detecting miscabling in a storage area network | |
US20070011379A1 (en) | I/O energy reduction using previous bus state and I/O inversion bit for bus inversion | |
CN108848006B (zh) | 一种端口状态的监测方法与装置 | |
CN111478708B (zh) | 电子设备、芯片、系统总线、译码模块、译码器及方法 | |
CN113177015B (zh) | 基于帧头的串口通讯方法和串口芯片 | |
US6898659B2 (en) | Interface device having variable data transfer mode and operation method thereof | |
CN113312304A (zh) | 一种互联装置、主板及服务器 | |
US7463266B2 (en) | Low overhead serial interface | |
US20160042772A1 (en) | Semiconductor devices | |
CN115913816A (zh) | 一种主从设备间通讯的通讯转换装置及方法 | |
US20060094463A1 (en) | Multiprocessing apparatus for a wireless terminal and method thereof | |
KR101321438B1 (ko) | 통신 시스템에서 메모리 확장 장치 | |
CN115827284B (zh) | 片上系统、电子组件、电子设备和传输处理方法 | |
US11277168B2 (en) | Communication device and echo cancellation method | |
CN113900978B (zh) | 数据传输方法、装置和芯片 | |
US11853551B2 (en) | Storage system and data reading method thereof | |
US11514195B2 (en) | Adaptive direct-attached hotplug detection | |
CN112241390B (zh) | 主机互连装置及其方法 | |
US8006012B2 (en) | Data storage system | |
US20220019544A1 (en) | Method and system for facilitating communication between interconnect and system memory on system-on-chip | |
US20120137039A1 (en) | Information processing apparatus | |
KR20080072411A (ko) | 듀얼 포트 메모리로의 액세스 권한 획득 처리 방법 및 이를위한 장치 | |
CN117609128A (zh) | 服务器显示系统、方法、装置、设备及存储介质 | |
JPH08286974A (ja) | キャッシュメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |