Multicore Technology: Architecture, Reconfiguration, and Modeling (Embedded Multi-Core Systems)
Muhammad Yasir Qadri
Format: PDF / Kindle (mobi) / ePub
The saturation of design complexity and clock frequencies for single-core processors has resulted in the emergence of multicore architectures as an alternative design paradigm. Nowadays, multicore/multithreaded computing systems are not only a de-facto standard for high-end applications, they are also gaining popularity in the field of embedded computing.
The start of the multicore era has altered the concepts relating to almost all of the areas of computer architecture design, including core design, memory management, thread scheduling, application support, inter-processor communication, debugging, and power management. This book gives readers a holistic overview of the field and guides them to further avenues of research by covering the state of the art in this area. It includes contributions from industry as well as academia.
out option makes the RC very efficient for streaming algorithms. 1.4 The MORA Intermediate Representation The aim of the MORA Intermediate Representation (IR) language is to serve as a compilation target for high-level languages such as MORA-C++ whilst at the same time providing a means of programming the MORA processor array at a low level. The language consists of three components: a coordination component MORA: High-Level FPGA Programming Using a Many-Core Framework 13 which permits
slice; Remove the group with the lowest weight from the set, assign to the first RC; Repeat the procedure until the set contains 0 or 1 slices (NS times if NS is even, NS − 1 times if NS is odd); Using the combined slices, repeat the procedure for the next level of the tree; Finally, if SN is odd, prune the tree, i.e., remove any intermediate RCs that return the same slice as they receive; Merge algorithm The complement of the split algorithm follows entirely the same pattern: a merge tree can
Reconfiguration, and Modeling Wait(clk) Wait(clk) Element Element 11 Wait(clk) Wait(clk) Element Element 22 Wait(clk) Wait(clk) Element Element 33 Wait(clk) Wait(clk) (a) (a) (a) Time=clk Time=clk Element Element 11 Time+=clk Time+=clk Element Element 22 Element Element 33 Time+=clk Wait(time+clk) Wait(time+clk) Time+=clk (b) (b) (b) FIGURE 3.3 Two approaches for TLM abstraction level: (a) timed TLM or time-driven, and (b) approximate-timed TLM or event-driven (Guerre et al.
Abstraction Layer A computation task is a standalone program, which can use the SESAM HAL to manage shared memory allocations and explicit synchronizations. This HAL is summarized in Table 3.1. It can be extended to explore other memory management strategies. This HAL provides memory allocation, read/write shared memory access, debugging, and page synchronization functions. Each item of data is defined by a data identifier, which is used to communicate between the memory management unit and the
simulation early in the design process drastically reduces development costs and improves final products. SESAM: A Virtual Prototyping Solution to Design Multicore Architectures 103 Acknowledgments Part of the research leading to these results has received funding from the ARTEMIS Joint Undertaking under grant agreement No. 100029. The authors would like to thank Rapha¨el David, Guillaume Blanc, Nassima Boudouani, and Larbi Moutaoukil for their helpful contributions to this work. We would also