If a person who is far from the computer industry, ask what is inside the processor, the answer is likely to 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 memory controller). But how these blocks are connected with each other, the answer is likely to be hampered or will respond incorrectly. But someone probably wants to know this! Let's satisfy the healthy curiosity of respected workers.
In a series of articles, the first of which is now in front of you, we will try to tell as simple as possible about the most recent advances in processor design, namely, about 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 block count went to dozens (for some processors, it has already exceeded one hundred). Shared tire has become the bottleneck that limits productivity growth and scalability.
Communication factories are a modern approach to building a system of internal connections for functional blocks (cores, controllers of various buses, interfaces and memory, video accelerators, etc.) of the processor chip. Its purpose is to provide the required bandwidth 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 common bus for data transmission, then all other blocks are waiting for the bus to become free to occupy it for their needs. Inside the communication factory, multiple transactions can take place at the same time, carried out by different devices and at different stages of execution.
')
Intel Atom CE4100 interconnect system and attached blocks
However, many difficulties are associated with the design of communication factories, which I will briefly describe.
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.) differs significantly from that used in embedded systems (ad-hoc). As part of systems on a chip, communication factories often solve the problems of input / output and the execution of the cache integrity protocol. 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 transmissions inside the factory, as well as the complexity 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 tire and blocks connected to it
The design process solves the functional verification and performance-related characteristics, cost analysis (chip area, power consumption, development cost) and multi-level optimization (logical performance vs physical aspects of the device’s integrated performance).
If we consider the problem of verifying the characteristics of a factory, it turns out that current means of formal verification are not able to analyze systems of such complexity. As a rule, the analysis of performance and correctness is based on simulation. In this case, the probability of missing significant boundary cases is high, which does not allow obtaining reliable performance guarantees. And to make sure that there are no deadlocks (the so-called deadlocks and livelocks) with this approach is simply impossible. In addition, a number of dead-end scenarios cannot be detected in principle by analyzing parts of the system separately - it is necessary to consider the communication factory in a specific configuration, along with agents connected to it.
These are the difficult tasks facing Intel's (and not only) designers. In the following messages we will complete the story about the communication factories, in order to later uncover a new processor theme.