Commit | Line | Data |
---|---|---|
8d497515 CY |
1 | An Intel MIC X100 device is a PCIe form factor add-in coprocessor |
2 | card based on the Intel Many Integrated Core (MIC) architecture | |
3 | that runs a Linux OS. It is a PCIe endpoint in a platform and therefore | |
4 | implements the three required standard address spaces i.e. configuration, | |
5 | memory and I/O. The host OS loads a device driver as is typical for | |
6 | PCIe devices. The card itself runs a bootstrap after reset that | |
7 | transfers control to the card OS downloaded from the host driver. | |
8 | The card OS as shipped by Intel is a Linux kernel with modifications | |
9 | for the X100 devices. | |
10 | ||
11 | Since it is a PCIe card, it does not have the ability to host hardware | |
12 | devices for networking, storage and console. We provide these devices | |
13 | on X100 coprocessors thus enabling a self-bootable equivalent environment | |
14 | for applications. A key benefit of our solution is that it leverages | |
15 | the standard virtio framework for network, disk and console devices, | |
16 | though in our case the virtio framework is used across a PCIe bus. | |
17 | ||
18 | Here is a block diagram of the various components described above. The | |
19 | virtio backends are situated on the host rather than the card given better | |
20 | single threaded performance for the host compared to MIC, the ability of | |
21 | the host to initiate DMA's to/from the card using the MIC DMA engine and | |
22 | the fact that the virtio block storage backend can only be on the host. | |
23 | ||
24 | | | |
25 | +----------+ | +----------+ | |
26 | | Card OS | | | Host OS | | |
27 | +----------+ | +----------+ | |
28 | | | |
29 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ | |
30 | | Virtio| |Virtio | |Virtio| | |Virtio | |Virtio | |Virtio | | |
31 | | Net | |Console | |Block | | |Net | |Console | |Block | | |
32 | | Driver| |Driver | |Driver| | |backend | |backend | |backend | | |
33 | +-------+ +--------+ +------+ | +---------+ +--------+ +--------+ | |
34 | | | | | | | | | |
35 | | | | |User | | | | |
36 | | | | |------|------------|---------|------- | |
37 | +-------------------+ |Kernel +--------------------------+ | |
38 | | | | Virtio over PCIe IOCTLs | | |
39 | | | +--------------------------+ | |
40 | +--------------+ | | | |
41 | |Intel MIC | | +---------------+ | |
42 | |Card Driver | | |Intel MIC | | |
43 | +--------------+ | |Host Driver | | |
44 | | | +---------------+ | |
45 | | | | | |
46 | +-------------------------------------------------------------+ | |
47 | | | | |
48 | | PCIe Bus | | |
49 | +-------------------------------------------------------------+ |