Communication factories and what they eat with


    If a person who is far from the computer industry is asked what is inside the processor, the answer will most likely be limited to the words “computer brain”. Those who are closer to this topic will name about a dozen different blocks (for example, cache, cores, and a memory controller). But here is how these blocks are connected to each other, it is most likely difficult to answer or answer incorrectly. But someone probably wants to know! Let's satisfy the healthy curiosity of respected habrozhitel.

    In a series of articles, the first of which is now in front of you, we will try to tell you in the simplest possible words about the latest advances in processor engineering, namely, communication factories, a new approach to the interaction of processor components.

    Initially, the functional blocks inside the processor were connected by a common data bus. But the complexity of the processors grew, and the count went to dozens of units (for some processors already exceeded a hundred). The shared bus has become a bottleneck limiting productivity growth and scalability.

    Communication factories (communication fabrics) is a modern approach to building a system of internal connections of functional blocks (cores, controllers of various buses, interfaces and memory, video accelerators, etc.) of the processor chip. Its purpose is to provide the required throughput and scalability of the architecture (within the same processor family such things as the number of cores, the presence / absence of some nodes and functions can vary), overcoming the limitations inherent in other solutions. If one device uses a shared bus for data transfer, then all other blocks wait until the bus is free to occupy it for their needs. Inside the communication factory, at the same time, many transactions can occur that are carried out by different devices and are at different stages of execution.


    Intel Atom CE4100 Connection System and the Units Connected to It

    However, there are many difficulties associated with the design of communication factories, which I will try to outline briefly.

    Now communication factories are used in processors for almost all segments of the computer market: from high-performance server and graphics solutions, to desktop and embedded systems. The architecture of factories for hi-end systems (rings, meshes, etc.) is significantly different from that used in embedded systems (ad-hoc). As part of systems on a chip, communications factories often solve I / O and cache integrity protocol execution tasks. Therefore, the design of communication factories places high demands on quality (correctness, performance, power consumption, reliability) and the speed of integration into modern and future products.

    Designing communication factories is one of the biggest problems, due to the complex and distributed nature of data transfers within the factory, as well as the intricacy of the interaction between the factory and the nodes connected to it. The situation is complicated by the fact that the factory needs to correctly and efficiently implement the high-level protocols used by the nodes.


    SandyBridge-EX ring bus and units connected to it

    During the design process, the tasks of checking functional and performance-related characteristics, cost analysis (crystal area, power consumption, development price) and multi-level optimization (logical performance vs physical aspects of the integral design of the device) are solved.

    If we consider the problem of checking the characteristics of the factory, it turns out that the current means of formal verification are not able to analyze systems of such complexity. As a rule, the conducted analysis of performance and correctness is based on simulation modeling. At the same time, it is highly likely to miss significant boundary cases, which does not allow to obtain reliable guarantees of performance. And to make sure that there are no deadlock states (the so-called deadlocks and livelocks) with this approach is simply impossible. In addition, a number of deadlock scenarios, in principle, cannot be detected by analyzing parts of the system separately - it is necessary to consider the communication factory in a specific configuration, together with the agents connected to it.

    These are the difficult tasks facing Intel's (and not only) designers. In the following posts, we will complete the story about communication factories, in order to then reveal the new processor topic.

    Also popular now: