IDENTIFYING DATA 2019_20
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
Lecturers
MILLAN MARCO, PEDRO
SORIANO PROCAS, CARLOS
ROMANÍ ALSO, SANTIAGO
ROMERO TRIS, CRISTINA
Web http://moodle.urv.net/moodle/course/view.php?id=31532
General description and relevant information Strengthens the low level programming of computers introduced in the course 'Computer Fundamentals', especifically on Inputs and Outputs, using a hardware platform based on an ARM processor.

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 organization of a programable system 2.1 Components of a computer
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 the main components
3.2 Maps of memory and input/output registers
3.3 Example of an input/output controller: buttons
4 NDS screens controllers 4.0 Introduction to computer graphics (2D)
4.1 Interconnection of the graphic components
4.2 Graphic background modes
4.3 Bancs of Video-RAM
4.4 Frame Buffer mode
4.5 Background control registers
4.6 Text backgrounds
4.7 Rotation/Scale backgrounds
4.8 Movable 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 Interrupt controller
5.5 Management of interrupt service routines (ISR)
5.6 Syncrhonization by time interruptions
6 Processes of Input/Output transfers 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 NDS Sound controller 7.1 Basic features
7.2 Playing sampled sound
7.3 Polifonic sound and frequency variation
7.4 Access to the sound controller hardware
8 Communication between ARM9 and ARM7 processors 8.1 Necessity for communication between processors
8.2 Synchronization through IPCSYNC
8.3 Example of synchronization
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 Presentació de l'assignatura
Lecture Explicació teòrica dels continguts de l'assignatura. Sempre que es pugui s'utilitzarà material propi (documents PDF) que es projectarà amb el canó de vídeo
Problem solving, exercises in the classroom Problemes i exercicis que es resoldran a classe per tal de reforçar els coneixements teòrics
Laboratory practicals Desenvolupament d'un programa sobre la plataforma NDS, amb rutines escrites en llenguatge màquina del processador ARM i parts escrites en llenguatge C. El programa consistirà en un joc matricial
Personal attention Hores de consulta per esclarir dubtes sobre teoria, problemes o la pràctica

Personalized attention
Description
Hores de consulta: 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, in order 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. 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 parts of each member 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 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). 40
Multiple-choice objective tests
A7
CM9
Multiple-choice test in the Moodle with about 30 questions of single answer over 4 options, about every concept explained in the regular lectures. 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 the tests, it will not be allowed the use of any electronic device, nor to consult any writen 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 submited exam on that call.


Sources of information

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

There are also available, at the Moodle space, the didactic materials developed by the same professors of the subject.

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 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.