pencil and rubber

Logo of Triple-A Level WCAG-1 Conformance, W3C-WAI Web Content Accessibility Guidelines 1.0

XHTML 1.0 Conformance Validation CSS 3 Conformance Validation
Logo of Department of Mathematics and Computer Science, Course on Dedicated systems, link to Forum

Design of a memory-mapped multicore coprocessor

Lecture 12 on Dedicated systems

Teacher: Giuseppe Scollo

University of Catania
Department of Mathematics and Computer Science
Graduate Course in Computer Science, 2017-18

Table of Contents

  1. Design of a memory-mapped multicore coprocessor
  2. lecture topics
  3. design space
  4. codesign evolution of the delay computation
  5. structure of a multicore coprocessor
  6. hardware interface constraints
  7. functions on Collatz trajectories
  8. codesign ideas for functional extensions
  9. references

lecture topics

outline:

design space

possible evolutions of the codesign implemented in the previous lab tutorial may be conceived along two orthogonal development directions:

an example of orthogonal combination of both directions is given by the following objectives for a first project, dealt with in the next lab tutorial:

more significant functional extensions may be identified from consideration of functions, defined over Collatz trajectories, other than the delay but whose computation requires trajectory generation anyway

codesign evolution of the delay computation

a first design alternative to be considered about the replication of the hardware unit for the delay computation is:

the latter option is preferable in view of possible further extensions that would require access by the different instances to shared data, e.g. defined as configuration parameters

other design decisions relate to the number of parallel instances of the computational component, henceforth termed cores, and the size of the coprocessor I/O data

structure of a multicore coprocessor

the 64-bit extension of the single core input is easily obtained by a straightforward modification of the Gezel source from the previous lab tutorial, with the same correction to the VHDL output of the fdlvhd translator

the multicore coprocessor then ought to have circuits for the correct dispatching of I/O data between the interface and a core selected by the processor:

description in VHDL of multiplexing is simple if the core outputs are chained in a 2n×16-bit vector, as it is enough to use a selection operator on the vector

the more complex description in VHDL of demultiplexing is feasible by means of a logical shift operator, as it is exemplified for a generic decoder in Zwolinski, 4.2.3

hardware interface constraints

signal exchange at the multicore coprocessor I/O ports is to be adapted to the available signals of the Avalon-MM interface, taking a few constraints on these into account, such as:

since the Nios II processor may transfer at most 32 bits in a single bus transaction, it is convened that this be the coprocessor word width at the Avalon interface, that is to say, the width of the writedata and readdata signals

the register address space of the coprocessor is thus the interval [0, 3×2n], taking one address for the status register into account, hence address is (n+2)-bit wide

functions on Collatz trajectories

the aforementioned website on the 3x+1 problem is a valuable source of inspiration for the codesign of functional extensions of the system considered hitherto; here are a few functions over Collaz trajectories (defined on the initial values, which determine the trajectories):

certain trajectories are more interesting than others because they establish records (like in a competitive race); in this sense, the following properties are defined: x0 is a

a few considerations follow that are useful to design functional extensions of the codesign finalized to the search of such rarities

codesign ideas for functional extensions

functional extensions of the delay computation core, in order to provide the additional computation of the three functions introduced in the previous page, are fairly simple ones

the selection of the desired functions is to be considered in two different contexts:

it is useful to the search of the aforementioned Records the study of properties of theirs, that a priori exclude whole classes of values of x0 from the search space

optimization techniques for Record search algorithms may be found in the references

references