Aquesta assignatura és una introducció a l’estructura i arquitectura de computadors i pretén donar els conceptes bàsics del disseny d’un processador, així com descriure els fonaments de la programació en llenguatge assemblador.
En finalitzar l’assignatura els alumnes han de comprendre els blocs fonamentals d’un processador i els elements que componen els computadors actuals. A més a més, han de ser capaços de programar en llenguatge assemblador i d’invocar rutines escrites en diferents llenguatges de programació o en llenguatge assemblador des de qualsevol programa.
• Introduir l'alumne a l'estructura i a l’arquitectura d'ordinadors incidint en els aspectes de disseny i de funcionalitat de cadascun dels seus blocs.
• Conèixer els fonaments del llenguatge assemblador, les modalitats d’adreçament, el conjunt d’instruccions i ser capaç d’escriure programes de complexitat mitjana.
• Introduir el concepte de pila, la seva utilització i l’ús de subrutines com a suport als llenguatges d’alt nivell.
• Conèixer els fonaments per enllaçar programes en llenguatge assemblador amb programes escrits en llenguatges d’alt nivell.
• Saber analitzar i usar un processador actual del mercat.
• Entendre l’arquitectura d’un computador, els elements que la componen, la codificació de les instruccions i les fases d’execució d’una instrucció.
• Ser capaços d’escriure aplicacions en llenguatge màquina de qualsevol arquitectura RISC o CISC.
• Ser capaços d’invocar subrutines escrites en llenguatge màquina des de llenguatges d’alt nivell i a l’inrevés.
• Ser capaços d’escriure rutines de servei d’interrupcions per a dispositius d’entrada/sortida i accedir als dispositius en general.
• Entendre el concepte de concurrència i paral•lelisme aplicat a les arquitectures de computadors.
• Saber analitzar les característiques d’un nou processador actual.
• Per tal d’assolir els objectius de l’assignatura s’aniran combinant les classes teòriques amb les classes de problemes i de laboratori.
• En les classes teòriques, s’exposaran els conceptes fonamentals de l’assignatura que serviran de base per al desenvolupament de problemes i de les pràctiques del curs.
• En les classes de problemes, es plantejaran qüestions que ajudaran a la comprensió dels temes teòrics i també al desenvolupament de les pràctiques.
• En les classes de laboratori, es desenvoluparan les pràctiques del curs que consistiran en el disseny de programes amb llenguatge assemblador on s’abordaran els diversos conceptes estudiats durant el curs.
• És molt important practicar amb petits programes en llenguatge màquina a fi d’agafar agilitat en la programació de baix nivell i poder obtenir les capacitats requerides per a l’assignatura.
• En ocasions, ens reservem una part inicial de pràctiques per possibles consultes, resolució de dubtes, i seguiment dels projectes.
•L’alumne ha de consultar periòdicament l’assignatura en la intranet de l’escola per tal de veure les últimes novetats, noticies, resultats obtinguts etc..
• La intranet serà el lloc de lliurament de les pràctiques / exercicis en l’avaluació continuada.
• En aquesta modalitat, l’alumne realitza els treballs virtuals, els lliura en les dates indicades, es presenta als controls presencials i a les validacions marcades en el calendari durant el semestre.
• La nota final per avaluació continuada és : Nota=TV*40% + CP*60%
• En cas de no aprovar per avaluació continuada, pot disposar d’una segona oportunitat en les condicions d’avaluació final (pròxim apartat)
• En aquesta modalitat, l’alumne realitza els treballs virtuals, els lliura en les dates indicades, i pot efectuar la validació dels TVs o bé en les dates indicades en el calendari semestral, o bé totes de cop en les dates indicades en el calendari final d’exàmens.
• Cal un mínim de 4 de mitjana en els TVs per poder-se presentar a l'examen teòric final
• La nota final queda : Nota=TV*40% + EF*60%
Material del professor
Apunts format transparència dels continguts de l’assignatura. (Campus)
Recull d’activitats (activitats guiades treballades a hores lectives) (Campus)
Llibre de referència 1:
Organización y Arquitectura de Computadors 7ª edición
William Stallings
ISBN 10 : 84-8966-082-4
ISBN 13 : 978-84-8966-082-4
Editorial PEARSON Prentice Hall
Llibre de referència 2 (Web) :
Estructura d'Ordinadors
Miquel Albert Orenga, Gerard Enrique Manonellas
FUOC 2015
PID_00218224
http://materials.cv.uoc.edu/daisy/Materials/PID_00218225/html5/index.html
Erskine, Robert
Programación del 8088/8086
Anaya Multimedia, 1987
Tanenbaum, Andrew S.
Organización de computadoras. Un enfoque estructurado.
4a edició. Prentice-Hall, 2000
Culler, David E.
Parallel computer architecture: a hardware/software approach
Morgan Kaufmann Publishers Inc, 1999
Patterson, David A & Hennessy, John L.
Computer organization and design: the hardware/software interface
Morgan Kaufmann Publishers Inc, 1998
• Qualsevol treball virtual lliurat fora de termini es considera un 0.
• Un treball virtual no validat és un 0, altrament és la nota obtinguda.
• La defensa de les pràctiques es pot fer de forma presencial una a una en hores lectives en les dates indicades en el calendari (marcades com ‘Defensa’) o bé totes de cop escollint una de les dues dates marcades com a ‘Defensa Pràctiques finals’.
1. Introducció a l’estructura dels ordinadors i conceptes generals
1.1. Estructura i arquitectura d’ordinadors
1.2. Arquitectures RISC i CISC
1.3. Elements bàsics de l’estructura dels ordinadors
1.4. Definició d’una arquitectura elemental
1.5. Conceptes generals
2. Mètodes d’adreçament
2.1. Introducció
2.2. Mètodes d’adreçament
2.3. Exemples concrets en arquitectures
3. Conjunt d’instruccions
3.1. Introducció
3.2. Conjunt d'instruccions
3.3. Exemples concrets en arquitectures
4. La pila (Stack) i subrutines
4.1. Concepte de pila
4.2. Tipus de pila
4.3. Implementació
4.4. Subrutines introducció
4.5. Implementació
4.6. Tipus de subrutines
4.7. Mètodes per emmagatzemar l’adreça de retorn
4.8. Trucades i pas de paràmetres
4.9. Exemples concrets en arquitectures
5. Entrada sortida
5.1. Introducció
5.2. Estructura general
5.3. Organització
5.4. Interfícies E/S
5.5. Detecció i implementació
5.6. DMA
5.7. Exemples concrets en arquitectures
6. Introducció a les arquitectures avançades
6.1. Segmentació d’instruccions
6.2. Exemple 80x86
6.3. Arquitectura superescalar
6.4. Qüestions relacionades amb el disseny
6.5. Exemple d’arquitectura DLX
7. Jerarquia de memòries
7.1. Conceptes bàsics i definicions
7.2. Memòries DRAM (asíncrones)
7.3. Memòries síncrones
7.4. Memòria cau
8. Programació llenguatge màquina
8.1. Programació Intel x86
8.2. Programació Intel x86 i llenguatges alt Nivell
8.3. Programació amb arquitectura RISC
8.4. Programació amb arquitectura DLX