[go: up one dir, main page]

CN117707426A - A chip, IO resource sharing method, system on a chip and electronic equipment - Google Patents

A chip, IO resource sharing method, system on a chip and electronic equipment Download PDF

Info

Publication number
CN117707426A
CN117707426A CN202311711712.XA CN202311711712A CN117707426A CN 117707426 A CN117707426 A CN 117707426A CN 202311711712 A CN202311711712 A CN 202311711712A CN 117707426 A CN117707426 A CN 117707426A
Authority
CN
China
Prior art keywords
core
functional module
resource
request
resources
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.)
Pending
Application number
CN202311711712.XA
Other languages
Chinese (zh)
Inventor
刘勋
王立萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hygon Information Technology Co Ltd
Original Assignee
Hygon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hygon Information Technology Co Ltd filed Critical Hygon Information Technology Co Ltd
Priority to CN202311711712.XA priority Critical patent/CN117707426A/en
Publication of CN117707426A publication Critical patent/CN117707426A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microcomputers (AREA)

Abstract

The embodiment of the application provides a core particle, an IO resource sharing method, a system-on-chip and electronic equipment, wherein the core particle comprises: IO resources, wherein the IO resources are connected with the packaging pins; the arbitration logic is at least used for receiving the access requests of the IO resources sent by the plurality of functional modules and arbitrating the use rights of the IO resources for the access requests of the plurality of functional modules; wherein the plurality of functional modules includes: a functional module within the core particle, and a functional module within any pair of end core particles interconnected with the core particle; the transmission path for the functional module in the opposite core to send the access request to the arbitration logic comprises at least: a logical path between the opposite core particle and the core particle; wherein access requests to functional modules within a peer core are transferred from the peer core to the core through a logical path. The embodiment of the application supports the sharing of the IO resources by a plurality of core grains, and can improve the sharing efficiency of the IO resources under the condition of guaranteeing the sharing reliability of the IO resources.

Description

一种芯粒、IO资源共享方法、片上系统及电子设备A chip, IO resource sharing method, system on a chip and electronic equipment

技术领域Technical field

本申请实施例涉及芯片技术领域,具体涉及一种芯粒、IO资源共享方法、片上系统及电子设备。The embodiments of this application relate to the field of chip technology, and specifically relate to a chip, an IO resource sharing method, a system on a chip, and an electronic device.

背景技术Background technique

芯粒(Chiplet)是能够实现一定功能的单元芯片,多个芯粒进行互联可以形成SOC(System On Chip,片上系统)等芯片系统。芯粒中设置有用于芯粒与外设进行输入和输出操作的IO(Input/Output,输入输出)资源,例如芯粒通过IO资源能够与存储设备、网络接口、外部传感器等外部设备(简称外设)进行输入和输出。A chiplet is a unit chip that can achieve certain functions. Multiple chiplets can be interconnected to form chip systems such as SOC (System On Chip). The core particle is provided with IO (Input/Output, input and output) resources for input and output operations between the core particle and peripheral devices. For example, the core particle can communicate with external devices (referred to as external devices) such as storage devices, network interfaces, and external sensors through IO resources. Assume) for input and output.

为节约硬件资源,多个芯粒存在共享IO资源的需求,因此在进行芯片设计时,如何提供能够支持共享IO资源的芯粒,以在保障IO资源的共享可靠性的情况下,提升IO资源的共享效率,成为了本领域技术人员亟需解决的技术问题。In order to save hardware resources, there is a need for multiple cores to share IO resources. Therefore, when designing chips, how to provide cores that can support shared IO resources to improve IO resources while ensuring the reliability of shared IO resources? The sharing efficiency has become an urgent technical problem that technicians in this field need to solve.

发明内容Contents of the invention

有鉴于此,本申请实施例提供一种芯粒、IO资源共享方法、片上系统及电子设备,支持多个芯粒共享IO资源,且能够在保障IO资源的共享可靠性的情况下,提升IO资源的共享效率。In view of this, embodiments of the present application provide a chip, an IO resource sharing method, an on-chip system and an electronic device, which support multiple cores to share IO resources and can improve IO while ensuring the reliability of sharing of IO resources. Resource sharing efficiency.

为实现上述目的,本申请实施例提供如下技术方案。To achieve the above objectives, embodiments of the present application provide the following technical solutions.

第一方面,本申请实施例提供一种芯粒,所述芯粒包括:In a first aspect, embodiments of the present application provide a core particle, which includes:

IO资源,所述IO资源连接封装引脚;IO resources, the IO resources are connected to package pins;

连接于所述IO资源的请求入口的仲裁逻辑,所述仲裁逻辑至少用于,接收多个功能模块发送的所述IO资源的访问请求,为所述多个功能模块的访问请求仲裁所述IO资源的使用权;Arbitration logic connected to the request entry of the IO resource. The arbitration logic is at least used to receive access requests for the IO resources sent by multiple functional modules and arbitrate the IO for the access requests of the multiple functional modules. rights to use resources;

其中,所述多个功能模块包括:所述芯粒内的功能模块、以及与所述芯粒互联的任一对端芯粒内的功能模块;所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径至少包括:所述对端芯粒与所述芯粒之间的逻辑通路;其中,所述对端芯粒内的功能模块的访问请求通过所述逻辑通路,从所述对端芯粒传递到所述芯粒。Wherein, the plurality of functional modules include: functional modules in the core grain, and functional modules in any pair of end core grains interconnected with the core grain; the functional modules in the opposite end core grain communicate to all The transmission path for the access request sent by the arbitration logic at least includes: a logical path between the opposite end core particle and the core particle; wherein the access request for the functional module in the opposite end core particle passes through the logical path, Passed from the opposite end core particle to the core particle.

第二方面,本申请实施例提供一种IO资源共享方法,应用于上述第一方面所述的芯粒,所述方法包括:In a second aspect, embodiments of the present application provide an IO resource sharing method, applied to the core particle described in the first aspect, and the method includes:

接收多个功能模块发送的IO资源的访问请求;Receive IO resource access requests sent by multiple functional modules;

为所述多个功能模块的访问请求仲裁所述IO资源的使用权;Arbitrate the use rights of the IO resources for the access requests of the multiple functional modules;

为获得所述IO资源的使用权的功能模块,授权所述IO资源的使用权,以便获得所述IO资源的使用权的功能模块使用所述IO资源与外设进行数据交互。In order to obtain the use right of the IO resource, the functional module is authorized to use the IO resource, so that the functional module that obtains the use right of the IO resource uses the IO resource to interact with peripheral devices.

第三方面,本申请实施例提供一种片上系统,包括互联的多个芯粒,所述多个芯粒中的部分芯粒或者全部芯粒为如上述第一方面所述的芯粒。In a third aspect, embodiments of the present application provide a system-on-a-chip, including a plurality of interconnected cores, and some or all of the plurality of cores are the cores described in the first aspect.

第四方面,本申请实施例提供一种电子设备,包括如上述第三方面所述的片上系统,和/或,如上述第一方面所述的芯粒。In a fourth aspect, embodiments of the present application provide an electronic device, including the system-on-chip as described in the third aspect, and/or the chip as described in the first aspect.

本申请实施例提供了一种芯粒,芯粒可以包括:IO资源,所述IO资源连接封装引脚;连接于所述IO资源的请求入口的仲裁逻辑,所述仲裁逻辑至少用于,接收多个功能模块发送的所述IO资源的访问请求,为所述多个功能模块的访问请求仲裁所述IO资源的使用权;其中,所述多个功能模块包括:所述芯粒内的功能模块、以及与所述芯粒互联的任一对端芯粒内的功能模块;所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径至少包括:所述对端芯粒与所述芯粒之间的逻辑通路;其中,所述对端芯粒内的功能模块的访问请求通过所述逻辑通路,从所述对端芯粒传递到所述芯粒。Embodiments of the present application provide a core particle. The core particle may include: IO resources, the IO resources are connected to package pins; arbitration logic connected to the request entry of the IO resources, the arbitration logic is at least used to receive Access requests for the IO resources sent by multiple functional modules arbitrate the use rights of the IO resources for the access requests of the multiple functional modules; wherein the multiple functional modules include: functions within the core module, and the functional module in any pair of core particles interconnected with the core particle; the transmission path through which the functional module in the opposite end core particle sends an access request to the arbitration logic at least includes: the opposite end core A logical path between the opposite end core particle and the core particle; wherein the access request to the functional module in the opposite end core particle is passed from the opposite end core particle to the core particle through the logical path.

可以看出,本申请实施例提供的芯粒可以支持芯粒内的功能模块、以及与芯粒互联的任一对端芯粒内的功能模块,共享芯粒的IO资源;其中,对于对端芯粒的功能模块而言,本申请实施例支持通过对端芯粒与IO资源所在芯粒之间的逻辑通路,实现传递对端芯粒的功能模块对于IO资源的访问请求,因此本申请实施例可以实现IO资源被多个芯粒的功能模块所共享。同时,芯粒的IO资源的请求入口设置有仲裁逻辑,仲裁逻辑可以在多个功能模块发送IO资源的访问请求时,为多个功能模块的访问请求仲裁IO资源的使用权;由于仲裁逻辑为硬件形式,因此本申请实施例可以通过硬件仲裁的方式,来为共享IO资源的多个功能模块分配IO资源的使用权,避免软件参与分配IO资源的使用权,能够避免软件参与所带来的IO资源的共享效率较低的问题,从而在以硬件形式的仲裁逻辑保障IO资源的共享可靠性的基础上,提升IO资源的共享效率。因此,本申请实施例可以支持多个芯粒的功能模块共享IO资源,且能够在保障IO资源的共享可靠性的情况下,提升IO资源的共享效率。It can be seen that the core particle provided by the embodiment of the present application can support the functional modules in the core particle and the functional modules in any pair of core particles interconnected with the core particle, and share the IO resources of the core particle; among them, for the opposite end As for the functional module of the core particle, the embodiment of the present application supports the transmission of the access request for the IO resource of the functional module of the opposite end core particle through the logical path between the opposite end core particle and the core particle where the IO resource is located. Therefore, the implementation of this application Examples can realize that IO resources are shared by functional modules of multiple cores. At the same time, the request entry of the core chip's IO resources is equipped with arbitration logic. The arbitration logic can arbitrate the use rights of IO resources for the access requests of multiple functional modules when multiple functional modules send access requests for IO resources; because the arbitration logic is In the form of hardware, the embodiments of this application can allocate the use rights of IO resources to multiple functional modules sharing IO resources through hardware arbitration, avoiding software participation in allocating the use rights of IO resources, and avoiding the problems caused by software participation. This solves the problem of low sharing efficiency of IO resources, thereby improving the sharing efficiency of IO resources on the basis of ensuring the reliability of sharing IO resources with arbitration logic in the form of hardware. Therefore, the embodiments of the present application can support the functional modules of multiple cores to share IO resources, and can improve the sharing efficiency of IO resources while ensuring the reliability of sharing of IO resources.

附图说明Description of the drawings

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to explain the embodiments of the present application or the technical solutions in the prior art more clearly, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings in the following description are only This is an embodiment of the present application. For those of ordinary skill in the art, other drawings can be obtained based on the provided drawings without exerting creative efforts.

图1为封装内多个芯粒的互联示例图。Figure 1 is an example diagram of the interconnection of multiple die within a package.

图2A为封装内多个芯粒的另一互联示例图。FIG. 2A is another example diagram of interconnection of multiple die within a package.

图2B为封装内多个芯粒的再一互联示例图。FIG. 2B is another example diagram of interconnection of multiple die within a package.

图3为本申请实施例提供的封装内芯粒发送访问请求的示例图。Figure 3 is an example diagram of an access request sent by a core in a package provided by an embodiment of the present application.

图4为本申请实施例提供的封装内芯粒发送访问请求的另一示例图。FIG. 4 is another example diagram of an access request sent by a core in a package provided by an embodiment of the present application.

图5为本申请实施例提供的封装内芯粒发送访问请求的再一示例图。FIG. 5 is another example diagram of an access request sent by a core in a package provided by an embodiment of the present application.

图6为本申请实施例提供的仲裁逻辑的一示例图。Figure 6 is an example diagram of the arbitration logic provided by the embodiment of the present application.

图7A为本申请实施例提供的请求寄存器的示例图。FIG. 7A is an example diagram of a request register provided by an embodiment of the present application.

图7B为本申请实施例提供的授权寄存器的示例图。FIG. 7B is an example diagram of an authorization register provided by an embodiment of the present application.

图7C为本申请实施例提供的地址列表的示例图。FIG. 7C is an example diagram of an address list provided by an embodiment of the present application.

图8为本申请实施例提供的IO资源的竞争时序图。Figure 8 is a competition sequence diagram for IO resources provided by the embodiment of the present application.

图9为本申请实施例提供的IO资源共享方法的流程图。Figure 9 is a flow chart of an IO resource sharing method provided by an embodiment of the present application.

具体实施方式Detailed ways

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the scope of protection of this application.

芯粒是一种小芯片裸片,不同功能或不同工艺的多个芯粒互联后,通过先进封装的形式(比如3D封装),可以集成封装为一个芯片系统(芯片系统例如SOC芯片),即多个芯粒互联后可以封装构成芯片系统,互联的多个芯粒中的部分芯粒可以具有不同的功能或采用不同的工艺。A chip is a small chip die. After multiple chips with different functions or different processes are interconnected, they can be integrated and packaged into a chip system (such as a SOC chip) through advanced packaging (such as 3D packaging), that is, Multiple core particles can be packaged to form a chip system after being interconnected. Some of the interconnected core particles can have different functions or use different processes.

芯粒按照功能进行划分,可以分为IO芯粒、存储芯粒、和处理器内核芯粒(比如CPU内核芯粒)等多种不同类型的芯粒。Cores are divided according to their functions and can be divided into many different types of cores such as IO cores, storage cores, and processor cores (such as CPU cores).

其中,IO芯粒是实现芯片系统的IO功能的芯粒,是一种用于管理芯片系统的输入输出的芯粒。例如,IO芯粒可以对接网络通信、USB(Universal Serial Bus、通用串行总线)通信、PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)通信等通信方式,以实现芯片系统的网络通信连接、USB通信连接、PCIE通信连接等通信连接;IO芯粒中可以设置各种接口和控制电路,以便支持不同类型的通信连接。Among them, the IO core is a core that realizes the IO function of the chip system and is a core used to manage the input and output of the chip system. For example, IO chips can be connected to network communication, USB (Universal Serial Bus, Universal Serial Bus) communication, PCIE (Peripheral Component Interconnect Express, high-speed serial computer expansion bus standard) communication and other communication methods to realize network communication of the chip system Connection, USB communication connection, PCIE communication connection and other communication connections; various interfaces and control circuits can be set in the IO chip to support different types of communication connections.

存储芯粒是实现芯片系统的存储功能的芯粒,是一种用于芯片系统的数据存储的芯粒,存储芯粒提供数据读取和写入等处理功能。存储芯粒可以支持不同类型的存储设备,例如随机访问存储器、只读存储器、闪存存储器、固态硬盘等;在一个示例中,DIMM(Dual-Inline-Memory-Modules,双列直插式存储模块)等内存模块可以设置于存储芯粒。The storage core is a core that implements the storage function of the chip system. It is a core used for data storage in the chip system. The storage core provides processing functions such as data reading and writing. Memory chips can support different types of storage devices, such as random access memory, read-only memory, flash memory, solid-state drives, etc.; in one example, DIMM (Dual-Inline-Memory-Modules, dual in-line memory modules) and other memory modules can be placed on the memory core.

处理器内核芯粒是实现芯片系统的处理器内核功能的芯粒,是一种用于执行计算机程序的指令和操作的芯粒,处理器内核芯粒例如CPU内核芯粒等。需要说明的是,芯片系统可以具有多个处理器内核,一个处理器内核可以视为是一个独立的处理单元,设置于一个处理器内核芯粒中。A processor core is a core that implements the processor core function of a chip system. It is a core that is used to execute instructions and operations of a computer program. The processor core is, for example, a CPU core. It should be noted that the chip system can have multiple processor cores, and one processor core can be regarded as an independent processing unit, which is provided in one processor core die.

不同功能的芯粒可以采用不同的工艺进行生产,例如,IO功能、存储功能和处理器内核功能在进行对应芯粒生产制造时,由于面积与功耗随工艺改进的缩减程度是不同的,因此可以将IO功能、存储功能、处理器内核功能设置在不同芯粒上,并采用不同的工艺生产出IO芯粒、存储芯粒、和处理器内核芯粒。Chips with different functions can be produced using different processes. For example, when IO functions, storage functions and processor core functions are manufactured, the area and power consumption are reduced to different extents with process improvements. IO functions, storage functions, and processor core functions can be set on different cores, and different processes can be used to produce IO cores, storage cores, and processor cores.

以IO功能和处理器内核功能对应的芯粒生产制造为例,IO功能的芯粒生产制造所对应的面积与功耗随工艺改进的缩减程度,低于,处理器内核功能的芯粒生产制造所对应的面积与功耗随工艺改进的缩减程度;也就是说,IO功能的芯粒在生产制造时,面积与功耗随工艺改进的缩减程度较低,而处理器内核功能的芯粒在生产制造时,面积与功耗随工艺改进的缩减程度较高。基于此,IO功能的芯粒在生产制造时可以使用较为成熟、流片费用较低、且逻辑密度较低的工艺,以得到IO芯粒,由于芯粒是一种小芯片裸片,IO芯粒也可以称为IO片(IO Die);处理器内核功能的芯粒在生产制造时可以使用较为先进、流片费用较高、逻辑密度较高的工艺,以得到处理器内核芯粒,由于芯粒是一种小芯片裸片,处理器内核芯粒也可以称为内核片(Core Die)。Taking the manufacturing of core chips corresponding to IO functions and processor core functions as an example, the area and power consumption corresponding to the production of core chips for IO functions have been reduced with process improvement, which is lower than that of the core chip manufacturing for processor core functions. The corresponding area and power consumption are reduced with process improvement; that is to say, when the IO function chip is manufactured, the area and power consumption are reduced with process improvement to a low extent, while the processor core function chip is. During manufacturing, area and power consumption are reduced to a greater extent with process improvements. Based on this, IO functional chips can be manufactured using a more mature process with lower tape-out costs and lower logic density to obtain IO chips. Since the chip is a small bare chip, the IO chip Dies can also be called IO dies (IO Dies); chips with processor core functions can be manufactured using more advanced processes with higher tape-out costs and higher logic density to obtain processor core dies. A die is a small chip die, and a processor core die can also be called a core die.

在生成制造IO芯粒(IO片)、处理器内核芯粒(内核片)、存储芯粒等芯粒后,可以将多个芯粒(多个芯粒中可以存在至少两种不同类型的芯粒)集成在同一个封装(Package)之中,从而得到芯片系统(例如SOC芯片),使得芯片系统的生产制造成本得到优化。After generating and manufacturing IO cores (IO chips), processor core cores (core chips), storage cores and other cores, multiple cores (there can be at least two different types of cores in multiple cores) particles) are integrated into the same package to obtain a chip system (such as a SOC chip), which optimizes the manufacturing cost of the chip system.

为便于理解,图1示例性的示出了封装内多个芯粒的互联示例图,如图1所示,芯粒101与芯粒102为封装内互联的两个芯粒,互联可以理解为是芯粒之间存在连接,并可进行信息交互,也就是说,芯粒101与芯粒102之间可以具有相连接的通路,并且芯粒101与芯粒102可以通过相连接的通路进行信息交互。For ease of understanding, Figure 1 illustrates an example diagram of the interconnection of multiple core particles in the package. As shown in Figure 1, core particle 101 and core particle 102 are two core particles interconnected in the package. The interconnection can be understood as There is a connection between the core particles and information can be exchanged. That is to say, there can be a connected path between the core particle 101 and the core particle 102, and the core particle 101 and the core particle 102 can exchange information through the connected path. Interaction.

以多个处理器内核芯粒与IO芯粒互联为例,图2A示例性的示出了封装内多个芯粒的另一互联示例图,如图2A所示,在4个处理器内核芯粒与1个IO芯粒互联的情况下,处理器内核芯粒210、处理器内核芯粒220、处理器内核芯粒230和处理器内核芯粒240,可以分别与IO芯粒250相连接。Taking the interconnection between multiple processor cores and IO cores as an example, Figure 2A schematically shows another interconnection example diagram of multiple cores in the package. As shown in Figure 2A, in four processor cores When the chips are interconnected with one IO core chip, the processor core chip 210, the processor core chip 220, the processor core chip 230, and the processor core chip 240 can be connected to the IO core chip 250 respectively.

需要说明的是,在芯片系统(例如SOC芯片)的封装内部,相互联的芯粒可以是任意类型的芯粒,例如处理器内核芯粒、IO芯粒、存储芯粒等芯粒中的任意两者可以相互的互联,对于相互联的芯粒的类型、数量、设置位置,以及芯粒互联使用的接口协议,本申请实施例并不设限。It should be noted that within the package of a chip system (such as a SOC chip), the interconnected cores can be any type of cores, such as processor cores, IO cores, storage cores, etc. The two can be interconnected with each other. The embodiments of this application do not set limits on the type, quantity, and location of the interconnected core particles, as well as the interface protocol used for interconnecting the core particles.

处理器内核芯粒、IO芯粒、存储芯粒等芯粒中设置有与外设进行输入和输出操作的IO资源,IO资源可以视为是芯粒与外设进行输入和输出操作的IO控制器(例如外设控制器)、IO接口等。IO资源可以通过支持不同协议,以支持芯粒在不同应用场景下与外设的通信,例如IO资源可以是支持I2C(Inter-Integrated Circuit,串行双线总线)、I3C(Improved Inter-Integrated Circuit,改进型串行双线总线)、UART(UniversalAsynchronous Receiver Transmitter,通用异步收发器)等协议的IO控制器、IO接口等。Processor cores, IO cores, storage cores and other cores are equipped with IO resources for input and output operations with peripherals. IO resources can be regarded as IO controls for input and output operations between cores and peripherals. devices (such as peripheral controllers), IO interfaces, etc. IO resources can support different protocols to support communication between chips and peripherals in different application scenarios. For example, IO resources can support I2C (Inter-Integrated Circuit, serial two-wire bus), I3C (Improved Inter-Integrated Circuit) , improved serial two-wire bus), UART (UniversalAsynchronous Receiver Transmitter, Universal Asynchronous Receiver Transmitter) and other IO controllers and IO interfaces for protocols.

在芯片系统(例如SOC芯片)的封装内部,封装引脚可以将芯粒的内部信号、数据和控制信息引出到芯粒外部,出于节约封装引脚的数量的目的,封装内部的封装引脚数量存在一定的限制,因此在进行芯片设计时,可以选择将芯粒中的部分IO资源或者部分芯粒的IO资源不通过封装引出,以节约封装引脚的数量。也就是说,芯粒中的部分IO资源或者部分芯粒的IO资源并未连接到封装引脚,在此情况下,对于IO资源未通过封装引出的芯粒(即对于IO资源没有连接到封装引脚的芯粒),可以共享其他芯粒的通过封装引出的IO资源,以实现与外设的通信。Within the package of a chip system (such as a SOC chip), the package pins can lead the internal signals, data and control information of the chip to the outside of the chip. For the purpose of saving the number of package pins, the package pins inside the package There is a certain limit on the quantity, so when designing a chip, you can choose to not lead out some IO resources in the chip or some of the IO resources in the chip through the package to save the number of package pins. That is to say, some IO resources in the core or part of the IO resources of the core are not connected to the package pins. In this case, for the core whose IO resources are not led out through the package (that is, for the IO resources are not connected to the package pin chip), can share the IO resources derived from other chips through the package to achieve communication with peripherals.

为便于理解,图2B示例性的示出了封装内多个芯粒的再一互联示例图,结合图2A和图2B所示,处理器内核芯粒210设置有IO资源211、处理器内核芯粒220设置有IO资源221、处理器内核芯粒230设置有IO资源231、处理器内核芯粒240设置有IO资源241、IO芯粒250设置有IO资源251和252。其中,IO资源231、IO资源241、IO资源251和252通过封装引出,连接到封装引脚,可以实现与外设的通信;而处理器内核芯粒210的IO资源211和处理器内核芯粒220的IO资源221未通过封装引出,未连接到封装引脚。基于此,为实现处理器内核芯粒210和处理器内核芯粒220与外设的通信,处理器内核芯粒210和处理器内核芯粒220需要共享处理器内核芯粒230的IO资源231,或者,处理器内核芯粒240的IO资源241,或者,IO芯粒250的IO资源251和252,以通过借用处理器内核芯粒230、处理器内核芯粒240和IO芯粒250中任一芯粒的IO资源,以实现与外设的通信。For ease of understanding, FIG. 2B schematically shows another interconnection example diagram of multiple cores in the package. As shown in FIG. 2A and FIG. 2B , the processor core core 210 is provided with an IO resource 211, a processor core The particle 220 is configured with an IO resource 221, the processor core particle 230 is configured with an IO resource 231, the processor core particle 240 is configured with an IO resource 241, and the IO core particle 250 is configured with IO resources 251 and 252. Among them, IO resources 231, IO resources 241, IO resources 251 and 252 are led out through the package and connected to the package pins to achieve communication with peripherals; while the IO resource 211 of the processor core chip 210 and the processor core chip The IO resource 221 of 220 is not brought out through the package and is not connected to the package pins. Based on this, in order to realize communication between the processor core 210 and the processor core 220 and peripherals, the processor core 210 and the processor core 220 need to share the IO resources 231 of the processor core 230, Or, the IO resources 241 of the processor core 240, or the IO resources 251 and 252 of the IO core 250, by borrowing any one of the processor core 230, the processor core 240 and the IO core 250. Core IO resources to achieve communication with peripherals.

需要说明的是,图2B仅是作为一种示例来说明芯粒之间存在共享IO资源的需求,本申请实施例对于芯粒的类型、数量、设置位置,以及芯粒内的IO资源的数量、设置位置并不设限。It should be noted that Figure 2B is only used as an example to illustrate the need to share IO resources between core particles. The embodiment of the present application requires the type, quantity, and placement location of the core particles, as well as the number of IO resources within the core particles. , there is no limit to setting the location.

可以看出,为节约封装引脚数目,封装内部的封装引脚的数量有限,在多个芯粒集成在同一个封装内部时,芯粒之间存在共享IO资源的需求,且部分芯粒需要使用的IO资源可能位于其它芯粒上;这导致同一时间可能存在竞争相同IO资源的多个访问请求,这些访问请求可能来自相同芯粒或者不同芯粒的多个功能模块,从而可能造成IO资源的访问冲突,甚至IO资源的访问处理错误等问题,致使IO资源的共享可靠性难以保障。也就是说,芯粒之间共享IO资源的可靠性称为IO资源的共享可靠性,由于IO资源的访问冲突、IO资源的访问处理错误等问题,可能导致IO资源的共享可靠性较低,因此需要提供IO资源的共享机制,以保障IO资源的共享可靠性。It can be seen that in order to save the number of package pins, the number of package pins inside the package is limited. When multiple cores are integrated into the same package, there is a need to share IO resources between the cores, and some cores need The IO resources used may be located on other cores; this results in multiple access requests competing for the same IO resources at the same time. These access requests may come from the same core or multiple functional modules of different cores, which may cause IO resource Problems such as access conflicts and even IO resource access processing errors make it difficult to guarantee the shared reliability of IO resources. In other words, the reliability of shared IO resources between cores is called the shared reliability of IO resources. Due to issues such as access conflicts of IO resources and access processing errors of IO resources, the shared reliability of IO resources may be low. Therefore, it is necessary to provide a sharing mechanism for IO resources to ensure the reliability of sharing IO resources.

一种实现IO资源共享,并保障IO资源的共享可靠性的方式为:A way to realize IO resource sharing and ensure the reliability of IO resource sharing is:

在片上微处理器运行固件(Firmware),固件通过轮询机制来查询封装内所有IO资源的状态,从而基于所有IO资源的状态,统一对IO资源进行集中式分配与权限管理;同时,固件负责切换不同功能模块使用IO资源的环境配置。其中,在固件对IO资源进行集中式分配与权限管理时,需确保一个IO资源在同一时间内只有一个功能模块具有使用的权限,即使得功能模块之间串行的使用同一IO资源。The on-chip microprocessor runs firmware (Firmware), and the firmware queries the status of all IO resources in the package through a polling mechanism, so as to perform centralized allocation and permission management of IO resources based on the status of all IO resources; at the same time, the firmware is responsible for Switch the environment configuration of IO resources used by different functional modules. Among them, when the firmware performs centralized allocation and permission management of IO resources, it must ensure that only one functional module has the permission to use an IO resource at the same time, that is, the same IO resource can be used serially between functional modules.

上述方式是一种采用软件来保障同一IO资源的串行使用的方式(固件可以是软件形式),当存在访问同一IO资源的多个功能模块时,由于IO资源的访问较为频繁,而软件执行速度较慢,这使得片上微处理器需要使用较多的开销和时间用于切换IO资源的使用权、以及切换不同功能模块使用IO资源的环境配置,导致IO资源的共享效率较低;同时,由于软件执行速度较慢,封装内的IO资源越多,则固件轮询封装内所有IO资源的状态的时间间隔越长,这导致IO资源的共享效率进一步的降低,甚至可能出现功能模块对于IO资源的访问请求在长时间得不到响应的情况。The above method is a way to use software to ensure the serial use of the same IO resource (the firmware can be in the form of software). When there are multiple functional modules accessing the same IO resource, because the IO resource is accessed more frequently, the software execution The speed is slow, which makes the on-chip microprocessor need to use more overhead and time to switch the usage rights of IO resources and switch the environment configuration of different functional modules to use IO resources, resulting in low sharing efficiency of IO resources; at the same time, Since the software execution speed is slower, the more IO resources in the package, the longer the time interval for the firmware to poll the status of all IO resources in the package, which leads to a further reduction in the sharing efficiency of IO resources, and there may even be functional modules that are unable to access the IO resources. The resource access request does not get a response for a long time.

另一种实现IO资源共享,并保障IO资源的共享可靠性的方式为:Another way to realize IO resource sharing and ensure the reliability of IO resource sharing is:

共享IO资源的多个功能模块通过中断机制向片上微处理器申请共享的IO资源的使用权限,片上微处理器运行的固件统一对共享的IO资源进行集中式分配与权限管理,并负责切换不同功能模块使用IO资源的环境配置。其中,固件在对共享的IO资源进行集中式分配与权限管理时,需确保一个IO资源在同一时间内只有一个功能模块具有使用的权限,即使得功能模块之间串行的使用同一IO资源。Multiple functional modules sharing IO resources apply to the on-chip microprocessor for usage rights of the shared IO resources through the interrupt mechanism. The firmware running on the on-chip microprocessor centrally allocates and manages permissions for the shared IO resources, and is responsible for switching between different Function modules use the environment configuration of IO resources. Among them, when the firmware performs centralized allocation and permission management of shared IO resources, it needs to ensure that only one functional module has the permission to use an IO resource at the same time, that is, the same IO resource is used serially between functional modules.

上述方式虽然不需要固件通过轮询机制来查询IO资源的状态,而是由功能模块通过中断机制来申请IO资源的使用权限,但是IO资源的共享方式仍然是一种采用软件来保障同一IO资源的串行使用的方式,当存在访问同一IO资源的多个功能模块时,由于IO资源的访问较为频繁,而软件执行速度较慢,并且中断处理程序较为繁琐,这使得片上微处理器仍然需要使用较多的开销和时间用于切换IO资源的使用权、以及切换不同功能模块使用IO资源的环境配置,导致IO资源的共享效率较低。Although the above method does not require the firmware to query the status of the IO resources through the polling mechanism, but the functional module applies for the use permission of the IO resources through the interrupt mechanism, the sharing method of IO resources is still a way of using software to protect the same IO resources. When there are multiple functional modules accessing the same IO resource, the on-chip microprocessor still needs to be accessed more frequently, the software execution speed is slower, and the interrupt handler is more cumbersome. More overhead and time are used to switch the usage rights of IO resources and switch the environment configuration of different functional modules to use IO resources, resulting in low sharing efficiency of IO resources.

可以看出,上述提供的实现IO资源共享并保障IO资源的共享可靠性的方式,属于软件集中式的分配IO资源使用权限的机制,由于软件执行速度较慢、软件开销较大、并且响应时间较长,这导致IO资源的共享效率较低;并且,随着封装内的芯粒数量增加、IO资源增加、访问IO资源的功能模块的增加,将导致IO资源的共享效率进一步的降低恶化。It can be seen that the above-mentioned method of realizing IO resource sharing and ensuring the reliability of IO resource sharing is a software-centralized mechanism for allocating IO resource usage rights. Due to the slow software execution speed, large software overhead, and response time Longer, this results in lower sharing efficiency of IO resources; and, as the number of chips in the package increases, IO resources increase, and the number of functional modules that access IO resources increases, the sharing efficiency of IO resources will further decrease and deteriorate.

基于此,本申请实施例提供改进的IO资源共享方案,在保障IO资源的共享可靠性的情况下,提升IO资源的共享效率。Based on this, embodiments of the present application provide an improved IO resource sharing solution, which improves the sharing efficiency of IO resources while ensuring the reliability of IO resource sharing.

本申请实施例支持将芯粒的IO资源分配给芯粒内部的功能模块使用,以及共享给与芯粒互联的其他芯粒的功能模块使用,也就是说,对于芯粒共享的IO资源而言,IO资源的访问请求可以来自于芯粒内部(例如来自于芯粒内部的功能模块),也可以来自于芯粒外部(例如来自于与芯粒互联的其他芯粒的功能模块),其中,来自于芯粒外部的访问请求可以通过芯粒之间的逻辑通路,在芯粒之间传输。同时,对于共享IO资源的芯粒,本申请实施例可以在芯粒中设置硬件仲裁逻辑,并通过硬件仲裁逻辑为来自多个功能模块的针对IO资源的访问请求进行使用权的仲裁分配,以支持多个功能模块对于共享的IO资源的访问,进而在保障IO资源的共享可靠性的基础上,通过硬件仲裁逻辑的硬件仲裁使用权的方式,提升IO资源的共享效率。其中,本申请实施例所指的访问IO资源的功能模块可以位于IO资源所在的芯粒,也可以位于与IO资源所在的芯粒互联的其他芯粒。The embodiment of the present application supports allocating the IO resources of the core to the functional modules inside the core, and sharing them with the functional modules of other cores interconnected with the core. That is to say, for the IO resources shared by the core, , the access request for IO resources can come from inside the core particle (for example, from the functional modules inside the core particle), or from outside the core particle (for example, from the functional modules of other core particles interconnected with the core particle), where, Access requests from outside the core particles can be transmitted between core particles through logical paths between core particles. At the same time, for cores that share IO resources, embodiments of the present application can set up hardware arbitration logic in the cores, and use the hardware arbitration logic to arbitrate and allocate usage rights for access requests for IO resources from multiple functional modules, so as to Supports multiple functional modules' access to shared IO resources, thereby improving the sharing efficiency of IO resources through hardware arbitration of usage rights through hardware arbitration logic on the basis of ensuring the reliability of IO resource sharing. Among them, the functional module for accessing IO resources referred to in the embodiments of this application may be located in the core where the IO resource is located, or may be located in other cores interconnected with the core where the IO resource is located.

基于上述思路,本申请实施例可以在共享IO资源的芯粒中设置仲裁逻辑,并将仲裁逻辑连接于IO资源的请求入口,从而仲裁逻辑可以至少用于接收多个功能模块传输给IO资源的访问请求,并为该多个功能模块仲裁IO资源的使用权;其中,给IO资源发送访问请求的多个功能模块可以包括:IO资源所在芯粒内的功能模块、以及与IO资源所在芯粒互联的任一其他芯粒内的功能模块。Based on the above ideas, the embodiments of the present application can set up arbitration logic in the core chip that shares the IO resource, and connect the arbitration logic to the request entry of the IO resource, so that the arbitration logic can be used to at least receive requests from multiple functional modules to the IO resource. access requests, and arbitrate the use rights of IO resources for multiple functional modules; among them, the multiple functional modules that send access requests to IO resources can include: functional modules in the core where the IO resources are located, and functional modules in the core where the IO resources are located. Functional modules in any other interconnected chip.

需要说明的是,IO资源的请求入口是指访问请求进入IO资源的端口。仲裁逻辑可以视为是电路形式的仲裁电路,也可以称为仲裁器。It should be noted that the request entry of IO resources refers to the port through which access requests enter the IO resources. Arbitration logic can be regarded as an arbitration circuit in the form of a circuit, and can also be called an arbiter.

对于设置共享IO资源的芯粒而言,针对于芯粒内部的访问请求(例如来自于芯粒内部的功能模块的访问请求),本申请实施例支持通过芯粒内的控制总线,将访问请求传递到仲裁逻辑(例如仲裁器),以到达IO资源的请求入口;针对于芯粒外部的访问请求(例如来自于与芯粒互联的其他芯粒的功能模块的访问请求),本申请实施例支持通过功能模块所在的芯粒内的控制总线、芯粒之间的逻辑通路、以及IO资源所在芯粒内的控制总线,将访问请求传递到仲裁逻辑(例如仲裁器),以到达IO资源的请求入口。也就是说,本申请实施例提供芯粒内部的访问请求,以及芯粒外部的访问请求到达芯粒的IO资源的传输机制和传输路径。For cores that set up shared IO resources, for access requests inside the core (for example, access requests from functional modules inside the core), embodiments of the present application support sending access requests through the control bus within the core. Passed to the arbitration logic (such as the arbiter) to reach the request entry of the IO resource; for access requests outside the core particle (such as access requests from functional modules of other core particles interconnected with the core particle), the embodiment of this application Supports passing access requests to arbitration logic (such as arbiter) through the control bus in the core where the functional module is located, the logical path between cores, and the control bus in the core where the IO resource is located, to reach the IO resource. Request entry. That is to say, the embodiment of the present application provides a transmission mechanism and transmission path for access requests inside the core particle and access requests outside the core particle to reach the IO resources of the core particle.

作为可选实现,图3示例性的示出了本申请实施例提供的封装内芯粒发送访问请求的示例图,如图3所示,芯粒310的IO资源311通过封装引出,可以作为芯粒之间共享的IO资源;也就是说,芯粒310的IO资源与封装引脚相连接,可进行外设控制,可作为芯粒之间共享的IO资源。芯粒310的IO资源311的请求入口连接有仲裁逻辑312,对于向IO资源311发送访问请求的多个功能模块,仲裁逻辑312可为该多个功能模块仲裁IO资源311的使用权。As an optional implementation, Figure 3 illustrates an example diagram of an access request sent by a core in a package provided by an embodiment of the present application. As shown in Figure 3, the IO resource 311 of the core 310 is extracted through the package and can be used as a core. IO resources shared between chips; that is to say, the IO resources of the chip 310 are connected to the package pins and can be used for peripheral control and can be used as IO resources shared between chips. The request entry of the IO resource 311 of the core particle 310 is connected to an arbitration logic 312. For multiple functional modules that send access requests to the IO resource 311, the arbitration logic 312 can arbitrate the usage rights of the IO resource 311 for the multiple functional modules.

作为可选实现,芯粒内的IO资源可以为多个,对于可被共享的IO资源,本申请实施例可以在每个IO资源的请求入口均连接仲裁逻辑,即一个IO资源可以连接一个仲裁逻辑,从而通过各IO资源对应连接的仲裁逻辑,为功能模块发送给各IO资源的访问请求进行使用权的仲裁。As an optional implementation, there can be multiple IO resources in the core. For IO resources that can be shared, the embodiment of this application can connect arbitration logic to the request entry of each IO resource, that is, one IO resource can be connected to one arbitration Logic, thereby arbitrating the usage rights for the access requests sent by the functional module to each IO resource through the arbitration logic of the corresponding connection of each IO resource.

作为可选实现,向IO资源311发送访问请求的功能模块可以位于芯粒310内,例如芯粒310内的任一功能模块可以通过芯粒310内的控制总线,将针对IO资源311的访问请求传递到仲裁逻辑312。示例的,功能模块313作为芯粒310内的任一功能模块,图3中带箭头的虚线路径031示出了功能模块313发出的访问请求到达仲裁逻辑312的传输路径,也就是说,功能模块313的访问请求可通过芯粒310内的控制总线到达仲裁逻辑312,以到达IO资源311的请求入口。As an optional implementation, the functional module that sends an access request to the IO resource 311 can be located in the core 310. For example, any functional module in the core 310 can send the access request to the IO resource 311 through the control bus in the core 310. Passed to arbitration logic 312. As an example, the functional module 313 is any functional module in the core 310. The dotted path 031 with an arrow in Figure 3 shows the transmission path of the access request issued by the functional module 313 to the arbitration logic 312. That is to say, the functional module The access request of 313 can reach the arbitration logic 312 through the control bus in the core 310 to reach the request entry of the IO resource 311.

相应的,对于共享IO资源的芯粒,芯粒内的功能模块针对IO资源的访问请求的传输路径可以包括:芯粒内的控制总线至仲裁逻辑的路径;其中,芯粒内的功能模块针对IO资源的访问请求,通过芯粒内的控制总线,传递到仲裁逻辑,以达到IO资源的请求入口。Correspondingly, for a core that shares IO resources, the transmission path for the access request of the IO resource by the functional module in the core may include: the path from the control bus in the core to the arbitration logic; where, the functional module in the core is directed to The access request of IO resources is passed to the arbitration logic through the control bus in the core to reach the request entry of IO resources.

作为可选实现,向IO资源311发送访问请求的功能模块可以位于与IO资源311所在芯粒310不同的其他芯粒,当访问请求来自于与IO资源311所在芯粒310相互联的其他芯粒时,访问请求来自的芯粒可以称为对端芯粒。也就是说,对于存在共享IO资源的芯粒而言,与该芯粒互联的针对共享的IO资源发出访问请求的任一其他芯粒可以称为对端芯粒。As an optional implementation, the functional module that sends the access request to the IO resource 311 can be located in another core particle different from the core particle 310 where the IO resource 311 is located. When the access request comes from other core particles interconnected with the core particle 310 where the IO resource 311 is located. When , the core particle from which the access request comes can be called the peer core particle. That is to say, for a core particle with shared IO resources, any other core particle interconnected with the core particle that issues an access request for the shared IO resource can be called a peer core particle.

结合图3所示,向IO资源311发送访问请求的功能模块可以位于与芯粒310互联的对端芯粒320,例如,对端芯粒320内的任一功能模块可以针对芯粒310的IO资源311发送访问请求。对端芯粒320内的功能模块可以将访问请求传递到对端芯粒320内的控制总线,从而通过芯粒310与对端芯粒320之间的逻辑通路,到达芯粒310内的控制总线,进而访问请求通过芯粒310内的控制总线到达仲裁逻辑312,即到达IO资源311的请求入口。示例的,功能模块321作为对端芯粒320内的任一功能模块,图3中带箭头的虚线路径032示出了功能模块321发送的访问请求到达芯粒310的仲裁逻辑312的传输路径,也就是说,功能模块321的访问请求可通过对端芯粒320内的控制总线、芯粒310与对端芯粒320之间的逻辑通路、以及芯粒310内的控制总线到达芯粒310内的仲裁逻辑312,即到达芯粒310内的IO资源311的请求入口。As shown in FIG. 3 , the functional module that sends an access request to the IO resource 311 can be located in the opposite core 320 interconnected with the core 310 . For example, any functional module in the opposite core 320 can target the IO of the core 310 Resource 311 sends an access request. The functional module in the opposite core particle 320 can pass the access request to the control bus in the opposite core particle 320, thereby reaching the control bus in the core particle 310 through the logical path between the core particle 310 and the opposite end core particle 320. , and then the access request reaches the arbitration logic 312 through the control bus in the core 310, that is, reaches the request entry of the IO resource 311. For example, the functional module 321 serves as any functional module in the counterpart core 320. The dotted path 032 with an arrow in Figure 3 shows the transmission path of the access request sent by the functional module 321 to the arbitration logic 312 of the core 310. That is to say, the access request of the functional module 321 can reach the core particle 310 through the control bus in the opposite end core particle 320, the logical path between the core particle 310 and the opposite end core particle 320, and the control bus in the core particle 310. The arbitration logic 312 is the request entry to the IO resource 311 in the core 310 .

相应的,对于共享IO资源的芯粒,对端芯粒内的功能模块针对IO资源的访问请求的传输路径至少包括:对端芯粒与IO资源所在芯粒之间的逻辑通路;其中,对端芯粒内的功能模块针对IO资源的访问请求通过该逻辑通路,从对端芯粒传递到芯粒。例如,对端芯粒内的功能模块针对IO资源的访问请求的传输路径可以包括:对端芯粒的功能模块至对端芯粒内的控制总线的路径、对端芯粒内的控制总线的路径至对端芯粒的逻辑通路的入口的路径、对端芯粒与IO资源所在芯粒之间的逻辑通路、IO资源所在芯粒的逻辑通路的入口至芯粒内的控制总线的路径、芯粒内的控制总线至芯粒内的仲裁逻辑的路径。Correspondingly, for cores that share IO resources, the transmission path for access requests to IO resources from the functional modules in the counterpart core at least includes: the logical path between the counterpart core and the core where the IO resources are located; where, Access requests for IO resources from the functional modules in the end core are passed from the opposite end core to the core through this logical path. For example, the transmission path of the access request for IO resources from the functional module in the opposite end core particle may include: the path from the functional module of the opposite end core particle to the control bus in the opposite end core particle, the path from the control bus in the opposite end core particle. The path to the entrance of the logical path of the opposite end core, the logical path between the opposite end core and the core where the IO resource is located, the path from the entrance of the logical path of the core where the IO resource is located to the control bus in the core, The path from the control bus within the core to the arbitration logic within the core.

可见,本申请实施例提供了一种芯粒,芯粒可以包括:IO资源,所述IO资源连接封装引脚;连接于所述IO资源的请求入口的仲裁逻辑,所述仲裁逻辑至少用于,接收多个功能模块发送的所述IO资源的访问请求,为所述多个功能模块的访问请求仲裁所述IO资源的使用权;其中,所述多个功能模块包括:所述芯粒内的功能模块、以及与所述芯粒互联的任一对端芯粒内的功能模块;所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径至少包括:所述对端芯粒与所述芯粒之间的逻辑通路;其中,所述对端芯粒内的功能模块的访问请求通过所述逻辑通路,从所述对端芯粒传递到所述芯粒。It can be seen that the embodiment of the present application provides a core particle. The core particle may include: IO resources, the IO resources are connected to package pins; arbitration logic connected to the request entry of the IO resources, the arbitration logic is at least used for , receiving access requests for the IO resources sent by multiple functional modules, and arbitrating the use rights of the IO resources for the access requests of the multiple functional modules; wherein the multiple functional modules include: in the core Functional modules, and functional modules in any pair of core particles interconnected with the core particle; the transmission path for the functional module in the opposite end core particle to send an access request to the arbitration logic at least includes: the pair A logical path between the end core particle and the core particle; wherein the access request to the functional module in the end core particle is passed from the opposite end core particle to the core particle through the logical path.

本申请实施例提供的芯粒可以支持芯粒内的功能模块、以及与芯粒互联的任一对端芯粒内的功能模块,共享芯粒的IO资源;其中,对于对端芯粒的功能模块而言,本申请实施例支持通过对端芯粒与IO资源所在芯粒之间的逻辑通路,实现传递对端芯粒的功能模块对于IO资源的访问请求,因此本申请实施例可以实现IO资源被多个芯粒的功能模块所共享。同时,芯粒的IO资源的请求入口设置有仲裁逻辑,仲裁逻辑可以在多个功能模块发送IO资源的访问请求时,为多个功能模块的访问请求仲裁IO资源的使用权;由于仲裁逻辑为硬件形式,因此本申请实施例可以通过硬件仲裁的方式,来为共享IO资源的多个功能模块分配IO资源的使用权,避免软件参与分配IO资源的使用权,能够避免软件参与所带来的IO资源的共享效率较低的问题,从而在以硬件形式的仲裁逻辑保障IO资源的共享可靠性的基础上,提升IO资源的共享效率。因此,本申请实施例可以支持多个芯粒的功能模块共享IO资源,且能够在保障IO资源的共享可靠性的情况下,提升IO资源的共享效率。The core particle provided by the embodiment of the present application can support the functional modules in the core particle and the functional modules in any pair of core particles interconnected with the core particle, and share the IO resources of the core particle; among them, for the functions of the opposite end core particle In terms of modules, the embodiments of the present application support the transfer of access requests for IO resources from the functional modules of the opposite end core through the logical path between the opposite end core and the core where the IO resources are located. Therefore, the embodiments of the present application can realize the IO Resources are shared by functional modules of multiple cores. At the same time, the request entry of the core chip's IO resources is equipped with arbitration logic. The arbitration logic can arbitrate the use rights of IO resources for the access requests of multiple functional modules when multiple functional modules send access requests for IO resources; because the arbitration logic is In the form of hardware, the embodiments of this application can allocate the use rights of IO resources to multiple functional modules sharing IO resources through hardware arbitration, avoiding software participation in allocating the use rights of IO resources, and avoiding the problems caused by software participation. This solves the problem of low sharing efficiency of IO resources, thereby improving the sharing efficiency of IO resources on the basis of ensuring the reliability of sharing IO resources with arbitration logic in the form of hardware. Therefore, the embodiments of the present application can support the functional modules of multiple cores to share IO resources, and can improve the sharing efficiency of IO resources while ensuring the reliability of sharing of IO resources.

需要解释的是,图3仅是示出了封装内芯粒发送访问请求所涉及的主要设计,芯粒310也可以存在未被图3示出的其他设计,对端芯粒320也可以存在未被图3示出的其他设计,本申请实施例对于芯粒内部的具体设计情况并不设限。例如,对端芯粒320内部也可以设置IO资源,本申请实施例并不设限对端芯粒320的IO资源是否通过封装引出,即不限制对端芯粒320的IO资源是否连接封装引脚;也就是说,在对端芯粒320的IO资源未连接封装引脚的情况下,对端芯粒320可以共享芯粒310的IO资源,以进行外设控制;在对端芯粒320的IO资源本身连接封装引脚的情况下,对端芯粒320的IO资源可以作为被其他芯粒共享的IO资源,同时,本申请实施例也可支持对端芯粒320使用芯粒310的IO资源,以进行外设控制。It should be explained that Figure 3 only shows the main design involved in sending an access request to the core in the package. The core 310 may also have other designs not shown in Figure 3, and the opposite core 320 may also have other designs. As for the other designs shown in Figure 3, the embodiments of this application do not limit the specific design conditions inside the core particles. For example, IO resources can also be set inside the counterpart core 320. The embodiment of the present application does not limit whether the IO resources of the counterpart core 320 are led out through the package, that is, it does not limit whether the IO resources of the counterpart core 320 are connected to the package lead. pin; that is to say, when the IO resources of the opposite die 320 are not connected to the package pins, the opposite die 320 can share the IO resources of the die 310 for peripheral control; when the opposite die 320 When the IO resources themselves are connected to the package pins, the IO resources of the opposite end die 320 can be used as IO resources shared by other die. At the same time, the embodiment of the present application can also support the use of the end die 320 of the die 310. IO resources for peripheral control.

需要说明的是,芯粒内的控制总线可以视为是在芯粒内部的不同功能模块之间传输控制信号和命令的通信通道;芯粒之间的逻辑通路可用于在芯粒之间传输控制信号。因此对于互联的芯粒而言,通过芯粒内部各自的控制总线、以及芯粒之间的逻辑通路,可以实现在互联的芯粒之间传输控制信号;从而,对于设置共享IO资源的芯粒而言,对端芯粒的功能模块传输给IO资源的访问请求,可以通过对端芯粒与IO资源所在芯粒之间的逻辑通路,从对端芯粒传递到IO资源所在芯粒。It should be noted that the control bus within the core can be regarded as a communication channel for transmitting control signals and commands between different functional modules within the core; the logical paths between cores can be used to transmit control between cores. Signal. Therefore, for interconnected cores, control signals can be transmitted between interconnected cores through their respective control buses and logical paths between cores; thus, for cores that share IO resources, In other words, the access request transmitted to the IO resource from the functional module of the opposite end core can be passed from the opposite end core to the core where the IO resource is located through the logical path between the opposite end core and the core where the IO resource is located.

作为可选实现,在芯片系统(例如SOC芯片)的封装内,互联的芯粒之间的逻辑通路可以采用设置于芯粒的芯粒连接器(Chiplet Link)进行连接,也就是说,芯粒连接器作为一种连接器,可用于连接互联的芯粒之间的逻辑通路。进一步的,互联的芯粒之间可以通过CFOP(Control Fabric On Package,封装内控制网络)进行控制信号的传输。作为可选实现,芯粒可以具有多个芯粒连接器,芯粒之间的芯粒连接器可以一对一的连接,例如,一个芯粒的一个芯粒连接器,连接另一个芯粒的一个芯粒连接器,以实现连接芯粒之间的逻辑通路。在可选实现中,IO资源可以挂载在CFOP下并进行统一编址,从而任意芯粒的功能模块可以通过IO资源的编址地址,以CFOP访问任意芯粒上的任意IO资源,例如,功能模块发送的访问请求可以指示需要使用的IO资源的编址地址,从而传递到该编址地址下的IO资源的请求入口对应连接的仲裁逻辑。As an optional implementation, within the package of a chip system (such as a SOC chip), the logical paths between interconnected chips can be connected using chiplet connectors (Chiplet Links) provided on the chips. That is to say, the chiplets A connector is a type of connector that can be used to connect logical paths between interconnected chips. Furthermore, control signals can be transmitted between interconnected core chips through CFOP (Control Fabric On Package, control network in package). As an optional implementation, a core can have multiple core connectors, and the core connectors between cores can be connected one-to-one. For example, a core connector of one core can be connected to another core connector. A die connector to connect logical paths between die. In an optional implementation, IO resources can be mounted under CFOP and uniformly addressed, so that the functional module of any core can access any IO resource on any core through CFOP through the addressing address of the IO resource, for example, The access request sent by the functional module can indicate the addressing address of the IO resource that needs to be used, thereby passing it to the arbitration logic of the connection corresponding to the request entry of the IO resource under the addressing address.

在一个示例中,以图2B所示的4个处理器内核芯粒与1个IO芯粒相互联为例,处理器内核芯粒210、处理器内核芯粒220、处理器内核芯粒230和处理器内核芯粒240的芯粒连接器,可以分别与IO芯粒250的芯粒连接器相连接,从而实现连接处理器内核芯粒210与IO芯粒250之间的逻辑通路、连接处理器内核芯粒220与IO芯粒250之间的逻辑通路、连接处理器内核芯粒230与IO芯粒250之间的逻辑通路、以及连接处理器内核芯粒240与IO芯粒250之间的逻辑通路;并且,在处理器内核芯粒210、处理器内核芯粒220、处理器内核芯粒230和处理器内核芯粒240分别与IO芯粒250连接的逻辑通路上,可以通过CFOP进行控制信号的传输。In one example, taking the interconnection between four processor core chips and one IO core shown in Figure 2B, the processor core core 210, the processor core core 220, the processor core core 230 and The core connector of the processor core 240 can be connected to the core connector of the IO core 250 respectively, thereby realizing the logical path between the processor core 210 and the IO core 250 and connecting the processor. The logical path between the core die 220 and the IO die 250, the logical path connecting the processor core die 230 and the IO die 250, and the logic connecting the processor core die 240 and the IO die 250 path; and, on the logical paths that the processor core die 210, the processor core die 220, the processor core die 230, and the processor core die 240 are respectively connected to the IO core die 250, control signals can be carried out through CFOP transmission.

基于芯粒连接器和CFOP的设置,作为可选实现,针对对端芯粒的功能模块传输给IO资源的访问请求,访问请求可通过对端芯粒内的控制总线到达对端芯粒的芯粒连接器,从而基于对端芯粒的芯粒连接器以及IO资源所在芯粒的芯粒连接器所连接的逻辑通路,访问请求可以通过逻辑通路上布置的CFOP,传输到IO资源所在的芯粒;进而访问请求可以通过IO资源所在芯粒内的控制总线,到达IO资源所在芯粒的仲裁逻辑,以达到IO资源的请求入口。Based on the settings of the core chip connector and CFOP, as an optional implementation, for the access request transmitted to the IO resource from the functional module of the opposite end core, the access request can reach the core of the opposite end core through the control bus in the opposite end core. Therefore, based on the logical path connected by the core connector of the opposite core and the core connector of the core where the IO resource is located, the access request can be transmitted to the core where the IO resource is located through the CFOP arranged on the logical path. The access request can then pass through the control bus in the core where the IO resource is located and reach the arbitration logic of the core where the IO resource is located to reach the request entry of the IO resource.

为便于理解,作为可选实现,图4示例性的示出了本申请实施例提供的封装内芯粒发送访问请求的另一示例图,结合图3和图4所示,芯粒310的IO资源311作为芯粒之间共享的IO资源,并且芯粒310以及对端芯粒320分别设置有芯粒连接器,芯粒310的芯粒连接器和对端芯粒320的芯粒连接器可以连接芯粒310与对端芯粒320之间的逻辑通路,以使得芯粒310与对端芯粒320之间存在能够进行信息交互的通路。也就是说,对于互联的芯粒,芯粒各自的芯粒连接器可以连接互联的芯粒之间的逻辑通路。For ease of understanding, as an optional implementation, Figure 4 schematically shows another example diagram of the core in the package sending an access request provided by the embodiment of the present application. As shown in Figure 3 and Figure 4, the IO of the core 310 The resource 311 is an IO resource shared between cores, and the core 310 and the opposite core 320 are respectively provided with core connectors. The core connector of the core 310 and the core connector of the opposite core 320 can A logical path is connected between the core particle 310 and the opposite end core particle 320, so that there is a path capable of information exchange between the core particle 310 and the opposite end core particle 320. That is, for interconnected die, the die's respective die connectors can connect the logical paths between the interconnected die.

在一个示例中,芯粒连接器作为芯粒之间的连接器,可以是接口的形式,例如芯粒连接器可以采用UCIE(Universal Chiplet Interconnect Express,通用芯片互连标准)等接口协议以及SerDes(Serializer-Deserializer,串行器与解串器)等技术。In one example, the chip connector serves as a connector between chips and can be in the form of an interface. For example, the chip connector can adopt interface protocols such as UCIE (Universal Chiplet Interconnect Express) and SerDes ( Serializer-Deserializer, serializer and deserializer) and other technologies.

在使用芯粒连接器连接互联的芯粒之间的逻辑通路的基础上,芯粒之间的控制信号可以通过CFOP传输,CFOP可以视为芯片系统的封装内部用于连接和管理芯粒之间通信和协同工作的总线网络,例如芯粒之间的逻辑通路上用于传输控制信号的总线网络。例如,结合图4所示,芯粒310和对端芯粒320之间的逻辑通路上可以布置CFOP,从而芯粒310和对端芯粒320之间的控制信号可以通过逻辑通路上的CFOP传输。Based on the use of die connectors to connect logical paths between interconnected die, control signals between die can be transmitted through CFOP. CFOP can be regarded as the inside of the package of the chip system for connecting and managing between die. A bus network for communication and collaborative work, such as a bus network used to transmit control signals on logical paths between chips. For example, as shown in FIG. 4 , a CFOP can be arranged on the logical path between the core particle 310 and the opposite end core particle 320 , so that the control signal between the core particle 310 and the opposite end core particle 320 can be transmitted through the CFOP on the logical path. .

作为示例,结合图3和图4所示,带箭头的虚线路径031示出了功能模块313发出的访问请求到达仲裁逻辑312的传输路径。As an example, as shown in FIG. 3 and FIG. 4 , the dotted path 031 with an arrow shows the transmission path through which the access request issued by the functional module 313 reaches the arbitration logic 312 .

作为示例,图4中带箭头的虚线路径0321所示传输路径可以是图3中带箭头的虚线路径032所示传输路径的一种细化示例,如图4所示,虚线路径0321示出了对端芯粒320的功能模块321发送的访问请求到达芯粒310的仲裁逻辑312的传输路径。其中,对端芯粒320的功能模块321的访问请求,可以通过对端芯粒320内的控制总线到达对端芯粒320的芯粒连接器,从而基于对端芯粒320的芯粒连接器以及芯粒310的芯粒连接器所连接的逻辑通路,访问请求可以通过逻辑通路上布置的CFOP,传输到芯粒310的芯粒连接器;进而访问请求可以通过芯粒310内的控制总线,到达芯粒310的仲裁逻辑312,即到达芯粒310内的IO资源311的请求入口。As an example, the transmission path shown by the dotted path 0321 with an arrow in Figure 4 may be a refined example of the transmission path shown by the dotted path 032 with an arrow in Figure 3. As shown in Figure 4, the dotted path 0321 shows The access request sent by the functional module 321 of the end core particle 320 reaches the transmission path of the arbitration logic 312 of the core particle 310 . Among them, the access request to the functional module 321 of the end core 320 can reach the core connector of the opposite end core 320 through the control bus in the opposite end core 320, thus based on the core connector of the opposite end core 320 As well as the logical path connected to the core particle connector of the core particle 310, the access request can be transmitted to the core particle connector of the core particle 310 through the CFOP arranged on the logical path; and then the access request can pass through the control bus in the core particle 310. The request entry that reaches the arbitration logic 312 of the core particle 310 is the IO resource 311 in the core particle 310 .

相应的,对于共享IO资源的芯粒,对端芯粒内的功能模块针对IO资源的访问请求的传输路径可以包括:对端芯粒内的功能模块至对端芯粒内的控制总线的路径、对端芯粒内的控制总线至对端芯粒的芯粒连接器的路径、对端芯粒的芯粒连接器以及IO资源所在芯粒的芯粒连接器连接的逻辑通路、IO资源所在芯粒的芯粒连接器至芯粒内的控制总线的路径、芯粒内的控制总线至芯粒内的仲裁逻辑的路径;Correspondingly, for cores that share IO resources, the transmission path for access requests to IO resources from the functional modules in the opposite core may include: the path from the functional modules in the opposite core to the control bus in the opposite core. , the path from the control bus in the opposite core to the core connector of the opposite core, the logical path connected to the core connector of the opposite core and the core connector of the core where the IO resources are located, and where the IO resources are located The path from the core connector of the core to the control bus in the core, and the path from the control bus in the core to the arbitration logic in the core;

其中,对端芯粒内的功能模块针对IO资源的访问请求,由对端芯粒内的控制总线传递到所述对端芯粒的芯粒连接器,并基于对端芯粒的芯粒连接器以及IO资源所在芯粒的芯粒连接器连接的逻辑通路,通过所述逻辑通路上设置的封装内控制网络,传递到IO资源所在芯粒的芯粒连接器,IO资源所在芯粒的芯粒连接器通过IO资源所在芯粒内的控制总线,将传递到IO资源所在芯粒的芯粒连接器的访问请求,传递到IO资源所在芯粒的仲裁逻辑。Among them, the access request for IO resources from the functional module in the opposite end core is transmitted from the control bus in the opposite end core to the core connector of the opposite end core, and is based on the core connection of the opposite end core. The logic path connected to the device and the core connector of the core where the IO resource is located is passed to the core connector of the core where the IO resource is located through the in-package control network set on the logic path. The core of the core where the IO resource is located The chip connector passes the access request to the chip connector of the chip where the IO resource is located through the control bus in the chip where the IO resource is located, to the arbitration logic of the chip where the IO resource is located.

在一个示例中,以两个处理器内核芯粒的互联为例,图5示例性的示出了本申请实施例提供的封装内芯粒发送访问请求的再一示例图,如图5所示,处理器内核芯粒510和处理器内核芯粒520相互联,并且处理器内核芯粒510的芯粒连接器与处理器内核芯粒520的芯粒连接器,连接处理器内核芯粒510和处理器内核芯粒520之间的逻辑通路,逻辑通路上通过CFOP传输控制信号。在可选实现中,处理器内核芯粒510和处理器内核芯粒520均可以具有多个芯粒连接器。In one example, taking the interconnection of two processor core chips as an example, Figure 5 schematically shows yet another example diagram of an access request sent by a packaged core chip provided by an embodiment of the present application, as shown in Figure 5 , the processor core die 510 and the processor core die 520 are interconnected, and the die connector of the processor core die 510 and the die connector of the processor core die 520 connect the processor core die 510 and The logical path between the processor core chips 520 transmits control signals through the CFOP on the logical path. In alternative implementations, both processor core die 510 and processor core die 520 may have multiple die connectors.

处理器内核芯粒510和处理器内核芯粒520中的器件,均可以通过内核片内控制总线进行连接,内核片内控制总线可以是芯粒内的控制总线的一种示例。如图5所示,处理器内核芯粒510和处理器内核芯粒520中均可以设置有通过内核片内控制总线相连接的内核(数量可以为多个)、芯粒连接器(数量可以为多个)、内存控制器(数量可以为多个,例如处理器内核芯粒510中的内存控制器1至N,以及处理器内核芯粒520中的内存控制器1至N)、IO控制器(数量可以为多个)、以及设置于IO控制器的请求入口的仲裁器,芯粒中的仲裁器的数量可以与IO控制器的数量相对应。Devices in the processor core die 510 and the processor core die 520 may be connected through a core on-chip control bus, which may be an example of an intra-chip control bus. As shown in FIG. 5 , both the processor core die 510 and the processor core die 520 may be provided with cores (the number may be multiple) and core connectors (the number may be multiple) connected through the core on-chip control bus. Multiple), memory controller (the number may be multiple, such as memory controllers 1 to N in the processor core core 510, and memory controllers 1 to N in the processor core core 520), IO controller (the number can be multiple), and the arbiter provided at the request entrance of the IO controller. The number of arbiters in the core chip can correspond to the number of IO controllers.

以处理器内核芯粒510中的IO控制器可以被共享进行示例(IO控制器为IO资源的一种示例),例如,处理器内核芯粒510中的IO控制器连接封装引脚,则处理器内核芯粒510中的IO控制器支持被处理器内核芯粒510中的内存控制器访问,以及支持被处理器内核芯粒520中的内存控制器访问,此时,处理器内核芯粒520可以视为是与处理器内核芯粒510互联的对端处理器内核芯粒。需要说明的是,内存控制器可以视为是处理器内核芯粒中的一种功能模块,具有访问IO控制器,以进行外设控制的需求;本申请实施例也支持由处理器内核芯粒中其他类型的功能模块针对IO控制器发出访问请求,此处仅是以内存控制器针对IO控制器发出访问请求进行示例性说明。As an example, the IO controller in the processor core chip 510 can be shared (the IO controller is an example of IO resources). For example, if the IO controller in the processor core chip 510 is connected to the package pin, then the process The IO controller in the processor core die 510 supports access by the memory controller in the processor core die 510 and supports access by the memory controller in the processor core die 520. At this time, the processor core die 520 It can be regarded as the peer processor core chip interconnected with the processor core chip 510 . It should be noted that the memory controller can be regarded as a functional module in the processor core chip and has the need to access the IO controller for peripheral control; the embodiment of this application also supports the processor core chip. Other types of functional modules in the module issue access requests to the IO controller. Here, the memory controller issues an access request to the IO controller as an example.

结合图5所示,处理器内核芯粒510的内存控制器针对处理器内核芯粒510中的IO控制器发出访问请求,则访问请求的传输路径属于处理器内核芯粒510的内部路径;如图5所示带箭头的虚线501所示,处理器内核芯粒510的内存控制器1,通过处理器内核芯粒510的内核片内控制总线,向处理器内核芯粒510的IO控制器发出访问请求,并且访问请求经过处理器内核芯粒510的仲裁器进行使用权的仲裁。As shown in Figure 5, the memory controller of the processor core core 510 issues an access request to the IO controller in the processor core core 510, then the transmission path of the access request belongs to the internal path of the processor core core 510; such as As shown in the dotted line 501 with an arrow in Figure 5, the memory controller 1 of the processor core chip 510 sends a signal to the IO controller of the processor core chip 510 through the core on-chip control bus of the processor core chip 510. The access request is arbitrated through the arbiter of the processor core chip 510 for usage rights.

处理器内核芯粒520的内存控制器针对处理器内核芯粒510中的IO控制器发出访问请求,则访问请求的传输路径包含处理器内核芯粒510的外部路径和内部路径;如图5所示带箭头的虚线502所示,处理器内核芯粒520的内存控制器N,通过处理器内核芯粒520的内核片内控制总线、处理器内核芯粒520的芯粒控制器、处理器内核芯粒510的芯粒连接器、处理器内核芯粒510的内核片内控制总线,向处理器内核芯粒510的IO控制器发出访问请求,并且访问请求经过处理器内核芯粒510的仲裁器进行使用权的仲裁。The memory controller of the processor core core 520 issues an access request to the IO controller in the processor core core 510, and the transmission path of the access request includes the external path and the internal path of the processor core core 510; as shown in Figure 5 As shown by the dotted line 502 with an arrow, the memory controller N of the processor core die 520 passes through the core on-chip control bus of the processor core die 520, the die controller of the processor core die 520, and the processor core. The die connector of the core die 510 and the core on-chip control bus of the processor core die 510 issue an access request to the IO controller of the processor core die 510, and the access request passes through the arbiter of the processor core die 510. Arbitrate rights of use.

需要说明的是,图5仅是以处理器内核芯粒510的IO控制器被共享为例进行说,处理器内核芯粒520也可以设置IO控制器,并且处理器内核芯粒520的IO控制器如果连接封装引脚,则也可以作为共享的IO控制器,并相应的设置仲裁器。本申请实施例并不设限互联的芯粒的类型、数量、位置,芯粒中的IO资源的类型、数目、位置,以及芯粒之间的逻辑通路、访问请求的传输路径的形式,任意一个芯粒中的任何一个功能模块(例如内核、内存控制器或者其它功能模块)均可通过封装内控制网络中的任何一条路径,共享其它芯粒中的任何一个连接封装引脚的IO资源;另外,在可选实现中,一个IO资源可对应连接一个仲裁器,以进行使用权的仲裁。It should be noted that Figure 5 only takes the example of the IO controller of the processor core 510 being shared. The processor core 520 can also be set with an IO controller, and the IO control of the processor core 520 The controller can also act as a shared IO controller if it is connected to the package pins, and the arbiter is set accordingly. The embodiments of this application do not limit the type, number, and location of interconnected core particles, the type, number, and location of IO resources in the core particles, as well as the logical paths between core particles, and the form of the transmission path of access requests. Any functional module in a chip (such as the core, memory controller or other functional module) can share any IO resource connected to the package pin in other chips through any path in the control network within the package; In addition, in an optional implementation, one IO resource can be connected to an arbiter to arbitrate usage rights.

作为可选实现,仲裁逻辑可以设置有用于对发送访问请求的功能模块进行标识的请求寄存器,图6示例性的示出了本申请实施例提供的仲裁逻辑的示例图,结合图3、图4、和图6所示,以芯粒310的IO资源311作为芯粒之间共享的IO资源为例,则仲裁逻辑312连接于IO资源311的请求入口,且仲裁逻辑312可以设置请求寄存器。As an optional implementation, the arbitration logic can be provided with a request register for identifying the functional module that sends the access request. Figure 6 illustrates an example diagram of the arbitration logic provided by the embodiment of the present application, combined with Figures 3 and 4 , and as shown in Figure 6, taking the IO resource 311 of the core 310 as an IO resource shared between cores as an example, the arbitration logic 312 is connected to the request entry of the IO resource 311, and the arbitration logic 312 can set the request register.

其中,请求寄存器可以具有请求位,一个请求位对应一个功能模块,也就是说,请求寄存器保存有不同功能模块对应的请求位;其中,如果一个请求位的数值被设置为第一值(第一值比如1),则表示第一值的请求位对应的功能模块请求IO资源的使用权,进而仲裁逻辑可对该功能模块进行IO资源的使用权仲裁。Among them, the request register can have a request bit, and one request bit corresponds to a functional module. That is to say, the request register stores request bits corresponding to different functional modules; among them, if the value of a request bit is set to the first value (the first A value such as 1) indicates that the functional module corresponding to the request bit of the first value requests the right to use IO resources, and then the arbitration logic can arbitrate the right to use IO resources for the functional module.

在一种可选实现中,功能模块向仲裁逻辑发送IO资源的访问请求可以是,通过将请求寄存器中功能模块对应请求位的数值设置为第一值来实现,此处所指的功能模块可以是位于IO资源所在的芯粒,也可以是位于与IO资源所在芯粒互联的对端芯粒。也就是说,功能模块发送的IO资源的访问请求,用于将请求寄存器中对应的请求位的数值设置为第一值。In an optional implementation, the functional module sends an IO resource access request to the arbitration logic by setting the value of the request bit corresponding to the functional module in the request register to the first value. The functional module referred to here can It is located in the core where the IO resource is located, or it can be located in the opposite core that is interconnected with the core where the IO resource is located. That is to say, the IO resource access request sent by the functional module is used to set the value of the corresponding request bit in the request register to the first value.

在可选实现中,功能模块可以通过向IO资源发送访问请求的传输路径,在仲裁逻辑的请求寄存器中,将功能模块对应的请求位设置为第一值,以实现向仲裁逻辑传输IO资源的访问请求。位于IO资源所在芯粒的功能模块发送访问请求的传输路径、以及位于对端芯粒的功能模块发送访问请求的传输路径,可以参照前文相应部分的描述,此处不再赘述。In an optional implementation, the functional module can send the transmission path of the access request to the IO resource, and set the request bit corresponding to the functional module to the first value in the request register of the arbitration logic to realize the transmission of the IO resource to the arbitration logic. Access request. The transmission path for the functional module located in the core where the IO resource is located to send the access request, and the transmission path for the functional module located at the opposite end core to send the access request, can refer to the description of the corresponding parts above, and will not be repeated here.

在进一步的可选实现中,功能模块在获得IO资源的使用权限,并且使用IO资源结束后,功能模块可以通过将请求寄存器中对应请求位的数值设置为第零值(第零值比如0),以实现请求释放IO资源。相应的,仲裁逻辑还可以用于,在功能模块获得IO资源的使用权限,并且使用IO资源结束后,接收功能模块发送的释放IO资源的释放请求,该释放请求用于将请求寄存器中对应的请求位的数值设置为第零值,以实现请求释放IO资源。需要说明的是,功能模块可以通过发送访问请求的传输路径,来传输释放请求,以将请求寄存器中对应请求位的数值设置为第零值;也就是说,功能模块传输释放请求的传输路径,与功能模块向仲裁逻辑发送访问请求的传输路径相对应。In a further optional implementation, after the function module obtains the permission to use the IO resource and ends using the IO resource, the function module can set the value of the corresponding request bit in the request register to the zeroth value (the zeroth value such as 0) , to implement the request to release IO resources. Correspondingly, the arbitration logic can also be used to receive a release request to release the IO resource sent by the functional module after the functional module obtains the permission to use the IO resource and ends using the IO resource. This release request is used to transfer the corresponding IO resource in the request register. The value of the request bit is set to the zeroth value to request the release of IO resources. It should be noted that the functional module can transmit the release request by sending the transmission path of the access request to set the value of the corresponding request bit in the request register to the zeroth value; that is, the functional module transmits the transmission path of the release request, Corresponds to the transmission path through which the functional module sends access requests to the arbitration logic.

可以看出,请求寄存器设置于仲裁逻辑内,而请求寄存器的数值由对应的功能模块进行操控和设置,以使得仲裁逻辑可以就近通过各请求寄存器的数值,确认各个功能模块的请求;即,功能模块在请求使用IO资源时,可以通过将仲裁逻辑内功能模块对应的请求寄存器置为第一值,以使得仲裁逻辑可以通过值为第一值的请求寄存器,确认请求使用IO资源的功能模块;功能模块在释放IO资源时,可以通过将仲裁逻辑内功能模块对应的请求寄存器的数值进行清除(比如清除为第零值),以使得仲裁逻辑可以通过值为第零值的请求寄存器,确认释放IO资源的功能模块。通过上述设置可以使得请求寄存器靠近需要使用请求器寄存器的数值的仲裁逻辑,从而优化物理实现。It can be seen that the request register is set in the arbitration logic, and the value of the request register is controlled and set by the corresponding functional module, so that the arbitration logic can confirm the request of each functional module through the value of each request register nearby; that is, the function When the module requests the use of IO resources, it can set the request register corresponding to the functional module in the arbitration logic to the first value, so that the arbitration logic can confirm the functional module requesting the use of IO resources through the request register with the first value; When releasing IO resources, the functional module can clear the value of the request register corresponding to the functional module in the arbitration logic (for example, clear it to the zeroth value), so that the arbitration logic can confirm the release through the request register whose value is the zeroth value. Function module of IO resources. Through the above settings, the request register can be placed close to the arbitration logic that needs to use the value of the requester register, thereby optimizing the physical implementation.

在一个实现示例中,结合图5所示的示例,假设处理器内核芯粒510和处理器内核芯粒520中分别设置有N个内存控制器,例如,内存控制器1至内存控制器N,则请求寄存器可以为处理器内核芯粒510的N个内存控制器设置N个请求位,为处理器内核芯粒520的N个内存控制器设置N个请求位;也就是说,本申请实施例可以为每个可能访问共享的IO资源的功能模块设置请求位,一个请求位对应一个功能模块,以通过请求位的数值表示对应功能模块当前是处于请求使用IO资源的状态,还是处于请求释放IO资源的状态;例如,功能模块的请求位的值为第一值,则表示功能模块当前请求使用IO资源,功能模块的请求位的值为第零值,则表示功能模块当前请求释放IO资源或者当前未请求使用IO资源。In an implementation example, combined with the example shown in FIG. 5 , it is assumed that N memory controllers are respectively provided in the processor core core 510 and the processor core core 520 , for example, memory controller 1 to memory controller N, Then the request register can set N request bits for the N memory controllers of the processor core core 510 and set N request bits for the N memory controllers of the processor core core 520; that is to say, the embodiment of the present application A request bit can be set for each functional module that may access shared IO resources. One request bit corresponds to a functional module, and the value of the request bit indicates whether the corresponding functional module is currently requesting the use of IO resources or requesting the release of IO. The status of the resource; for example, if the value of the request bit of the function module is the first value, it means that the function module is currently requesting to use IO resources; if the value of the request bit of the function module is the zeroth value, it means that the function module is currently requesting to release IO resources or There is currently no request to use IO resources.

在进一步的一种可选实现中,仲裁逻辑可以设置多个请求寄存器,且一个功能模块对应设置一个请求寄存器,从而功能模块对应的请求位设置在功能模块对应的请求寄存器中。例如,结合图3、图4、和图6所示,芯粒310的IO资源311作为芯粒之间共享的IO资源,则仲裁逻辑312可以为芯粒310的各个功能模块分别设置对应的请求寄存器,从而芯粒310的功能模块对应的请求位设置于对应的请求寄存器中;仲裁逻辑312可以为对端芯粒320的各个功能模块分别设置对应的请求寄存器,从而对端芯粒320的功能模块对应的请求位设置于对应的请求寄存器中。In a further optional implementation, the arbitration logic can set multiple request registers, and one request register is set corresponding to one functional module, so that the request bit corresponding to the functional module is set in the request register corresponding to the functional module. For example, as shown in Figure 3, Figure 4, and Figure 6, the IO resource 311 of the core 310 is used as an IO resource shared between cores, then the arbitration logic 312 can set corresponding requests for each functional module of the core 310. register, so that the request bits corresponding to the functional modules of the core chip 310 are set in the corresponding request registers; the arbitration logic 312 can set corresponding request registers for each functional module of the counterpart core core 320, so that the functions of the counterpart core core 320 The corresponding request bit of the module is set in the corresponding request register.

作为示例,结合图5所示,以为处理器内核芯粒510的2个内存控制器设置请求位,以及为处理器内核芯粒520的2个内存控制器设置请求位为例,图7A示例性的示出了本申请实施例提供的请求寄存器的示例图,结合图5和图7A所示,处理器内核芯粒510中的IO控制器被共享,仲裁逻辑可以为处理器内核芯粒510的内存控制器1设置请求寄存器701,为处理器内核芯粒510的内存控制器2设置请求寄存器702,为处理器内核芯粒520的内存控制器1设置请求寄存器703,为处理器内核芯粒520的内存控制器2设置请求寄存器704。As an example, as shown in FIG. 5 , request bits are set for the two memory controllers of the processor core die 510 and the request bits are set for the two memory controllers of the processor core die 520 . FIG. 7A illustrates shows an example diagram of the request register provided by the embodiment of the present application. As shown in FIG. 5 and FIG. 7A , the IO controller in the processor core core 510 is shared, and the arbitration logic can be Memory controller 1 sets the request register 701, sets the request register 702 for the memory controller 2 of the processor core die 510, sets the request register 703 for the memory controller 1 of the processor core die 520, and sets the request register 703 for the processor core die 520. The memory controller 2 sets the request register 704.

其中,请求寄存器具有请求位的位号,以标识不同的功能模块,例如,不同功能模块对应的请求位不同。请求寄存器还可以设置请求位的字段名,作为可选实现,字段名也可以作为可选的保留字段,通过请求位的保留地址进行对应。请求寄存器还可以设置请求位的数值字段,以及请求位的请求类型字段(例如,请求类型字段可以指示访问请求的请求类型,请求类型可以分为读数据或者写数据)。可选的,请求位的数值字段的默认值可以为0x0(对应第零值,例如0x0表示数值0),在功能模块发送访问请求时,可以将请求位的数值字段的值设置为第一值,而在功能模块发送释放请求时,可以将请求位的数值字段的值设置为第零值。The request register has the bit number of the request bit to identify different functional modules. For example, the request bits corresponding to different functional modules are different. The request register can also set the field name of the request bit. As an optional implementation, the field name can also be used as an optional reserved field, corresponding to the reserved address of the request bit. The request register can also set the numerical field of the request bit, and the request type field of the request bit (for example, the request type field can indicate the request type of the access request, and the request type can be divided into reading data or writing data). Optionally, the default value of the numeric field of the request bit can be 0x0 (corresponding to the zeroth value, for example, 0x0 represents the value 0). When the function module sends an access request, the value of the numeric field of the request bit can be set to the first value. , and when the function module sends a release request, the value of the numerical field of the request bit can be set to the zeroth value.

如图7A所示,通过请求寄存器701、请求寄存器702、请求寄存器703和请求寄存器704对应的请求位的描述来看,某个请求寄存器中请求位的数值被写1,则表示请求位对应的功能模块向仲裁逻辑发出了IO资源的访问请求,而请求位的数值被写0,则表示请求位对应的功能模块向仲裁逻辑发出了IO资源的释放请求。更为具体的请求位的示例描述可以参照图7A所示,本申请实施例不再展开。As shown in Figure 7A, judging from the description of the request bits corresponding to the request register 701, the request register 702, the request register 703 and the request register 704, if the value of the request bit in a certain request register is written as 1, it means that the request bit corresponds to The functional module sends an IO resource access request to the arbitration logic, and the value of the request bit is written as 0, which means that the functional module corresponding to the request bit sends an IO resource release request to the arbitration logic. For a more specific example description of the request bit, reference can be made to FIG. 7A , and the embodiment of this application will not be further elaborated.

仲裁逻辑可以为发送访问请求的功能模块进行IO资源的使用权仲裁,例如,仲裁逻辑可以为请求位的数值置为第一值的功能模块,进行IO资源的使用权仲裁。作为可选实现,仲裁逻辑在进行仲裁时依据的仲裁算法可以包括但不限于如下至少一项:访问请求的到达顺序、访问请求的优先级、发送访问请求的功能模块的权限许可程度等。也就是说,仲裁逻辑可以基于上述至少一项的仲裁算法,确定获得IO资源的使用权的功能模块。The arbitration logic can arbitrate the usage rights of IO resources for the functional module that sends the access request. For example, the arbitration logic can arbitrate the usage rights of IO resources for the functional module whose request bit value is set to the first value. As an optional implementation, the arbitration algorithm based on which the arbitration logic performs arbitration may include but is not limited to at least one of the following: the arrival order of access requests, the priority of access requests, the permission level of the functional module that sends the access request, etc. That is to say, the arbitration logic can determine the functional module that obtains the right to use the IO resource based on at least one of the above arbitration algorithms.

作为可选实现,基于访问请求的到达顺序进行使用权的仲裁时,可以遵循访问请求先到则先授权的原则,确定获得IO资源的使用权的功能模块;也就是说,按照访问请求到达的先后顺序,确定获得IO资源的使用权的功能模块。As an optional implementation, when arbitrating usage rights based on the arrival order of access requests, you can follow the principle of first-come, first-served access requests to determine the functional module that obtains the right to use IO resources; that is, according to the arrival order of access requests In sequence, determine the functional module that obtains the right to use IO resources.

作为可选实现,基于访问请求的优先级进行使用权的仲裁时,可以为不同的访问请求设置不同的优先级,从而按照访问请求的优先级从高到低的顺序,确定获得IO资源的使用权的功能模块。可选的,为访问请求设置不同的优先级,可以基于访问请求的类型进行设置,例如,不同类型的访问请求具有不同的优先级;访问请求的优先级可以固定设置,也可以按照实际应用情况进行动态调整。As an optional implementation, when arbitrating usage rights based on the priority of access requests, you can set different priorities for different access requests, so as to determine the use of IO resources in order from high to low priority of access requests. Right function module. Optionally, set different priorities for access requests, which can be set based on the type of access request. For example, different types of access requests have different priorities; the priority of access requests can be fixed or set according to actual application conditions. Make dynamic adjustments.

作为可选实现,基于发送访问请求的功能模块的权限许可程度进行使用权的仲裁时,可以为不同的功能模块设置不同的权限许可程度,例如按照功能模块的类型,为不同类型的功能模块设置不同的权限许可程度,从而按照功能模块的权限许可程度从高到低的顺序,确定获得IO资源的使用权的功能模块。As an optional implementation, when arbitrating usage rights based on the permission permission level of the functional module that sends the access request, different permission permission levels can be set for different functional modules. For example, according to the type of functional module, set different permission permission levels for different types of functional modules. Different permission permission levels, thereby determining the functional modules that obtain the right to use IO resources in order from high to low permission permission levels of the functional modules.

在进一步的可选实现中,如果使用访问请求的到达顺序、访问请求的优先级、功能模块的权限许可程度等仲裁算法中的至少两项仲裁算法,则本申请实施例可以为各项仲裁算法分别设置对应的权重(不同仲裁算法设置的权重可以不同);从而仲裁逻辑在进行使用权的仲裁时,若使用至少两项仲裁算法,则可以确定访问请求在各项仲裁算法的仲裁结果,进而结合访问请求在各项仲裁算法的仲裁结果,以及各项仲裁算法对应的权重,确定访问请求的最终仲裁结果;按照访问请求的最终仲裁结果,确定获得IO资源的使用权的功能模块。例如仲裁结果可以是分值的形式,从而仲裁逻辑可以按照访问请求的最终仲裁结果的得分从高到低的顺序,确定获得IO资源的使用权的功能模块。In a further optional implementation, if at least two arbitration algorithms are used, such as the arrival order of access requests, the priority of access requests, and the permission permission level of functional modules, the embodiments of this application can be used for each arbitration algorithm. Set corresponding weights respectively (the weights set by different arbitration algorithms can be different); thus, when the arbitration logic arbitrates usage rights, if at least two arbitration algorithms are used, the arbitration results of the access requests in each arbitration algorithm can be determined, and then Combine the arbitration results of the access requests in various arbitration algorithms and the corresponding weights of each arbitration algorithm to determine the final arbitration results of the access requests; determine the functional modules that obtain the right to use IO resources based on the final arbitration results of the access requests. For example, the arbitration result can be in the form of a score, so that the arbitration logic can determine the functional module that obtains the right to use the IO resource in order of the score of the final arbitration result of the access request from high to low.

需要说明的是,仲裁逻辑使用的仲裁算法可以根据具体的应用需求而定,例如基于芯片的系统架构和性能目标等要求,选用相应的一项或多项仲裁算法,本申请实施例对于仲裁逻辑选用的仲裁算法的形式并不设限。It should be noted that the arbitration algorithm used by the arbitration logic can be determined according to specific application requirements, such as chip-based system architecture and performance goals, and one or more corresponding arbitration algorithms can be selected. In the embodiment of this application, the arbitration logic There are no restrictions on the form of arbitration algorithm chosen.

在经过仲裁逻辑的仲裁后,仲裁逻辑可以为获得IO资源的使用权的功能模块进行使用权的授权。授权方式可以是仲裁逻辑通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入功能模块。After arbitration by the arbitration logic, the arbitration logic can authorize the use rights for the functional modules that have obtained the right to use the IO resources. The authorization method can be a transmission path in which the arbitration logic sends the access request through the functional module, in the opposite transmission direction of the access request, and writes the authorization information into the functional module.

为便于说明,结合图4所示,假设获得IO资源311的使用权的功能模块为功能模块313,则基于虚线路径031所示的传输路径,仲裁逻辑312可以通过虚线路径031所示的传输路径,以功能模块313发送访问请求相反的传输方向,将授权信息写入功能模块。例如,仲裁逻辑312可以通过芯粒310内的控制总线,将授权信息写入功能模块313。For ease of explanation, as shown in Figure 4, assuming that the functional module that obtains the right to use the IO resource 311 is the functional module 313, based on the transmission path shown by the dotted line path 031, the arbitration logic 312 can pass the transmission path shown by the dotted line path 031. , writing the authorization information into the functional module in the opposite transmission direction to the access request sent by the functional module 313. For example, the arbitration logic 312 can write authorization information into the functional module 313 through the control bus within the core 310 .

结合图4所示,假设获得IO资源311的使用权的功能模块为对端芯粒320的功能模块321,则基于虚线路径0321所示的传输路径,仲裁逻辑312可以通过虚线路径0321所示的传输路径,以功能模块321发送访问请求相反的传输方向,将授权信息写入功能模块321。例如,仲裁逻辑312可以通过芯粒310内的控制总线,将授权信息传输到芯粒310的芯粒连接器,基于芯粒310的芯粒连接器与对端芯粒320的芯粒连接器所连接的逻辑通路,授权信息可以通过逻辑通路上布置的CFOP,传输到对端芯粒320,进而授权信息通过对端芯粒320内的控制总线,到达对端芯粒320的功能模块321,以写入功能模块321。As shown in FIG. 4 , assuming that the functional module that obtains the right to use the IO resource 311 is the functional module 321 of the opposite end core 320 , based on the transmission path shown by the dotted path 0321 , the arbitration logic 312 can pass the transmission path shown by the dotted path 0321 . The transmission path is the transmission direction opposite to the access request sent by the functional module 321, and the authorization information is written into the functional module 321. For example, the arbitration logic 312 can transmit the authorization information to the core connector of the core 310 through the control bus in the core 310, based on the connection between the core connector of the core 310 and the core connector of the opposite core 320. Through the connected logical path, the authorization information can be transmitted to the opposite end core 320 through the CFOP arranged on the logical path, and then the authorization information reaches the functional module 321 of the opposite end core 320 through the control bus in the opposite end core 320, so as to Write function module 321.

在功能模块获得仲裁逻辑的授权信息后,功能模块可以通过发送访问请求的传输路径,使用IO资源传输外设数据。例如,功能模块可以通过发送访问请求的传输路径,以发送访问请求相同的传输方向,使用IO资源发送外设数据。又例如,功能模块可以通过发送访问请求的传输路径,以发送访问请求相反的传输方向,使用IO资源接收外设数据。与发送访问请求相同的传输方向、与发送访问请求相反的传输方向的相关介绍可参照前文相关部分的描述,此处不再赘述。After the functional module obtains the authorization information of the arbitration logic, the functional module can use IO resources to transmit peripheral data by sending the transmission path of the access request. For example, the function module can use the IO resource to send peripheral data by sending the access request in the same transmission direction as the transmission path. For another example, the functional module can use the transmission path of the access request to receive the peripheral data using the IO resource in the opposite transmission direction of the access request. For information about the transmission direction that is the same as sending the access request and the transmission direction that is opposite to sending the access request, please refer to the description in the relevant parts above and will not be repeated here.

在进一步的可选实现中,仲裁逻辑可以设置用于对功能模块的授权地址进行记录的地址列表;同时,功能模块(功能模块可能位于共享的IO资源所在的芯粒,也可能位于对端芯粒)中可以设置授权寄存器,功能模块的授权寄存器的地址可以视为是功能模块的授权地址,从而仲裁逻辑在仲裁确认功能模块获得使用IO资源的使用权后,可以通过功能模块的授权寄存器的地址,向功能模块的授权寄存器写入授权信息,以实现向功能模块写入授权信息。基于此,结合图6所示,仲裁逻辑312可以设置地址列表。同时,芯粒中的功能模块可以设置授权寄存器,例如,图3所示的芯粒310的功能模块313和对端芯粒320的功能模块321均可以设置授权寄存器。其中,仲裁逻辑设置的地址列表可以记录各个功能模块的授权寄存器的地址,功能模块的授权寄存器的地址可以视为是向功能模块写入授权信息的授权地址,即授权寄存器用于写入授权信息;仲裁逻辑可以通过向功能模块的授权寄存器写入授权信息,以实现向功能模块写入授权信息。In a further optional implementation, the arbitration logic can set an address list for recording the authorized address of the functional module; at the same time, the functional module (the functional module may be located on the core where the shared IO resources are located, or may be located on the opposite core). The authorization register can be set in the module), and the address of the authorization register of the functional module can be regarded as the authorization address of the functional module. Therefore, after the arbitration logic confirms that the functional module has obtained the right to use IO resources, it can pass the authorization register of the functional module. Address, write authorization information to the authorization register of the functional module to write authorization information to the functional module. Based on this, as shown in FIG. 6 , the arbitration logic 312 may set an address list. At the same time, the functional modules in the core particle can set authorization registers. For example, the functional module 313 of the core particle 310 shown in FIG. 3 and the functional module 321 of the opposite core particle 320 can both set authorization registers. Among them, the address list set by the arbitration logic can record the address of the authorization register of each functional module. The address of the authorization register of the functional module can be regarded as the authorization address for writing authorization information to the functional module, that is, the authorization register is used to write authorization information. ; The arbitration logic can write authorization information to the authorization register of the functional module to write authorization information to the functional module.

作为可选实现,仲裁逻辑在确认获得IO资源的使用权的功能模块后,可以基于功能模块的身份信息,在地址列表中查询功能模块的授权寄存器的地址;进而,仲裁逻辑可以根据查询的授权寄存器的地址,通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入功能模块的授权寄存器。As an optional implementation, after the arbitration logic confirms the functional module that has obtained the right to use the IO resource, it can query the address of the authorization register of the functional module in the address list based on the identity information of the functional module; furthermore, the arbitration logic can query the authorization according to the The address of the register, the transmission path for sending the access request through the function module, and the opposite transmission direction for sending the access request, write the authorization information into the authorization register of the function module.

作为可选实现,功能模块的授权寄存器可以通过不同的数值表示授权信息是否写入,以指示功能模块是否获得IO资源的使用权的授权。例如,功能模块的授权寄存器的数值为第一值(比如数值1),则表示授权信息写入功能模块的授权寄存器,指示功能模块获得IO资源的使用权的授权;又例如,功能模块的授权寄存器的数值为第零值(比如数值0),则表示授权信息未写入功能模块的授权寄存器,指示功能模块未获得IO资源的使用权的授权,需等待仲裁逻辑的授权。As an optional implementation, the authorization register of the functional module can use different values to indicate whether authorization information is written to indicate whether the functional module is authorized to use the IO resource. For example, if the value of the authorization register of the functional module is the first value (such as the value 1), it means that the authorization information is written into the authorization register of the functional module, indicating that the functional module is authorized to obtain the right to use IO resources; for another example, the authorization of the functional module If the value of the register is the zeroth value (for example, value 0), it means that the authorization information has not been written into the authorization register of the functional module, indicating that the functional module has not been authorized to use the IO resource and needs to wait for authorization from the arbitration logic.

在进一步的可选实现中,在功能模块获得IO资源的使用权限,并且使用IO资源结束后,功能模块可以将授权寄存器的数值设置为第零值,以解除功能模块使用IO资源的使用权。也就是说,在功能模块使用IO资源结束,功能模块可以自行将授权寄存器的数值设置为第零值,以解除IO资源的使用权。在此实现中,授权寄存器设置于功能模块内,授权寄存器的数值置于第一值由仲裁逻辑进行操控和设置,而授权寄存器的数值清除(比如授权寄存器的数值清除为第零值)则由功能模型在使用IO资源结束后自行操控和设置,这使得功能模块可以就近通过授权寄存器的数值确认功能模块的授权情况。In a further optional implementation, after the functional module obtains the right to use the IO resource and ends using the IO resource, the functional module can set the value of the authorization register to the zeroth value to release the functional module's right to use the IO resource. That is to say, after the function module finishes using the IO resources, the function module can set the value of the authorization register to the zeroth value by itself to release the right to use the IO resources. In this implementation, the authorization register is set in the functional module. The value of the authorization register is set to the first value and is controlled and set by the arbitration logic. The value of the authorization register is cleared (for example, the value of the authorization register is cleared to the zeroth value). The functional model is controlled and set by itself after using the IO resources, which allows the functional module to confirm the authorization status of the functional module through the value of the authorization register.

在可能的替代实现中,在功能模块获得IO资源的使用权限,并且使用IO资源结束后,仲裁逻辑可以获取功能模块发送的释放IO资源的释放请求;基于所述释放请求,仲裁逻辑可以通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将功能模块的授权寄存器的数值设置为第零值,以解除功能模块使用IO资源的使用权。也就是说,在功能模块使用IO资源结束,仲裁逻辑获得功能模块发送的IO资源的释放请求时,仲裁逻辑可以将功能模块的授权寄存器的数值设置为第零值,以解除对功能模块使用IO资源的授权,从而对其他请求IO资源使用权的功能模块进行授权。在可选实现中,基于获得的释放请求,仲裁逻辑可以同步将请求寄存器中功能模块对应的请求位的数值设置为第零值。In a possible alternative implementation, after the functional module obtains the permission to use the IO resource and ends using the IO resource, the arbitration logic can obtain a release request sent by the functional module to release the IO resource; based on the release request, the arbitration logic can pass the function The module sends the transmission path of the access request to the opposite transmission direction of the access request, and sets the value of the authorization register of the functional module to the zeroth value to release the functional module's right to use IO resources. That is to say, when the functional module ends using IO resources and the arbitration logic obtains the release request of the IO resources sent by the functional module, the arbitration logic can set the value of the authorization register of the functional module to the zeroth value to release the use of IO for the functional module. Authorization of resources to authorize other functional modules that request the right to use IO resources. In an optional implementation, based on the obtained release request, the arbitration logic can synchronously set the value of the request bit corresponding to the function module in the request register to the zeroth value.

作为示例,结合图5所示,以为处理器内核芯粒510的2个内存控制器设置授权寄存器,以及为处理器内核芯粒520的2个内存控制器设置授权寄存器为例,图7B示例性的示出了本申请实施例提供的授权寄存器的示例图,结合图5和图7B所示,处理器内核芯粒510的内存控制器1可以设置授权寄存器711、处理器内核芯粒510的内存控制器2设置授权寄存器712,处理器内核芯粒520的内存控制器1可以设置授权寄存器713,处理器内核芯粒520的内存控制器2设置授权寄存器714;As an example, as shown in FIG. 5 , authorization registers are set for the two memory controllers of the processor core core 510 and authorization registers are set for the two memory controllers of the processor core core 520 . FIG. 7B illustrates shows an example diagram of the authorization register provided by the embodiment of the present application. As shown in FIG. 5 and FIG. 7B , the memory controller 1 of the processor core chip 510 can set the authorization register 711 and the memory of the processor core chip 510 . The controller 2 sets the authorization register 712, the memory controller 1 of the processor core die 520 can set the authorization register 713, and the memory controller 2 of the processor core die 520 sets the authorization register 714;

其中,授权寄存器具有授权位的位号,以标识对应的功能模块。授权寄存器还可以设置授权位的字段名。授权寄存器还可以设置授权位的数值字段,以及授权类型字段(例如,授权类型字段指示的授权类型分为授权使用IO资源进行读数据和/或写数据)。可选的,授权位的数值字段的默认值可以为0x0(对应第零值,例如0x0表示数值0),在仲裁逻辑向授权寄存器写入授权信息时,授权位的数值字段设置为第一值(比如数值1),而在授权寄存器对应的功能模块释放IO资源的使用权时,功能模块或者仲裁逻辑可以将授权寄存器的数值字段设置为第零值。Among them, the authorization register has the bit number of the authorization bit to identify the corresponding functional module. The authorization register can also set the field name of the authorization bit. The authorization register can also set the numerical field of the authorization bit, and the authorization type field (for example, the authorization type indicated by the authorization type field is divided into authorization to use IO resources to read data and/or write data). Optionally, the default value of the numeric field of the authorization bit can be 0x0 (corresponding to the zeroth value, for example, 0x0 represents the value 0). When the arbitration logic writes authorization information to the authorization register, the numeric field of the authorization bit is set to the first value. (such as value 1), and when the functional module corresponding to the authorization register releases the right to use the IO resource, the functional module or arbitration logic can set the numerical field of the authorization register to the zeroth value.

如图7B所示,通过授权寄存器711、授权寄存器712、授权寄存器713和授权寄存器714对应的授权寄存器的描述来看,某个授权寄存器的数值被写1,则表示授权寄存器对应的功能模块被授权使用IO资源,而授权寄存器的数值被写0,则表示授权寄存器对应的功能模块使用IO资源的使用权被释放。更为具体的授权寄存器的示例描述可以参照图7B所示,本申请实施例不再展开。As shown in Figure 7B, judging from the description of the authorization registers corresponding to the authorization register 711, the authorization register 712, the authorization register 713 and the authorization register 714, if the value of a certain authorization register is written as 1, it means that the functional module corresponding to the authorization register is The use of IO resources is authorized, and the value of the authorization register is written as 0, which means that the right to use the IO resources of the functional module corresponding to the authorization register is released. For a more specific example description of the authorization register, reference can be made to FIG. 7B , and the embodiment of this application will not be further elaborated.

作为示例,以为处理器内核芯粒510的2个内存控制器设置授权寄存器,以及为处理器内核芯粒520的2个内存控制器设置授权寄存器为例,图7C示例性的示出了本申请实施例提供的地址列表的示例图,地址列表可以设置多个授权位,以及各个授权位对应的授权寄存器的地址,其中,一个授权位对应一个功能模块;例如,结合图7B和图7C所示,地址列表可以设置:处理器内核芯粒510的内存控制器1的授权位、对应的地址为授权寄存器711的地址,处理器内核芯粒510的内存控制器2的授权位、对应的地址为授权寄存器712的地址,处理器内核芯粒520的内存控制器1的授权位、对应的地址为授权寄存器713的地址,处理器内核芯粒520的内存控制器2的授权位、对应的地址为授权寄存器714的地址。As an example, take the authorization registers being set for the two memory controllers of the processor core die 510 and the authorization registers being set for the two memory controllers of the processor core die 520 as an example. FIG. 7C exemplarily shows the application. The example diagram of the address list provided by the embodiment. The address list can be set with multiple authorization bits, and the address of the authorization register corresponding to each authorization bit. Among them, one authorization bit corresponds to one functional module; for example, as shown in Figure 7B and Figure 7C , the address list can be set: the authorization bit and the corresponding address of the memory controller 1 of the processor core die 510 are the address of the authorization register 711, and the authorization bit and the corresponding address of the memory controller 2 of the processor core die 510 are The address of the authorization register 712, the authorization bit of the memory controller 1 of the processor core die 520, and the corresponding address are the addresses of the authorization register 713, and the authorization bit and the corresponding address of the memory controller 2 of the processor core die 520 are The address of authorization register 714.

需要说明的是,功能模块在使用IO资源收发外设数据时,外设收发数据的速率低于功能模块收发数据的速率,因此IO资源(例如IO控制器)发出给外设的数据处理请求后,需要通过较长时间来等待外设返回数据,在等待外设返回数据的期间,可以维持功能模块具有IO资源(例如控制器)的使用权;进而,在IO资源(例如IO控制器)获取到外设返回的数据后,可以将外设返回的数据发送给功能模块。在上述过程中,功能模块通过发送访问请求的传输路径,以发送访问请求相同的传输方向,使用IO资源向外设发送数据;以及,功能模块通过发送访问请求的传输路径,以发送访问请求相反的传输方向,接收外设返回的数据。It should be noted that when the functional module uses IO resources to send and receive peripheral data, the rate at which the peripheral sends and receives data is lower than the rate at which the functional module sends and receives data. Therefore, after the IO resource (such as IO controller) sends a data processing request to the peripheral, , it takes a long time to wait for the peripheral to return data. During the period of waiting for the peripheral to return data, the functional module can maintain the right to use the IO resource (such as the controller); furthermore, when the IO resource (such as the IO controller) obtains After receiving the data returned by the peripheral device, the data returned by the peripheral device can be sent to the function module. In the above process, the function module uses the IO resource to send data to the peripheral by sending the access request in the same transmission direction as the access request; and, the function module sends the access request in the opposite direction by sending the access request in the transmission path. The transmission direction, receives the data returned by the peripheral device.

功能模块获得外设返回的数据后,可继续使用IO资源与外设进行下一次的数据传输,或者结束使用IO资源。在功能模块结束使用IO资源时,功能模块可以请求释放IO资源,例如,功能模块通过将请求寄存器中对应的请求位的数值设置为第零值,以实现向仲裁逻辑发送释放IO资源的释放请求,并且,功能模块或者仲裁逻辑通过将功能模块的授权寄存器的数值清零,以实现释放功能模块对于IO资源的使用权。在释放功能模块的IO资源的使用权后,仲裁器可以基于仲裁算法,确认下一个获得IO资源使用权的功能模块,并对该功能模块进行授权;例如,仲裁器可以基于仲裁算法,对数值为1的请求位对应的功能模块进行IO资源的使用权的仲裁,从而确认下一个获得IO资源使用权的功能模块,并将该功能模块的授权寄存器的数值置为1。After the function module obtains the data returned by the peripheral device, it can continue to use the IO resources for the next data transmission with the peripheral device, or it can end using the IO resources. When the functional module finishes using the IO resources, the functional module can request to release the IO resources. For example, the functional module sets the value of the corresponding request bit in the request register to the zeroth value to send a release request to the arbitration logic to release the IO resources. , and the functional module or arbitration logic releases the functional module's right to use IO resources by clearing the value of the authorization register of the functional module. After releasing the right to use the IO resources of the functional module, the arbiter can confirm the next functional module that obtains the right to use the IO resources based on the arbitration algorithm, and authorize the functional module; for example, the arbiter can use the arbitration algorithm to Arbitrate the right to use IO resources for the functional module corresponding to the request bit of 1, thereby confirming the next functional module that obtains the right to use IO resources, and set the value of the authorization register of the functional module to 1.

为便于理解多个功能模块通过仲裁逻辑竞争IO资源的时序机制,以4个功能模块竞争同一IO资源的时序为例,图8示例性的示出了本申请实施例提供的IO资源的竞争时序图,参照图8所示,功能模块810发送的访问请求811最先到达IO资源的仲裁器,此时没有来自其它功能模块(例如功能模块820、830和840)的访问请求,因此功能模块810将得到仲裁器返回的授权信息812;后续,仲裁器又同时收到了来自功能模块820发送的访问请求821、功能模块830发送的访问请求831、功能模块840发送的访问请求841,由于IO资源当前被功能模块810的访问请求811占用,因此后续其他功能模块发送的访问请求需要等待授权。当访问请求811与外设传输数据的过程结束时,仲裁器可以根据轮转调度算法等仲裁算法,使得功能模块820发送的访问请求821得到授权信息822,以此类推,依次使得功能模块830发送的访问请求831得到授权信息832、功能模块840发送的访问请求841得到授权信息842。In order to facilitate understanding of the timing mechanism in which multiple functional modules compete for IO resources through arbitration logic, taking the timing of four functional modules competing for the same IO resource as an example, Figure 8 exemplarily shows the competition timing of IO resources provided by the embodiment of the present application. Referring to Figure 8, the access request 811 sent by the functional module 810 reaches the arbiter of the IO resource first. At this time, there are no access requests from other functional modules (such as functional modules 820, 830 and 840), so the functional module 810 The authorization information 812 returned by the arbiter will be obtained; subsequently, the arbiter simultaneously received the access request 821 sent by the functional module 820, the access request 831 sent by the functional module 830, and the access request 841 sent by the functional module 840. Since the IO resource is currently It is occupied by the access request 811 of the functional module 810, so subsequent access requests sent by other functional modules need to wait for authorization. When the process of transmitting data between the access request 811 and the peripheral device ends, the arbiter can use an arbitration algorithm such as a round-robin scheduling algorithm to cause the access request 821 sent by the functional module 820 to obtain the authorization information 822, and so on, so that the access request 821 sent by the functional module 830 in turn obtains the authorization information 822. The access request 831 obtains authorization information 832, and the access request 841 sent by the functional module 840 obtains authorization information 842.

需要说明的是,图8示例是以访问请求先到则先授权的原则,以及对同时到达的访问请求进行轮转调度(Round-robin)的方式,来进行IO资源的使用权仲裁,本申请实施例并不限定仲裁器所使用的仲裁算法,可以是先进先出、轮转调度、优先级等多种算法中的至少一种算法。其中,轮转调度是一种基于循环轮流分配资源的仲裁策略,用于确保每个请求者均有机会访问资源。It should be noted that the example in Figure 8 is based on the principle of first-come, first-served access requests and round-robin scheduling of access requests arriving at the same time to arbitrate the use rights of IO resources. This application implements The example does not limit the arbitration algorithm used by the arbiter, which can be at least one of multiple algorithms such as first-in-first-out, round-robin scheduling, and priority. Among them, round-robin scheduling is an arbitration strategy based on round-robin allocation of resources to ensure that each requestor has the opportunity to access resources.

在一个示例中,以处理器内核芯粒为例,处理器内核芯粒上的内存控制器,需要通过I3C接口(IO资源的一种示例)对主板上的DIMM进行访问。如果处理器内核芯粒均使用自身的I3C接口,则封装上需要引出多组I3C接口,且主板上的DIMM也需要同时连接多个I3C接口,这将导致连接关系十分复杂。采用本申请实施例提供的方案,可以将部分处理器内核芯粒上的I3C接口引出到封装上,从而主板上的多个DIMM可以连接部分处理器内核芯粒上的I3C接口,并可通过本申请实施例提供的IO资源共享方案,使得所有的处理器内核芯粒均可访问DIMM,从而极大的简化了封装设计与主板走线设计。In one example, taking a processor core chip as an example, the memory controller on the processor core chip needs to access the DIMM on the motherboard through the I3C interface (an example of IO resources). If the processor core chips use their own I3C interface, multiple sets of I3C interfaces need to be introduced on the package, and the DIMM on the motherboard also needs to be connected to multiple I3C interfaces at the same time, which will lead to a very complicated connection relationship. Using the solution provided by the embodiment of this application, the I3C interface on some processor core chips can be led out to the package, so that multiple DIMMs on the motherboard can connect to the I3C interfaces on some processor core chips, and can be connected through this The IO resource sharing solution provided by the application embodiment enables all processor core chips to access DIMMs, thereby greatly simplifying packaging design and motherboard wiring design.

本申请实施例提供的方案,通过硬件形式的仲裁逻辑对访问IO资源的功能模块进行使用权的仲裁,可以在仲裁分配IO资源的使用权时,避免软件参与,降低软件参与带来的IO资源共享效率较低的问题,从而在保障IO资源的共享可靠性的基础上,提升IO资源的共享效率。例如,本申请实施例可以在初始化阶段,以软件方式初始化请求寄存器、授权寄存器和地址列表的内容,从而为不同功能模块使用IO资源的环境进行配置;进而后续在功能模块请求使用IO资源与外设进行数据交互时,可以无需软件介入,直接基于已配置的请求寄存器、授权寄存器和地址列表的内容,通过功能模块、仲裁器以及相应的传输路径,自动完成IO资源的使用权授权和释放,并且使用IO资源的功能模块是以已配置的环境来使用IO资源(对应功能模块的请求寄存器、授权寄存器和地址列表已配置的内容),提升IO资源的共享效率。The solution provided by the embodiment of this application uses arbitration logic in the form of hardware to arbitrate the usage rights of functional modules that access IO resources. It can avoid software participation and reduce IO resource sharing caused by software participation when arbitrating and allocating the usage rights of IO resources. It solves the problem of low efficiency, thereby improving the sharing efficiency of IO resources on the basis of ensuring the reliability of IO resource sharing. For example, the embodiment of the present application can initialize the contents of the request register, authorization register and address list in software during the initialization phase, thereby configuring the environment for different functional modules to use IO resources; and then subsequently use the IO resources when the functional module requests the use of external resources. When performing data interaction, the authorization and release of usage rights of IO resources can be automatically completed directly based on the contents of the configured request register, authorization register and address list through functional modules, arbiters and corresponding transmission paths without software intervention. And the functional modules that use IO resources use IO resources in a configured environment (corresponding to the configured contents of the request register, authorization register and address list of the functional module), improving the sharing efficiency of IO resources.

基于本申请实施例提供的实现IO资源共享的芯粒,本申请实施例还提供一种IO资源共享方法。作为可选实现,图9示例性的示出了本申请实施例提供的IO资源共享方法的可选流程图,该方法流程可以应用于芯粒,例如,应用于芯粒的仲裁逻辑。下文描述的内容中与前文相关的部分可以相互参照。参照图9,该方法流程可以包括如下步骤。Based on the core chip for realizing IO resource sharing provided by the embodiment of the present application, the embodiment of the present application also provides an IO resource sharing method. As an optional implementation, FIG. 9 exemplarily shows an optional flow chart of the IO resource sharing method provided by the embodiment of the present application. The method flow can be applied to the core particle, for example, applied to the arbitration logic of the core particle. The parts described below that are related to the previous part may be cross-referenced. Referring to Figure 9, the method flow may include the following steps.

在步骤S910中,接收多个功能模块发送的IO资源的访问请求。In step S910, IO resource access requests sent by multiple functional modules are received.

其中,所述多个功能模块包括:所述芯粒内的功能模块、以及与所述芯粒互联的任一对端芯粒内的功能模块;所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径至少包括:所述对端芯粒与所述芯粒之间的逻辑通路;其中,所述对端芯粒内的功能模块的访问请求通过所述逻辑通路,从所述对端芯粒传递到所述芯粒。Wherein, the plurality of functional modules include: functional modules in the core grain, and functional modules in any pair of end core grains interconnected with the core grain; the functional modules in the opposite end core grain communicate to all The transmission path for the access request sent by the arbitration logic at least includes: a logical path between the opposite end core particle and the core particle; wherein the access request for the functional module in the opposite end core particle passes through the logical path, Passed from the opposite end core particle to the core particle.

在步骤S920中,为所述多个功能模块的访问请求仲裁所述IO资源的使用权。In step S920, the right to use the IO resource is arbitrated for the access requests of the multiple functional modules.

在可选实现中,本申请实施例可以基于如下至少一项仲裁算法,确定获得所述IO资源的使用权的功能模块:访问请求的到达顺序、访问请求的优先级、发送访问请求的功能模块的权限许可程度;In an optional implementation, the embodiment of the present application can determine the functional module that obtains the right to use the IO resource based on at least one of the following arbitration algorithms: the arrival order of the access request, the priority of the access request, and the functional module that sends the access request. The degree of permission granted;

其中,基于访问请求的到达顺序进行使用权的仲裁时,按照访问请求到达的先后顺序,确定获得所述IO资源的使用权的功能模块;基于访问请求的优先级进行使用权的仲裁时,按照访问请求的优先级从高到低的顺序,确定获得所述IO资源的使用权的功能模块;基于发送访问请求的功能模块的权限许可程度进行使用权的仲裁时,按照功能模块的权限许可程度从高到低的顺序,确定获得所述IO资源的使用权的功能模块。Among them, when the use rights are arbitrated based on the arrival order of the access requests, the functional module that obtains the use rights of the IO resource is determined according to the order in which the access requests arrive; when the use rights are arbitrated based on the priority of the access requests, the use rights are determined according to the order in which the access requests arrive. The priority of the access request is in order from high to low to determine the functional module that obtains the right to use the IO resource; when the use right is arbitrated based on the permission level of the functional module that sends the access request, the use right is arbitrated according to the permission level of the functional module. In order from high to low, determine the functional module that obtains the right to use the IO resource.

在进一步的可选实现中,若使用至少两项仲裁算法,则确定访问请求在各项仲裁算法的仲裁结果;结合访问请求在各项仲裁算法的仲裁结果,以及各项仲裁算法对应的权重,确定访问请求的最终仲裁结果;按照访问请求的最终仲裁结果,确定获得所述IO资源的使用权的功能模块。In a further optional implementation, if at least two arbitration algorithms are used, the arbitration results of the access requests in each arbitration algorithm are determined; combined with the arbitration results of the access requests in each arbitration algorithm and the corresponding weights of each arbitration algorithm, Determine the final arbitration result of the access request; determine the functional module that obtains the right to use the IO resource according to the final arbitration result of the access request.

在步骤S930中,为获得IO资源的使用权的功能模块,授权所述IO资源的使用权,以便获得IO资源的使用权的功能模块使用所述IO资源与外设进行数据交互。In step S930, in order to obtain the right to use the IO resource, the functional module is authorized to use the IO resource, so that the functional module that obtains the right to use the IO resource uses the IO resource to interact with peripheral devices.

在可选实现中,本申请实施例可以通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入获得IO资源的使用权的功能模块,以实现为获得IO资源的使用权的功能模块,授权所述IO资源的使用权。In an optional implementation, the embodiment of the present application can send the transmission path of the access request through the functional module to send the access request in the opposite transmission direction, and write the authorization information into the functional module that obtains the right to use the IO resource, so as to obtain the IO resource. The functional module of resource usage rights authorizes the usage rights of the IO resources.

在进一步的可选实现,本申请实施例还可以在功能模块获得IO资源的使用权限,并且使用IO资源结束后,获取功能模块发送的释放IO资源的释放请求,从而基于所述释放请求,解除功能模块使用IO资源的使用权;或者,在功能模块获得IO资源的使用权限,并且使用IO资源结束后,由功能模块自行解除IO资源的使用权。In a further optional implementation, the embodiment of the present application can also obtain the release request to release the IO resource sent by the functional module after the functional module obtains the usage rights of the IO resource and ends using the IO resource, so as to release the release request based on the release request. The functional module has the right to use the IO resources; or, after the functional module obtains the right to use the IO resources and ends using the IO resources, the functional module releases the right to use the IO resources on its own.

本申请实施例还提供一种芯片系统(例如片上系统),包括互联的多个芯粒,该多个芯粒中的部分芯粒或者全部芯粒为本申请实施例提供的芯粒。Embodiments of the present application also provide a chip system (for example, a system on a chip), which includes a plurality of interconnected core particles, and some or all of the core particles among the plurality of core particles are core particles provided by embodiments of the present application.

本申请实施例还提供一种电子设备,例如终端设备或者服务器设备,该电子设备可以包括本申请实施例提供的芯片系统(例如片上系统),和/或,本申请实施例提供的芯粒。Embodiments of the present application also provide an electronic device, such as a terminal device or a server device. The electronic device may include a chip system (such as a system-on-chip) provided by embodiments of the present application, and/or a chip provided by embodiments of the present application.

上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。The above describes multiple embodiment solutions provided by the embodiments of the present application. The optional methods introduced in each embodiment solution can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible embodiment solutions. These can be considered as embodiments disclosed and disclosed in the embodiments of this application.

虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。Although the embodiments of the present application are disclosed as above, the present application is not limited thereto. Any person skilled in the art can make various changes and modifications without departing from the spirit and scope of the present application. Therefore, the protection scope of the present application shall be subject to the scope defined by the claims.

Claims (23)

1.一种芯粒,其特征在于,所述芯粒包括:1. A core particle, characterized in that, the core particle includes: IO资源,所述IO资源连接封装引脚;IO resources, the IO resources are connected to package pins; 连接于所述IO资源的请求入口的仲裁逻辑,所述仲裁逻辑至少用于,接收多个功能模块发送的所述IO资源的访问请求,为所述多个功能模块的访问请求仲裁所述IO资源的使用权;Arbitration logic connected to the request entry of the IO resource. The arbitration logic is at least used to receive access requests for the IO resources sent by multiple functional modules and arbitrate the IO for the access requests of the multiple functional modules. rights to use resources; 其中,所述多个功能模块包括:所述芯粒内的功能模块、以及与所述芯粒互联的任一对端芯粒内的功能模块;所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径至少包括:所述对端芯粒与所述芯粒之间的逻辑通路;其中,所述对端芯粒内的功能模块的访问请求通过所述逻辑通路,从所述对端芯粒传递到所述芯粒。Wherein, the plurality of functional modules include: functional modules in the core grain, and functional modules in any pair of end core grains interconnected with the core grain; the functional modules in the opposite end core grain communicate to all The transmission path for the access request sent by the arbitration logic at least includes: a logical path between the opposite end core particle and the core particle; wherein the access request for the functional module in the opposite end core particle passes through the logical path, Passed from the opposite end core particle to the core particle. 2.根据权利要求1所述的芯粒,其特征在于,所述芯粒还包括:芯粒连接器;2. The core particle according to claim 1, wherein the core particle further includes: a core particle connector; 其中,所述对端芯粒的芯粒连接器以及所述芯粒的芯粒连接器,连接所述对端芯粒与所述芯粒之间的逻辑通路,且所述逻辑通路上设置有用于传输控制信号的封装内控制网络;Wherein, the core particle connector of the opposite end core particle and the core particle connector of the core particle connect the logical path between the opposite end core particle and the core particle, and the logical path is provided with a useful Control network within the package that transmits control signals; 所述对端芯粒内的功能模块的访问请求,基于所述对端芯粒的芯粒连接器以及所述芯粒的芯粒连接器连接的逻辑通路,通过所述逻辑通路上设置的封装内控制网络,由所述对端芯粒传递到所述芯粒。The access request to the functional module in the end core is based on the core connector of the end core and the logical path connected by the core connector of the core through the package provided on the logical path. The internal control network is transmitted from the opposite core particle to the core particle. 3.根据权利要求2所述的芯粒,其特征在于,所述芯粒还包括:设置于所述芯粒内部的控制总线;3. The core particle according to claim 2, wherein the core particle further includes: a control bus disposed inside the core particle; 其中,所述对端芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径还包括:所述对端芯粒内的功能模块至所述对端芯粒内的控制总线的路径、所述对端芯粒内的控制总线至所述对端芯粒的芯粒连接器的路径、所述芯粒的芯粒连接器至所述芯粒内的控制总线的路径、所述芯粒内的控制总线至所述芯粒内的仲裁逻辑的路径;Wherein, the transmission path for the functional module in the opposite end core to send the access request to the arbitration logic also includes: the path from the functional module in the opposite end core to the control bus in the opposite end core, The path from the control bus in the opposite end core to the core connector of the opposite end core, the path from the core connector of the core to the control bus in the core, the core The path from the control bus within the chip to the arbitration logic within the chip; 所述对端芯粒内的功能模块的访问请求,由所述对端芯粒内的控制总线传递到所述对端芯粒的芯粒连接器,并基于所述对端芯粒的芯粒连接器以及所述芯粒的芯粒连接器连接的逻辑通路,通过所述逻辑通路上设置的封装内控制网络,传递到所述芯粒的芯粒连接器,所述芯粒的芯粒连接器通过所述芯粒内的控制总线,将传递到所述芯粒的芯粒连接器的访问请求,传递到所述仲裁逻辑。The access request to the functional module in the opposite end core is transmitted from the control bus in the opposite end core to the core connector of the opposite end core, and is based on the core of the opposite end core. The connector and the logic path connected by the core element connector of the core element are passed to the core element connector of the core element through the in-package control network provided on the logic path. The core element connection of the core element is The controller passes the access request passed to the core connector of the core to the arbitration logic through the control bus within the core. 4.根据权利要求3所述的芯粒,其特征在于,所述芯粒内的功能模块向所述仲裁逻辑发送访问请求的传输路径包括:所述芯粒内的控制总线至所述仲裁逻辑的路径;其中,所述芯粒内的功能模块的访问请求,通过所述芯粒内的控制总线,传递到所述仲裁逻辑。4. The core particle according to claim 3, characterized in that the transmission path for the functional module in the core particle to send an access request to the arbitration logic includes: a control bus in the core particle to the arbitration logic. path; wherein, the access request of the functional module in the core particle is passed to the arbitration logic through the control bus in the core particle. 5.根据权利要求1所述的芯粒,其特征在于,所述仲裁逻辑设置有请求寄存器,所述请求寄存器具有请求位,一个请求位对应一个功能模块;所述功能模块发送的所述IO资源的访问请求,至少用于将所述请求寄存器中对应的请求位的数值设置为第一值。5. The core particle according to claim 1, characterized in that the arbitration logic is provided with a request register, the request register has a request bit, and one request bit corresponds to a functional module; the IO sent by the functional module The resource access request is at least used to set the value of the corresponding request bit in the request register to the first value. 6.根据权利要求5所述的芯粒,其特征在于,所述仲裁逻辑还用于,在所述功能模块获得所述IO资源的使用权限,并且使用所述IO资源结束后,接收所述功能模块发送的释放所述IO资源的释放请求,所述释放请求用于将所述请求寄存器中对应的请求位的数值设置为第零值;6. The core according to claim 5, characterized in that the arbitration logic is further configured to receive the A release request sent by the functional module to release the IO resource, the release request being used to set the value of the corresponding request bit in the request register to the zeroth value; 其中,所述功能模块传输所述释放请求的传输路径,与所述功能模块向所述仲裁逻辑发送访问请求的传输路径相对应。Wherein, the transmission path through which the functional module transmits the release request corresponds to the transmission path through which the functional module sends an access request to the arbitration logic. 7.根据权利要求6所述的芯粒,其特征在于,所述请求位包括:请求位的位号、请求位的字段名、请求位的数值字段、以及请求类型字段;其中,所述请求位的数值字段的默认值为第零值,所述请求类型字段指示的访问请求的类型分为读数据和写数据。7. The core according to claim 6, wherein the request bit includes: a bit number of the request bit, a field name of the request bit, a value field of the request bit, and a request type field; wherein, the request bit The default value of the bit value field is the zeroth value, and the type of access request indicated by the request type field is divided into read data and write data. 8.根据权利要求5-7任一项所述的芯粒,其特征在于,所述请求寄存器的数量为多个,且一个功能模块对应一个请求寄存器,功能模块对应的请求位设置于对应的请求寄存器中。8. The core according to any one of claims 5-7, characterized in that the number of the request registers is multiple, and one functional module corresponds to one request register, and the request bit corresponding to the functional module is set in the corresponding in the request register. 9.根据权利要求1所述的芯粒,其特征在于,所述仲裁逻辑用于,为所述多个功能模块的访问请求仲裁所述IO资源的使用权包括:9. The core according to claim 1, wherein the arbitration logic is used to arbitrate the use rights of the IO resources for the access requests of the multiple functional modules including: 基于如下至少一项仲裁算法,确定获得所述IO资源的使用权的功能模块:访问请求的到达顺序、访问请求的优先级、发送访问请求的功能模块的权限许可程度;Determine the functional module that obtains the right to use the IO resource based on at least one of the following arbitration algorithms: the arrival order of access requests, the priority of access requests, and the permission level of the functional module that sends the access request; 其中,基于访问请求的到达顺序进行使用权的仲裁时,按照访问请求到达的先后顺序,确定获得所述IO资源的使用权的功能模块;Wherein, when the usage rights are arbitrated based on the arrival sequence of access requests, the functional module that obtains the usage rights of the IO resource is determined according to the arrival sequence of the access requests; 基于访问请求的优先级进行使用权的仲裁时,按照访问请求的优先级从高到低的顺序,确定获得所述IO资源的使用权的功能模块;When arbitrating usage rights based on the priority of the access request, determine the functional module that obtains the right to use the IO resource in order from high to low priority of the access request; 基于发送访问请求的功能模块的权限许可程度进行使用权的仲裁时,按照功能模块的权限许可程度从高到低的顺序,确定获得所述IO资源的使用权的功能模块。When the use rights are arbitrated based on the permission permission level of the functional module that sends the access request, the functional module that obtains the right to use the IO resource is determined in order of the permission permission level of the functional module from high to low. 10.根据权利要求9所述的芯粒,其特征在于,所述仲裁逻辑用于,基于如下至少一项仲裁算法,确定获得所述IO资源的使用权的功能模块包括:10. The core particle according to claim 9, characterized in that the arbitration logic is used to determine the functional module to obtain the right to use the IO resource based on at least one of the following arbitration algorithms: 若使用至少两项仲裁算法,则确定访问请求在各项仲裁算法的仲裁结果;结合访问请求在各项仲裁算法的仲裁结果,以及各项仲裁算法对应的权重,确定访问请求的最终仲裁结果;按照访问请求的最终仲裁结果,确定获得所述IO资源的使用权的功能模块。If at least two arbitration algorithms are used, determine the arbitration results of the access request in each arbitration algorithm; determine the final arbitration result of the access request based on the arbitration results of the access request in each arbitration algorithm and the corresponding weight of each arbitration algorithm; According to the final arbitration result of the access request, the functional module that obtains the right to use the IO resource is determined. 11.根据权要求1所述的芯粒,其特征在于,所述仲裁逻辑还用于,为获得所述IO资源的使用权的功能模块,授权所述IO资源的使用权。11. The core according to claim 1, wherein the arbitration logic is further configured to authorize the right to use the IO resource for a functional module that obtains the right to use the IO resource. 12.根据权利要求11所述的芯粒,其特征在于,所述仲裁逻辑用于,为获得所述IO资源的使用权的功能模块,授权所述IO资源的使用权包括:12. The core according to claim 11, wherein the arbitration logic is used to, in order to obtain the functional module of the right to use the IO resource, authorizing the right to use the IO resource includes: 针对获得所述IO资源的使用权的功能模块,通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入功能模块。For the functional module that obtains the right to use the IO resource, the authorization information is written into the functional module in the opposite transmission direction of the access request through the transmission path of the functional module. 13.根据权利要求12所述的芯粒,其特征在于,所述获得所述IO资源的使用权的功能模块,通过发送访问请求的传输路径,使用所述IO资源传输外设数据;13. The core according to claim 12, characterized in that the functional module that obtains the right to use the IO resource uses the IO resource to transmit peripheral data by sending a transmission path of the access request; 其中,所述获得所述IO资源的使用权的功能模块,通过发送访问请求的传输路径,以发送访问请求相同的传输方向,使用所述IO资源发送外设数据;以及,所述获得所述IO资源的使用权的功能模块,通过发送访问请求的传输路径,以发送访问请求相反的传输方向,使用所述IO资源接收外设数据。Wherein, the functional module that obtains the right to use the IO resource uses the transmission path of the access request to send the access request in the same transmission direction, and uses the IO resource to send peripheral data; and, the obtainment of the The functional module with the right to use IO resources uses the transmission path of the access request to send the access request in the opposite transmission direction, and uses the IO resources to receive peripheral data. 14.根据权利要求12-13任一项所述的芯粒,其特征在于,所述仲裁逻辑设置有地址列表,所述地址列表记录有功能模块的授权寄存器的地址;其中,功能模块的授权寄存器用于写入授权信息。14. The core according to any one of claims 12-13, characterized in that the arbitration logic is provided with an address list, and the address list records the address of the authorization register of the functional module; wherein, the authorization of the functional module The register is used to write authorization information. 15.根据权利要求14所述的芯粒,其特征在于,所述仲裁逻辑用于,针对获得所述IO资源的使用权的功能模块,通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入功能模块包括:15. The core according to claim 14, wherein the arbitration logic is used to send an access request through a transmission path of the functional module for the functional module that obtains the right to use the IO resource. In the opposite direction of transmission, writing authorization information to functional modules includes: 根据获得所述IO资源的使用权的功能模块的身份信息,在所述地址列表中查询功能模块的授权寄存器的地址;Query the address of the authorization register of the functional module in the address list according to the identity information of the functional module that has obtained the right to use the IO resource; 根据查询的授权寄存器的地址,通过功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将授权信息写入功能模块的授权寄存器。According to the address of the queried authorization register, the transmission path of the access request is sent through the functional module to the opposite transmission direction of the access request, and the authorization information is written into the authorization register of the functional module. 16.根据权利要求15所述的芯粒,其特征在于,所述功能模块的授权寄存器的数值为第一值,则表示授权信息写入功能模块的授权寄存器,指示功能模块获得所述IO资源的使用权的授权;所述功能模块的授权寄存器的数值为第零值,则表示授权信息未写入功能模块的授权寄存器,指示功能模块未获得所述IO资源的使用权的授权。16. The core according to claim 15, wherein if the value of the authorization register of the functional module is the first value, it means that authorization information is written into the authorization register of the functional module, indicating that the functional module obtains the IO resource. authorization of the use right; if the value of the authorization register of the functional module is the zeroth value, it means that the authorization information has not been written into the authorization register of the functional module, indicating that the functional module has not been authorized to use the IO resource. 17.根据权利要求16所述的芯粒,其特征在于,所述功能模块在获得所述IO资源的使用权限,并且使用所述IO资源结束后,将对应的授权寄存器的数值设置为第零值;17. The core according to claim 16, characterized in that, after the functional module obtains the usage rights of the IO resources and ends using the IO resources, it sets the value of the corresponding authorization register to the zeroth value; 或者,or, 所述仲裁逻辑在所述功能模块获得所述IO资源的使用权限,并且使用所述IO资源结束后,获取所述功能模块发送的释放所述IO资源的释放请求;所述仲裁逻辑基于所述释放请求,通过所述功能模块发送访问请求的传输路径,以发送访问请求相反的传输方向,将所述功能模块的授权寄存器的数值设置为第零值,以解除所述功能模块使用所述IO资源的使用权。The arbitration logic obtains a release request sent by the functional module to release the IO resource after the functional module obtains the usage rights of the IO resource and ends using the IO resource; the arbitration logic is based on the Release the request, send the access request through the transmission path of the functional module in the opposite transmission direction of the access request, and set the value of the authorization register of the functional module to the zeroth value to release the functional module from using the IO Rights to use resources. 18.根据权利要求15-17任一项所述的芯粒,其特征在于,所述地址列表设置有多个授权位,以及各个授权位对应的授权寄存器的地址,一个授权位对应一个功能模块;所述授权寄存器设置有授权位的位号、授权位的字段名、授权位的数值字段、以及授权类型字段;其中,所述授权位的数值字段的默认值为第零值,所述授权类型字段指示的授权类型分为授权使用所述IO资源进行读数据和/或写数据。18. The core according to any one of claims 15-17, characterized in that the address list is provided with multiple authorization bits, and the address of the authorization register corresponding to each authorization bit, and one authorization bit corresponds to one functional module. ; The authorization register is set with the bit number of the authorization bit, the field name of the authorization bit, the numerical field of the authorization bit, and the authorization type field; wherein, the default value of the numerical field of the authorization bit is the zeroth value, and the authorization bit The authorization type indicated by the type field is divided into authorization to use the IO resource to read data and/or write data. 19.一种IO资源共享方法,其特征在于,应用于权利要求1-18任一项所述的芯粒,所述方法包括:19. An IO resource sharing method, characterized in that it is applied to the core particle according to any one of claims 1-18, and the method includes: 接收多个功能模块发送的IO资源的访问请求;Receive IO resource access requests sent by multiple functional modules; 为所述多个功能模块的访问请求仲裁所述IO资源的使用权;Arbitrate the use rights of the IO resources for the access requests of the multiple functional modules; 为获得所述IO资源的使用权的功能模块,授权所述IO资源的使用权,以便获得所述IO资源的使用权的功能模块使用所述IO资源与外设进行数据交互。In order to obtain the use right of the IO resource, the functional module is authorized to use the IO resource, so that the functional module that obtains the use right of the IO resource uses the IO resource to interact with peripheral devices. 20.根据权利要求19所述的方法,其特征在于,所述为所述多个功能模块的访问请求仲裁所述IO资源的使用权包括:20. The method according to claim 19, wherein the arbitrating the usage rights of the IO resources for the access requests of the multiple functional modules includes: 基于如下至少一项仲裁算法,确定获得所述IO资源的使用权的功能模块:访问请求的到达顺序、访问请求的优先级、发送访问请求的功能模块的权限许可程度;Determine the functional module that obtains the right to use the IO resource based on at least one of the following arbitration algorithms: the arrival order of access requests, the priority of access requests, and the permission level of the functional module that sends the access request; 其中,基于访问请求的到达顺序进行使用权的仲裁时,按照访问请求到达的先后顺序,确定获得所述IO资源的使用权的功能模块;Wherein, when the usage rights are arbitrated based on the arrival sequence of access requests, the functional module that obtains the usage rights of the IO resource is determined according to the arrival sequence of the access requests; 基于访问请求的优先级进行使用权的仲裁时,按照访问请求的优先级从高到低的顺序,确定获得所述IO资源的使用权的功能模块;When arbitrating usage rights based on the priority of the access request, determine the functional module that obtains the right to use the IO resource in order from high to low priority of the access request; 基于发送访问请求的功能模块的权限许可程度进行使用权的仲裁时,按照功能模块的权限许可程度从高到低的顺序,确定获得所述IO资源的使用权的功能模块。When the use rights are arbitrated based on the permission permission level of the functional module that sends the access request, the functional module that obtains the right to use the IO resource is determined in order of the permission permission level of the functional module from high to low. 21.根据权利要求19所述的方法,其特征在于,还包括:21. The method of claim 19, further comprising: 在功能模块获得IO资源的使用权限,并且使用IO资源结束后,获取功能模块发送的释放IO资源的释放请求;基于所述释放请求,解除功能模块使用IO资源的使用权;After the functional module obtains the usage rights of the IO resources and ends using the IO resources, obtain a release request sent by the functional module to release the IO resources; based on the release request, release the functional module's right to use the IO resources; 或者,在功能模块获得IO资源的使用权限,并且使用IO资源结束后,由功能模块解除IO资源的使用权。Or, after the function module obtains the right to use the IO resource and ends using the IO resource, the functional module releases the right to use the IO resource. 22.一种片上系统,其特征在于,包括互联的多个芯粒,所述多个芯粒中的部分芯粒或者全部芯粒为如权利要求1-18任一项所述的芯粒。22. A system on a chip, characterized in that it includes a plurality of interconnected core particles, and some or all of the plurality of core particles are the core particles according to any one of claims 1-18. 23.一种电子设备,其特征在于,包括如权利要求22所述的片上系统,和/或,如权利要求1-18任一项所述的芯粒。23. An electronic device, characterized by comprising the system-on-chip according to claim 22, and/or the core particle according to any one of claims 1-18.
CN202311711712.XA 2023-12-13 2023-12-13 A chip, IO resource sharing method, system on a chip and electronic equipment Pending CN117707426A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311711712.XA CN117707426A (en) 2023-12-13 2023-12-13 A chip, IO resource sharing method, system on a chip and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311711712.XA CN117707426A (en) 2023-12-13 2023-12-13 A chip, IO resource sharing method, system on a chip and electronic equipment

Publications (1)

Publication Number Publication Date
CN117707426A true CN117707426A (en) 2024-03-15

Family

ID=90158352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311711712.XA Pending CN117707426A (en) 2023-12-13 2023-12-13 A chip, IO resource sharing method, system on a chip and electronic equipment

Country Status (1)

Country Link
CN (1) CN117707426A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118733200A (en) * 2024-09-04 2024-10-01 浙江大学 A method for synchronizing multi-chip parallel simulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118733200A (en) * 2024-09-04 2024-10-01 浙江大学 A method for synchronizing multi-chip parallel simulation

Similar Documents

Publication Publication Date Title
JP5036120B2 (en) Communication system and method with unblocked shared interface
US6725313B1 (en) Communications system and method with multilevel connection identification
JP4008987B2 (en) Bus communication system, bus arbitration method, and data transfer method
CN100481052C (en) Internal bus system
CN100483373C (en) PVDM (packet voice data module) generic bus protocol
KR100814904B1 (en) On-Chip Communication architecture
US6345345B1 (en) Data communications device and associated method for arbitrating access using dynamically programmable arbitration scheme and limits on data transfers
JP2007220046A (en) Bus device, bus system and information transfer method
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
EP3716084A1 (en) Apparatus and method for sharing a flash device among multiple masters of a computing platform
CN117707426A (en) A chip, IO resource sharing method, system on a chip and electronic equipment
CN117194309A (en) Controller for inter-chip interconnection, chip, processing system and electronic device
US7581049B2 (en) Bus controller
US7689746B2 (en) Bus system employing an arbiter
CN117806999A (en) Bit width and channel adjustable on-chip bus
Noami et al. High priority arbitration for less burst data transactions for improved average waiting time of Multi-Processor Cores
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
KR100475438B1 (en) Data bus system and method for performing cross-access between buses
CN114443530A (en) Chip interconnection circuit and data transmission method based on TileLink
JP4097847B2 (en) Bus bridge arbitration method
JP5028817B2 (en) Bus system
CN115762596A (en) MCU access memory digital circuit structure
JP2626137B2 (en) Bus control method
CN118331905A (en) Extensible on-chip interconnection bus structure
CN114064531A (en) A system for fast access to remote storage devices based on FPGA

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