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 |
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 |
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 |
Methodologies :: Tests |
|
Competences |
(*) Class hours
|
Hours outside the classroom
|
(**) Total hours |
Introductory activities |
|
1 |
0 |
1 |
Lecture |
|
18 |
18 |
36 |
Problem solving, exercises in the classroom |
|
14 |
14 |
28 |
Laboratory practicals |
|
20 |
20 |
40 |
Personal attention |
|
4 |
0 |
4 |
|
Extended-answer tests |
|
2 |
10 |
12 |
Practical tests |
|
2 |
16 |
18 |
Multiple-choice objective tests |
|
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
|
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 |
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 |
Methodologies |
Competences
|
Description |
Weight |
|
|
|
|
Practical tests |
|
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 |
|
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 |
|
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. |
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 |
|
|
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 |
|
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. |
|