logo Insalogo Insa

Software and hardware architecture for computer systems


Programme (detailed contents):

The Automata Theory and Languages
Hardware architecture for computer systems
Information systems project: development of a compiler and associated processor architecture



This teachings is composed of lectures, tutorials and lab classes. The courses present the key concepts, which are then detailed in tutorials. Lab classes are used to fix ideas by applying different concepts of the course, with the support of computers systems and experimentations.



Main difficulties for students:


The specification of concurrent behavior is difficult to understand during the first course. The use of formal models such as grammar is not obvious despite the habit of students to use programming languages.


At the end of this module, the student will have understood and be able to explain (main concepts):

- Manipulation of with various type automata, language theory, parsers, compilers;

- Internals of a compiler, management and allocation of memory of a program;

- Specification of hardware components and architectures in a high-level language;

- Taking Into account the specific material constraints for embedded systems with limited resources.


The student will be able to:

- Create parsers from the specification of data files, create compilers while considering constraints from the environment (embedded or not). Propose an approach to generate code while parsing a file.
- Understand and control processor architectures: pipeline, branch hazards, branch prediction unit, DMA, MMU (paging and segmentation), data hazards, multi-core

- To select a processor architecture adapted to the software application and environment.
- Specify a hardware system in a concurrent language used widely in industry, VHDL and implement this system in an FPGA.

Form of assessment

The evaluation of outcome prior learning is made as a continuous training during the semester. According ot the teaching, the assessment will be different: as a written exam, an oral exam, a record, a written report, peers review...