IDENTIFYING DATA 2022_23
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
victoreduardo.navas@urv.cat
xavier.palomo@urv.cat
francescxavier.iglesias@urv.cat
Lecturers
MILLAN MARCO, PEDRO
SORIANO PROCAS, CARLOS
ROMANÍ ALSO, SANTIAGO
NAVAS MONTENEGRO, VICTOR EDUARDO
PALOMO TERUEL, XAVIER
IGLESIAS MARCA, FRANCESC XAVIER
Web http://http://moodle.urv.net/moodle/course/view.php?id=90202
General description and relevant information <div><p class="MsoNormal">GENERAL DESCRIPTION OF THE SUBJECT: the '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 Input/Output registers, as well as synchronisation of access to controllers through polling and interrupt techniques. All these concepts are exemplified using the Nintendo™ DS 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.
 CT3 Resoldre problemes de manera crítica, creativa i innovadora en el seu àmbit d’estudi
  CT4 Treballar de forma autònoma i en equip amb responsabilitat i iniciativa
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.
 CT3 Identify the situation as a problem in the field and be sufficiently motivated to face up to it.
Follow a systematic method to divide a problem into parts, identify the causes and apply the knowledge specific to the discipline.
Design a new solution by using all the resources necessary to cope with the problem.
Include the details of the proposed solution in a realistic model.
Reflect on the model proposed, find shortcomings and suggest improvements.
  CT4 Identify the role they play in the group and understand the group’s objectives and tasks
Communicate and act within the group in such a way that they facilitate cohesion and performance.
Commit to the group’s tasks and agenda.
Participate in the group in a good working environment and help to solve problems.
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 Movable graphic objects (sprites)
5 Input/Output synchronization 5.1 Necessity of 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 transfer processes 6.1 Transfer through CPU
6.2 Transfer through DMA (Direct Memory Access)
6.3 The DMA controller
6.4 Examples of DMA transfer
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
18 18 36
Problem solving, exercises in the classroom
A7
CM9
14 14 28
Laboratory practicals
A7
CM9
20 20 40
Personal attention
4 0 4
 
Extended-answer tests
A7
CM9
2 10 12
Practical tests
A7
CM9
B3
B8
2 16 18
Multiple-choice objective tests
A7
CM9
1 10 11
 
(*) 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 is 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 usually 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. The meetings could be face-to-face or online, previously appointed by e-mail.

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 code 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 the implemented tasks (mandatory). At the end of each phase, it will be necessary to upload the source code in the git server of the department, before the deadline set for each phase and evaluation call. It is highly recommended to upload commits progressively, not a single commit with the last version. Each member of the group will be interviewed individually. The grades will be independent to the rest of the group, and will be 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, implementing 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 (access to I/O registers, synchronisation through polling/interruption, etc.), as well as low-level computer programming (machine language). 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 evaluation 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 for the tests with grades below the minimum (4 out of 10), the other grades will be preserved as-is in the following call. 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, the use of any electronic devices will not be allowed, nor to consult any notes.

The test and problem exams will be done in person. The practice interviews will be carried out by means of a face-to-face meeting or through virtual meeting, as stablished by the evaluator.


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
FUNDAMENTALS OF OPERATING SYSTEMS/17234112
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.