IDENTIFYING DATA 2021_22
Subject (*) COMPUTERS Code 17234107
Study programme
Bachelor's Degree in Computer engineering (2010)
Cycle 1st
Descriptors Credits Type Year Period
6 Compulsory Second 1Q
Language
Català
Department Computer Engineering and Mathematics
Coordinator
ROMANÍ ALSO, SANTIAGO
E-mail pere.millan@urv.cat
carlos.soriano@urv.cat
santiago.romani@urv.cat
cristina.romero@urv.cat
victoreduardo.navas@urv.cat
Lecturers
MILLAN MARCO, PEDRO
SORIANO PROCAS, CARLOS
ROMANÍ ALSO, SANTIAGO
ROMERO TRIS, CRISTINA
NAVAS MONTENEGRO, VICTOR EDUARDO
Web http://moodle.urv.net/moodle/course/view.php?id=31532
General description and relevant information <div><p class="MsoNormal">Due to COVID-19, it is possible that some theory classes, problem classes or laboratory classes must be held online or, at least, through a mixed model, i.e., by turns, some students will be allowed to attend the class in person and the others will be able to attend the class online. This proposal is indicative, thus eventual changes may rise, which will be conveniently reported in the Moodle space of the subject.</p><p class="MsoNormal">&nbsp;</p><p class="MsoNormal">GENERAL DESCRIPTION OF THE SUBJECT: 'Computers' course delves into the learning of low-level programming introduced in the 'Computer Fundamentals' course, focusing on aspects related to Input/Output controllers, that is, bus connection and access to registers of I/O controllers, as well as access synchronization through polling and interrupt techniques. All these concepts are exemplified using the Nintendo™ DS hardware platform, which includes two ARM processors and several built-in I/O controllers (screen, buttons, timers, DMA, sound, etc.).</p></div>

Competences
Type A Code Competences Specific
 A7 Be able to define, evaluate and select hardware and software platforms for the development and execution of IT systems, services and applications.
 CM9 Know, understand and evaluate the structure and architecture of computers, and the basic components that comprise them.
Type B Code Competences Transversal
 B3 Be able to solve problems with initiative, make decisions, be creative, use critical reasoning and communicate and transmit knowledge, abilities and skills in the field of the profession of technical IT engineer.
 B8 Be able to work in groups and in a multilingual and multidisciplinary environment.
Type C Code Competences Nuclear

Learning outcomes
Type A Code Learning outcomes
 A7 Reinforce their knowledge of the organisation and functioning of Von Neumann structure subsystems: processor, memory, and input/output.
Know how to use assembly language tools to generate programs in machine language for ARM processors.
Sap enllaçar rutines escrites en Llenguatge Assemblador d'ARM amb un programa escrit en llenguatge C.
Use debugging tools to monitor programs written in machine language.
Understand the functions of the interfaces between the computer and peripheral devices, in other words, the input/output drivers.
Be able to analyse polling- and interrupt-based synchronisation methods, and design routines that use these methods effectively and efficiently.
Understand the method of information transfer through direct memory access (DMA) controllers, and design routines that use this method effectively.
Know other more sophisticated systems to manage the Input/Output transfer, based on specialised auxiliary processors.
 CM9 Reinforce their knowledge of the organisation and functioning of Von Neumann structure subsystems: processor, memory, and input/output.
Understand the format of the instructions and the Machine Language data of ARM processors, and know how to locate this information in the memory of the computer.
Be able to analyse a significant set of instructions and addressing modes of the machine language of ARM-compatible processors.
Know how to use assembly language tools to generate programs in machine language for ARM processors.
Translate algorithmic structures (sequential, conditional, iterative) to ARM assembly language.
Convert functions of programs written in the language C to the equivalent in ARM assembly language, in other words, subroutines with parameter passing and result return, both by value and by reference.
Know how to link routines written in ARM assembly language with a program written in the language C.
Use debugging tools to monitor programs written in machine language.
Understand the functions of the interfaces between the computer and peripheral devices, in other words, the input/output drivers.
Be able to analyse polling- and interrupt-based synchronisation methods, and design routines that use these methods effectively and efficiently.
Understand the method of information transfer through direct memory access (DMA) controllers, and design routines that use this method effectively.
Know other more sophisticated systems to manage the Input/Output transfer, based on specialised auxiliary processors.
Type B Code Learning outcomes
 B3 Configure a system of switches.
Be able to solve problems in an ingenious manner using initiative and creativity whilst taking into account the concepts of the subject.

 B8 Participates and collaborate actively in the team tasks, carries out personal contribution within the time allotted, takes into account the contributions of others and gives constructive feedback.
Type C Code Learning outcomes

Contents
Topic Sub-topic
1 Introduction 1.1 Overview of the NDS system
2 Internal organisation of a programable system 2.1 Computer components
2.2 Bus access regulation (Chip Select)
2.3 Memory address controller
2.4 Reflected memory zones
2.5 Access to input/output registers
3 Internal organization of the NDS platform 3.1 Interconnection of main components
3.2 Memory maps and input/output registers
3.3 Example of an input/output controller: buttons
4 The NDS display controllers 4.0 Introduction to computer graphics (2D)
4.1 Interconnection of graphic components
4.2 Graphic background modes
4.3 Video RAM memory banks
4.4 Frame Buffer mode
4.5 Background control registers
4.6 Text backgrounds
4.7 Rotation/Scale backgrounds
4.8 Moving graphical objects (sprites)
5 Input/Output synchronization 5.1 Necessity for I/O synchronization
5.2 Synchronization by polling
5.3 Synchronization by interruptions
5.4 The interrupt controller
5.5 Management of Interrupt Service Routines (ISR)
5.6 Synchronization by timed interruptions
6 Input/Output transfers processes 6.1 Transfers through CPU
6.2 Transfers through DMA (Direct Memory Access)
6.3 The DMA controller
6.4 Examples of DMA transfers
7 The NDS Sound controller 7.1 Basic features
7.2 Playing sampled sound
7.3 Polyphonic sound and frequency variation
7.4 Access to the sound controller hardware
8 Communication between ARM9 and ARM7 processors 8.1 Necessity of communication between processors
8.2 Synchronisation through IPCSYNC
8.3 Example of synchronisation
8.4 Information transfer through IPCFIFO
8.5 Example of transfer

Planning
Methodologies  ::  Tests
  Competences (*) Class hours
Hours outside the classroom
(**) Total hours
Introductory activities
1 0 1
Lecture
A7
CM9
16 16 32
Problem solving, exercises in the classroom
A7
CM9
10 22 32
Laboratory practicals
A7
CM9
24 24 48
Personal attention
4 0 4
 
Extended-answer tests
A7
CM9
2 16 18
Practical tests
A7
CM9
B3
B8
2 0 2
Multiple-choice objective tests
A7
CM9
1 12 13
 
(*) On e-learning, hours of virtual attendance of the teacher.
(**) The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies
  Description
Introductory activities Presentation of the subject
Lecture Theoretical explanation of the subject content. Whenever possible, own teaching materials (PDF documents) will be used on a video projector
Problem solving, exercises in the classroom Problems which will be solved in class (with the students participation) to strengthen theoretical concepts
Laboratory practicals Development of a program for the NDS platform, with machine language routines for ARM processors and some code written in C language. The program will mainly be a game over a matrix of cells
Personal attention Guidance hours for clarifying doubts on theory, problems or practicals

Personalized attention
Description

Time reserved for solving students' doubts with individual attention. Due to the current health emergency, this attention will only be carried out through online meetings, previously appointed by e-mail or any other online tool.

Official schedule for personalised attention: http://deim.urv.cat/personal/llistat/15.html


Assessment
Methodologies Competences Description Weight        
Practical tests
A7
CM9
B3
B8
It will be required to make a program using C and ARM machine language, to implement a game on the NDS platform. The program will be developed in two phases. Students will join in groups of up to 4 members, each one will be in charge of developing some tasks for each phase, and a specific testing program to evaluate the expected working of implemented tasks (mandatory). At the end of each phase, every member will be interviewed individually. The grades will be independent with respect to the rest of the group, and maybe limited according to the number of tasks that have been integrated into the final program. The final grade of the practical tests will be computed as the arithmetic mean of the two grades of the interviews. It will be required to achieve a minimum grade of 4 (out of 10) in each phase in order to have the right to compute the final grade of the subject. 30
Extended-answer tests
A7
CM9
A 2 hours exam in which it will be required to solve a specific problem, consisting in implement a program on the NDS platform to do tasks that need input/output of information, using C and ARM machine language. In the given solution, the student must demonstrate that he/she has a sound understanding of the basic techniques for programming processes for Input/Output information (acces to I/O registers, sincronization through polling/interruption, etc.). 40
Multiple-choice objective tests
A7
CM9
Moodle questionary with around 15 questions about every concept explained in subject lectures. Questions may be of single answer over 4 options, where each wrong answer subtract 1/3 of the value of a right answer, or calculated answer, where wrong answers do not subtract any value. 30
Others  
 
Other comments and second exam session

It will be required a minimum grade of 4 out of 10 in every assessment of the subject (in each phase of the practical tests, extended-answer test, objective multiple-choice test), in order to have the right to pass the subject, either in first and second call.

The subject will be passed if the weighted mean of the assessments, rounded to the unity, is above or equal to 5 out of 10.

The evaluation in the second call presents the same structure than in the first call, i.e., practical tests (two phases), extended-answer test and objective multiple-choice test, but it will only be necessary to go in for the tests with grades below the minimum (4 out of 10). Students that want to improve their grades will also be allowed to take again their passed tests, although it must be understood that the final grade will be the one corresponding to the last provided solution, although it was worse than the previous one.

During the completion of all tests, it will not be allowed the use of any electronic device, nor to consult any notes.

During the extended-answer test, the time limit should be strictly respected. All solutions submitted just a second after the time limit will be rejected, which will lead to a grade such as not submitted exam on that call.

The test and problem exams will be done in person. Due to the health emergency, the practice interviews will be carried out by means of an individual videoconference.


Sources of information

Basic William Holh, ARM Assembly Language: Fundamentals and Techniques, CRC Press, 2009

The basic sources of information are the didactic materials developed by own professors of the subject, available at Moodle.

Complementary

Recommendations

Subjects that continue the syllabus
COMPUTER STRUCTURE/17234108
OPERATING SYSTEM STRUCTURES/17234113

Subjects that are recommended to be taken simultaneously
PROGRAMMING/17234114

Subjects that it is recommended to have taken before
FUNDAMENTALS OF COMPUTERS/17234002
THE FUNDAMENTALS OF PROGRAMMING I/17234001
THE FUNDAMENTALS OF PROGRAMMING II/17234131
(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.