79
Arquitectura y Arquitectura y programación de programación de computadoras computadoras Eugenio Jacobo Hernández Valdelamar Eugenio Jacobo Hernández Valdelamar Notas del curso Notas del curso Sesiones 1 a 3 Sesiones 1 a 3 v.1.0 2008 v.1.0 2008 http://creativecommons.org/licenses/by-nc-nd/2.5/mx/

Arquitectura y programación de computadoras (1-3)

Embed Size (px)

DESCRIPTION

E J Hernández Valdelamar. Notas del curso de arquitectura y programación de computadoras. Sesiones 1 a 3. 2008.

Citation preview

Page 1: Arquitectura y programación de computadoras (1-3)

Arquitectura y Arquitectura y programación de programación de computadorascomputadorasEugenio Jacobo Hernández ValdelamarEugenio Jacobo Hernández Valdelamar

Notas del cursoNotas del curso

Sesiones 1 a 3Sesiones 1 a 3

v.1.0 2008v.1.0 2008

http://creativecommons.org/licenses/by-nc-nd/2.5/mx/

Page 2: Arquitectura y programación de computadoras (1-3)
Page 3: Arquitectura y programación de computadoras (1-3)

IntroducciónIntroducción

Durante 2008 tuve la oportunidad de impartir esta materia en la FAR. Es un Durante 2008 tuve la oportunidad de impartir esta materia en la FAR. Es un tema extenso que decidí intentar cubrir integralmente con teoría e tema extenso que decidí intentar cubrir integralmente con teoría e información de electrónica, matemática discreta, computación e información de electrónica, matemática discreta, computación e informática. Durante el curso incluso se usaron algunas herramientas de informática. Durante el curso incluso se usaron algunas herramientas de simulación de electrónica digital, y otras tantas.simulación de electrónica digital, y otras tantas.

Lo más importante es que los participantes comprendan como funcionan Lo más importante es que los participantes comprendan como funcionan las computadoras y darles la oportunidad de hacer algo que les permita las computadoras y darles la oportunidad de hacer algo que les permita entender su funcionamiento, aplicaciones y su integración en nuestro entender su funcionamiento, aplicaciones y su integración en nuestro entorno; de otra manera estarán condenados a seguir siendo usuarios.entorno; de otra manera estarán condenados a seguir siendo usuarios.

E J Hernández Valdelamar, marzo 2011.E J Hernández Valdelamar, marzo 2011.

Page 4: Arquitectura y programación de computadoras (1-3)

Sesión 1Sesión 1

Computadoras: una primera Computadoras: una primera aproximación a su estructura y aproximación a su estructura y componentes.componentes.

Page 5: Arquitectura y programación de computadoras (1-3)

¿Qué hacemos ¿Qué hacemos todos los días?todos los días?

Page 6: Arquitectura y programación de computadoras (1-3)

Solucionar problemasSolucionar problemas

Page 7: Arquitectura y programación de computadoras (1-3)

Manos a la obra: Manos a la obra: HerramientasHerramientas

Page 8: Arquitectura y programación de computadoras (1-3)

Herramientas de Herramientas de mediciónmedición

Page 9: Arquitectura y programación de computadoras (1-3)

Herramientas de cálculoHerramientas de cálculo

Page 10: Arquitectura y programación de computadoras (1-3)

Máquinas calculadorasMáquinas calculadoras

Page 11: Arquitectura y programación de computadoras (1-3)

Computadoras ->herramientas Computadoras ->herramientas para la solución de problemaspara la solución de problemas

Entrada SalidaProcesamiento

Page 12: Arquitectura y programación de computadoras (1-3)

Componentes básicos de Componentes básicos de hardwarehardware

Bus

Dispositivos de entrada

Dispositivos de salida

Unidad central de

procesamiento

Memoria principal

TecladoUnidades de discoCintas MouseLectores de código de barras

Unidades de discoCintas ImpresorasMonitores

Registrosinstrucciones RAM

Page 13: Arquitectura y programación de computadoras (1-3)

Un camino para entender como Un camino para entender como funcionan las computadorasfuncionan las computadoras

Como niños chiquitos, desarmar y armar cosas es muy ilustrativo; sinembargo, el armado de una PC hoy día solo implica el ensamblaje de componentes. Se gana en habilidad técnica.

Page 14: Arquitectura y programación de computadoras (1-3)

Un camino más seguro: Un camino más seguro: máquinas virtualesmáquinas virtuales

VM

System virtual machine

Process virtual machine

Page 15: Arquitectura y programación de computadoras (1-3)

InvestigaciónInvestigación

¿Qué es arquitectura?¿Qué es arquitectura? En el contexto de la informática:En el contexto de la informática: ¿Qué es…?¿Qué es…?

Arquitectura de computadorasArquitectura de computadoras Arquitectura de informaciónArquitectura de información Arquitectura de softwareArquitectura de software

¿Cómo hacer una máquina sumadora?¿Cómo hacer una máquina sumadora? ¿Quién fue Alan Turing? ¿Qué hizo?¿Quién fue Alan Turing? ¿Qué hizo?

Page 16: Arquitectura y programación de computadoras (1-3)

Referencias Referencias

http://www.mhuffman.com/notes/imagcomphttp://www.mhuffman.com/notes/imagcomp/imagcomp.html/imagcomp.html

http://www.naturalprogramming.com/IC8/http://www.naturalprogramming.com/IC8/ http://en.wikipedia.org/wiki/Turing_machinehttp://en.wikipedia.org/wiki/Turing_machine

_gallery_gallery http://en.wikipedia.org/wiki/Turing_machinehttp://en.wikipedia.org/wiki/Turing_machine

Page 17: Arquitectura y programación de computadoras (1-3)

Sesión 2Sesión 2

Computación: ser o no serComputación: ser o no ser Creando el computoCreando el computo

Software y hardwareSoftware y hardware

Aritmética, lógica y electrónicaAritmética, lógica y electrónica ALUsALUs FPUsFPUs

Page 18: Arquitectura y programación de computadoras (1-3)

ComputaciónComputación

El término El término computadorcomputador se refería a un ser humano se refería a un ser humano que realizaba cálculos.que realizaba cálculos.

Los primeros investigadores en lo que después se Los primeros investigadores en lo que después se convertiría las ciencias de la computación, estaban convertiría las ciencias de la computación, estaban interesados en la cuestión de la interesados en la cuestión de la computabilidadcomputabilidad: qué : qué cosas pueden ser computadas por un ser humano que cosas pueden ser computadas por un ser humano que simplemente siga una lista de instrucciones con lápiz y simplemente siga una lista de instrucciones con lápiz y papel, durante el tiempo que sea necesario, con papel, durante el tiempo que sea necesario, con ingenuidad y sin conocimiento previo del problema. ingenuidad y sin conocimiento previo del problema.

Parte de la motivación para este trabajo era el Parte de la motivación para este trabajo era el desarrollar desarrollar máquinas que computaranmáquinas que computaran, y que pudieran , y que pudieran automatizar el tedioso y lleno de errores trabajo de la automatizar el tedioso y lleno de errores trabajo de la computación humana. computación humana.

Page 19: Arquitectura y programación de computadoras (1-3)

Una diferencia sutilUna diferencia sutil

Describir que se requiere que la máquina Describir que se requiere que la máquina haga.haga. Diseño de programasDiseño de programas

Describir cómo funciona la máquina.Describir cómo funciona la máquina. Diseño de circuitosDiseño de circuitos

¿Sabemos “hablar” en ambos lenguajes?¿Sabemos “hablar” en ambos lenguajes? ¿Qué se produce más: hardware o software?¿Qué se produce más: hardware o software?

Page 20: Arquitectura y programación de computadoras (1-3)

Un término para unificar Un término para unificar todos: sistematodos: sistema

Page 21: Arquitectura y programación de computadoras (1-3)

Comprendiendo y Comprendiendo y representando sistemasrepresentando sistemas

Page 22: Arquitectura y programación de computadoras (1-3)

HardwareHardware

HardwareHardware es un es un termino general termino general que se refiere a los que se refiere a los artefactos físicos artefactos físicos de una tecnología. de una tecnología.

Se refiere a los Se refiere a los componentes componentes físicos de un físicos de un sistema de sistema de computo, en la computo, en la forma de hardware forma de hardware de computo. de computo.

Page 23: Arquitectura y programación de computadoras (1-3)

Principios fundamentalesPrincipios fundamentales

Transmisión de información digitalTransmisión de información digital Todo sistema requiere mover información Todo sistema requiere mover información

digital de un punto del sistema a otro.digital de un punto del sistema a otro. Code transferCode transfer Binary bus transferBinary bus transfer Digital communicationsDigital communications Data communicationsData communications

En resumen: un código binario se desplaza En resumen: un código binario se desplaza de un lugar a otro.de un lugar a otro.

Page 24: Arquitectura y programación de computadoras (1-3)

Comunicación de datosComunicación de datos

Sistema de comunicación de datosSistema de comunicación de datos Fuente o transmisorFuente o transmisor Canal o ruta de transmisiónCanal o ruta de transmisión Receptor Receptor Un bit es representado por un valor voltaje.Un bit es representado por un valor voltaje.

Page 25: Arquitectura y programación de computadoras (1-3)

Transmisión de datosTransmisión de datos

Transmisión paralela de datosTransmisión paralela de datos Se usa en comunicaciones a corta Se usa en comunicaciones a corta

distancia entre equipos digitales.distancia entre equipos digitales. Mueve datos usando múltiples líneas Mueve datos usando múltiples líneas

(una por bit).(una por bit). Transmisión serial de datosTransmisión serial de datos

Se usa en distancias mayores a 25 Se usa en distancias mayores a 25 pies.pies.

Una línea de transmisión.Una línea de transmisión. Los datos se transmiten en series.Los datos se transmiten en series. Requiere de mecanismos de Requiere de mecanismos de

sincronización (reloj) o códigos para sincronización (reloj) o códigos para operaciones asíncronas.operaciones asíncronas.

Page 26: Arquitectura y programación de computadoras (1-3)

Codificación/decodificación Codificación/decodificación de datosde datos

Conversión de códigosConversión de códigos 1.1. Conversion of signals, or groups of Conversion of signals, or groups of

signals, in one signals, in one codecode into corresponding into corresponding signals, or groups of signals, in another signals, or groups of signals, in another code.code.

2.2. A process for converting a code of some A process for converting a code of some predetermined predetermined bitbit structure, such as 5, 7, or structure, such as 5, 7, or 14 bits per 14 bits per charactercharacter intervalinterval, to another , to another code with the same or a different number of code with the same or a different number of bits per character interval.bits per character interval.

Page 27: Arquitectura y programación de computadoras (1-3)

CódigosCódigos

Page 28: Arquitectura y programación de computadoras (1-3)

Circuitos de lógica Circuitos de lógica combinatoriacombinatoria

Combinational LogicCombinational Logic circuits are only determined by their current circuits are only determined by their current input state as they have no feedback, and any changes to the input state as they have no feedback, and any changes to the signals being applied to their inputs will immediately have an signals being applied to their inputs will immediately have an effect at the output. In other words, if the input condition changes effect at the output. In other words, if the input condition changes state so too does the output as combinational circuits have state so too does the output as combinational circuits have No No MemoryMemory..

Combinational LogicCombinational Logic circuits are made up from basic logic circuits are made up from basic logic ANDAND, , OROR or or NOTNOT gates that are "combined" or connected together to gates that are "combined" or connected together to produce more complicated switching circuits.produce more complicated switching circuits.

As combinational logic circuits are made up from individual logic As combinational logic circuits are made up from individual logic gates they can also be considered as "decision making circuits" gates they can also be considered as "decision making circuits" and combinational logic is about combining logic gates together to and combinational logic is about combining logic gates together to process two or more signals in order to produce at least one process two or more signals in order to produce at least one output signal according to the logical function of each logic gate.output signal according to the logical function of each logic gate.

Page 29: Arquitectura y programación de computadoras (1-3)
Page 30: Arquitectura y programación de computadoras (1-3)

El “API” de los circuitos El “API” de los circuitos de lógica combinatoriade lógica combinatoria

Page 31: Arquitectura y programación de computadoras (1-3)

Ejemplo: Ejemplo: Controlando 4 focosControlando 4 focos

F(a,b)2

Page 32: Arquitectura y programación de computadoras (1-3)

Decodificación binariaDecodificación binaria

Page 33: Arquitectura y programación de computadoras (1-3)

Decodificación de Decodificación de direcciones de memoriadirecciones de memoria

128x8 = 1024 bytes The decoder requires 3 address lines, (A0 to A2) to select each one of the 8 chips (the lower part of the address), while the remaining 7 address lines (A3 to A9) select the correct memory location on that chip (the upper part of the address).

Page 34: Arquitectura y programación de computadoras (1-3)

Ejemplo: despliegue de Ejemplo: despliegue de un numeroun numero

Page 35: Arquitectura y programación de computadoras (1-3)

Todo está en los códigosTodo está en los códigos

Page 36: Arquitectura y programación de computadoras (1-3)

Comparador Comparador

Page 37: Arquitectura y programación de computadoras (1-3)

Componentes básicos de Componentes básicos de hardwarehardware

Bus

Dispositivos de entrada

Dispositivos de salida

Unidad central de

procesamiento

Memoria principal

TecladoUnidades de discoCintas MouseLectores de código de barras

Unidades de discoCintas ImpresorasMonitores

Registrosinstrucciones RAM

Page 38: Arquitectura y programación de computadoras (1-3)

¿Cómo hacer un sumador ¿Cómo hacer un sumador de 2 bits en hardware?de 2 bits en hardware?

Donde X e Y son los sumandos, C el acarreo y S la suma

Y ….¿luego?

Page 39: Arquitectura y programación de computadoras (1-3)

Expresiones lógicas a Expresiones lógicas a partir de tablaspartir de tablas

Suma canónica de productos Producto canónico de sumas

Search for the 1s Luke Feel the 0s Luke

S = ~XY + X~Y S = (~X+~Y) (X+Y)Calculen ustedes C

y…¿luego?

Page 40: Arquitectura y programación de computadoras (1-3)

Producto=AND Suma=ORProducto=AND Suma=OR

Medio sumador

Page 41: Arquitectura y programación de computadoras (1-3)

A simple 2-bit ALU that does XOR, AND, OR, and addition

Page 42: Arquitectura y programación de computadoras (1-3)

ALU 4 bitsALU 4 bits

Page 43: Arquitectura y programación de computadoras (1-3)

Configuraciones ALUConfiguraciones ALU

Acumulador

Ej. Calculadora

Registro a registro

Pila deregistros

Registro y memoria

Ej. CISC

Registros

RAM

Intel IA-32 ISA (x86 processors)

MIPS

Page 44: Arquitectura y programación de computadoras (1-3)

InvestigaciónInvestigación

Simulador de ALU.Simulador de ALU. Investigar las principales operaciones y Investigar las principales operaciones y

capacidades de una ALU.capacidades de una ALU. Realizar un programa capaz de replicar las Realizar un programa capaz de replicar las

principales operaciones.principales operaciones. No considere por el momento las relaciones No considere por el momento las relaciones

de control con el resto del CPUde control con el resto del CPU

Page 45: Arquitectura y programación de computadoras (1-3)

Referencias Referencias

Design and Implementation of a 4-bit ALU Design and Implementation of a 4-bit ALU http://www.seas.upenn.edu/~ese201/lab/LabALU/ALU.hthttp://www.seas.upenn.edu/~ese201/lab/LabALU/ALU.htmlml

http://www.camiresearch.com/Data_Com_Basics/data_cohttp://www.camiresearch.com/Data_Com_Basics/data_com_tutorial.htmlm_tutorial.html

http://www.electronics-http://www.electronics-tutorials.ws/combination/comb_4.htmltutorials.ws/combination/comb_4.html

http://azul2.bnct.ipn.mx/~clogicos/practicas_de_laboratorihttp://azul2.bnct.ipn.mx/~clogicos/practicas_de_laboratorio/practica_4.htmo/practica_4.htm

http://en.wikibooks.org/wiki/Microprocessor_Design/ALUhttp://en.wikibooks.org/wiki/Microprocessor_Design/ALU http://www.electronics-tutorials.ws/logic/logic_1.htmlhttp://www.electronics-tutorials.ws/logic/logic_1.html

Page 46: Arquitectura y programación de computadoras (1-3)

Sesión 3Sesión 3

MemoriaMemoria Unidad central de procesamientoUnidad central de procesamiento

Page 47: Arquitectura y programación de computadoras (1-3)

Memoria Memoria

Page 48: Arquitectura y programación de computadoras (1-3)

Memoria de almacenamiento Memoria de almacenamiento temporal y permanentetemporal y permanente

Page 49: Arquitectura y programación de computadoras (1-3)

Siguiendo la pista del uso Siguiendo la pista del uso de memoriade memoria

POST BIOS Load OS

Page 50: Arquitectura y programación de computadoras (1-3)

¿Por qué las computadoras requieren ¿Por qué las computadoras requieren tantos tipos de memoria?tantos tipos de memoria?

Costo de la memoria ($/megabyte)Velocidad

-+

Bit sizeInfo que puedeprocesarsesimultáneamente

50-70 nano segs

Depende del anchoy velocidad del bus

Page 51: Arquitectura y programación de computadoras (1-3)

El cacheEl cache

Una memoria caché es una memoria en la que se almacena una serie de datos para su rápido acceso

una caché[1] es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en la caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

Page 52: Arquitectura y programación de computadoras (1-3)

En el interior de la memoria: En el interior de la memoria: en un principio, el capacitoren un principio, el capacitor

Page 53: Arquitectura y programación de computadoras (1-3)

La RAM: el cubo con La RAM: el cubo con trucotruco

Page 54: Arquitectura y programación de computadoras (1-3)

Práctica: Retroalimentación Práctica: Retroalimentación y memoriay memoria

Page 55: Arquitectura y programación de computadoras (1-3)
Page 56: Arquitectura y programación de computadoras (1-3)

Memristor: el 4º circuito Memristor: el 4º circuito fundamentalfundamental

El nombre es una palabra compuesta de memory resistor (resistencia-memoria).El nombre es una palabra compuesta de memory resistor (resistencia-memoria).

Un memristor efectivamente almacena información porque el nivel de su resistencia Un memristor efectivamente almacena información porque el nivel de su resistencia eléctrica cambia cuando es aplicada la corriente. Donde una resistencia típica eléctrica cambia cuando es aplicada la corriente. Donde una resistencia típica proporciona un nivel estable de resistencia, un memristor puede tener un alto nivel proporciona un nivel estable de resistencia, un memristor puede tener un alto nivel de resistencia que puede ser interpretado en una computadora en términos de de resistencia que puede ser interpretado en una computadora en términos de datos como un "1", y un bajo nivel que puede ser interpretado como un "0". Así, datos como un "1", y un bajo nivel que puede ser interpretado como un "0". Así, controlando la corriente, los datos pueden ser guardados y reescritos.controlando la corriente, los datos pueden ser guardados y reescritos.

Page 57: Arquitectura y programación de computadoras (1-3)

Unidad central de Unidad central de procesamientoprocesamiento

Page 58: Arquitectura y programación de computadoras (1-3)
Page 59: Arquitectura y programación de computadoras (1-3)

La unidad central de La unidad central de procesamientoprocesamiento

Page 60: Arquitectura y programación de computadoras (1-3)

La unidad de controlLa unidad de control

The control unit of the CPU contains circuitry The control unit of the CPU contains circuitry that uses electrical signals to direct the entire that uses electrical signals to direct the entire computer system to carry out, or execute, computer system to carry out, or execute, stored program instructions. Like an orchestra stored program instructions. Like an orchestra leader, the control unit does not execute leader, the control unit does not execute program instructions; rather, it directs other program instructions; rather, it directs other parts of the system to do so. The control unit parts of the system to do so. The control unit must communicate with both the must communicate with both the arithmetic/logic unit and memory. arithmetic/logic unit and memory.

Page 61: Arquitectura y programación de computadoras (1-3)

La unidad aritmético La unidad aritmético lógicalógica The arithmetic/logic unit (ALU) contains the The arithmetic/logic unit (ALU) contains the

electronic circuitry that executes all arithmetic electronic circuitry that executes all arithmetic and logical operations. and logical operations.

The arithmetic/logic unit can perform four kinds The arithmetic/logic unit can perform four kinds of arithmetic operations, or mathematical of arithmetic operations, or mathematical calculations: addition, subtraction, calculations: addition, subtraction, multiplication, and division. As its name multiplication, and division. As its name implies, the arithmetic/logic unit also performs implies, the arithmetic/logic unit also performs logical operations. A logical operation is usually logical operations. A logical operation is usually a comparison. The unit can compare numbers, a comparison. The unit can compare numbers, letters, or special characters. letters, or special characters.

Page 62: Arquitectura y programación de computadoras (1-3)

Registros Registros

Registers are temporary storage areas for instructions or data. They are not a part Registers are temporary storage areas for instructions or data. They are not a part of memory; rather they are special additional storage locations that offer the of memory; rather they are special additional storage locations that offer the advantage of speed. Registers work under the direction of the control unit to advantage of speed. Registers work under the direction of the control unit to accept, hold, and transfer instructions or data and perform arithmetic or logical accept, hold, and transfer instructions or data and perform arithmetic or logical comparisons at high speed. The control unit uses a data storage register the way a comparisons at high speed. The control unit uses a data storage register the way a store owner uses a cash register-as a temporary, convenient place to store what is store owner uses a cash register-as a temporary, convenient place to store what is used in transactions. used in transactions.

Computers usually assign special roles to certain registers, including these Computers usually assign special roles to certain registers, including these registers: registers:

An accumulatorAn accumulator, which collects the result of computations. , which collects the result of computations. An address registerAn address register, which keeps track of where a given instruction or piece of , which keeps track of where a given instruction or piece of

data is stored in memory. Each storage location in memory is identified by an data is stored in memory. Each storage location in memory is identified by an address, just as each house on a street has an address. address, just as each house on a street has an address.

A storage registerA storage register, which temporarily holds data taken from or about to be sent to , which temporarily holds data taken from or about to be sent to memory. memory.

A general-purpose A general-purpose registerregister, which is used for several functions. , which is used for several functions.

Page 63: Arquitectura y programación de computadoras (1-3)

Ciclo de máquinaCiclo de máquina

The Machine CycleThe Machine Cycle Fetch -get an instruction Fetch -get an instruction

from Main Memoryfrom Main Memory Decode -translate it into Decode -translate it into

computer commandscomputer commands Execute -actually process Execute -actually process

the commandthe command Store -write the result to Store -write the result to

Main MemoryMain Memory

Page 64: Arquitectura y programación de computadoras (1-3)

Instrucciones de un lenguaje de Instrucciones de un lenguaje de programación a lenguaje de programación a lenguaje de máquina, listas para el fetchmáquina, listas para el fetch

Page 65: Arquitectura y programación de computadoras (1-3)

5+6=?5+6=?

For example, to add the numbers 5 and 6 and show the answer on the For example, to add the numbers 5 and 6 and show the answer on the screen requires the following steps:screen requires the following steps:

1. Fetch instruction:"Get number at address 123456" 1. Fetch instruction:"Get number at address 123456" 2.Decode instruction.2.Decode instruction. 3.Execute:ALU finds the number. 3.Execute:ALU finds the number. (which happens to be 5)(which happens to be 5) 4.Store:The number 5 is stored in a temporary spot in Main Memory.4.Store:The number 5 is stored in a temporary spot in Main Memory. 5 - 8 Repeat steps for another number (= 6)5 - 8 Repeat steps for another number (= 6) 9.Fetch instruction:"Add those two numbers“9.Fetch instruction:"Add those two numbers“ 10.Decode instruction.10.Decode instruction. 11.Execute:ALU adds the numbers.11.Execute:ALU adds the numbers. 12.Store:The answer is stored in a temporary spot.12.Store:The answer is stored in a temporary spot. 13.Fetch instruction:"Display answer on screen.“13.Fetch instruction:"Display answer on screen.“ 14.Decode instruction.14.Decode instruction. 15.Execute:Display answer on screen.15.Execute:Display answer on screen.

Page 66: Arquitectura y programación de computadoras (1-3)

Ejecución de Ejecución de instruccionesinstrucciones

The control unit fetches (gets) the The control unit fetches (gets) the instruction from memory. instruction from memory.

The control unit decodes the instruction The control unit decodes the instruction (decides what it means) and directs that (decides what it means) and directs that the necessary data be moved from the necessary data be moved from memory to the arithmetic/logic unit. memory to the arithmetic/logic unit. These first two steps together are called These first two steps together are called instruction time, or I-time. instruction time, or I-time.

The arithmetic/logic unit executes the The arithmetic/logic unit executes the arithmetic or logical instruction. That is, arithmetic or logical instruction. That is, the ALU is given control and performs the ALU is given control and performs the actual operation on the data. the actual operation on the data.

Thc arithmetic/logic unit stores the result Thc arithmetic/logic unit stores the result of this operation in memory or in a of this operation in memory or in a register. Steps 3 and 4 together are register. Steps 3 and 4 together are called execution time, or E-time. called execution time, or E-time.

The control unit eventually directs The control unit eventually directs memory to release the result to an memory to release the result to an output device or a secondary storage output device or a secondary storage device. The combination of I-time and E-device. The combination of I-time and E-time is called the machine cycle. time is called the machine cycle.

Page 67: Arquitectura y programación de computadoras (1-3)

Velocidad Velocidad

The immense speed of the computer The immense speed of the computer enables it to do millions of such steps in enables it to do millions of such steps in a second. a second.

In fact, In fact, MIPSMIPS, standing for , standing for millions of millions of instructions per secondinstructions per second, is one way to , is one way to measure computer speeds. measure computer speeds.

Page 68: Arquitectura y programación de computadoras (1-3)

IA-32IA-32

Page 69: Arquitectura y programación de computadoras (1-3)

Pipeline Pipeline

is a series of stages, where some work is done at is a series of stages, where some work is done at each stage. The work is not finished until it has each stage. The work is not finished until it has passed through all stages.passed through all stages.

"A significant aspect of our civilization is the division of "A significant aspect of our civilization is the division of labor. Major engineering achievements are based on labor. Major engineering achievements are based on subdividing the total work into individual tasks which subdividing the total work into individual tasks which can be handled despite their inter-dependencies. can be handled despite their inter-dependencies.

"Overlap and pipelining are essentially operation "Overlap and pipelining are essentially operation management techniques based on job sub-management techniques based on job sub-divisions under a precedence constraint." divisions under a precedence constraint."

Page 70: Arquitectura y programación de computadoras (1-3)

¿Quién lava la ropa?¿Quién lava la ropa?

Page 71: Arquitectura y programación de computadoras (1-3)

Tipos de pipelinesTipos de pipelines

Instructional pipeline Instructional pipeline where different stages of an instruction fetch where different stages of an instruction fetch

and execution are handled in a pipeline. and execution are handled in a pipeline.

Arithmetic pipeline Arithmetic pipeline where different stages of an arithmetic where different stages of an arithmetic

operation are handled along the stages of a operation are handled along the stages of a pipeline. pipeline.

Page 72: Arquitectura y programación de computadoras (1-3)

Pipelining Pipelining

A technique used in advanced A technique used in advanced microprocessorsmicroprocessors where where the microprocessor begins the microprocessor begins executingexecuting a second a second instruction before the first has been completed. instruction before the first has been completed.

That is, several instructions are in the That is, several instructions are in the pipelinepipeline simultaneously, each at a different processing stage. simultaneously, each at a different processing stage.

Pipelining allows us to break up the task of executing a Pipelining allows us to break up the task of executing a single instruction into multiple steps. By breaking it up single instruction into multiple steps. By breaking it up into multiple steps, the cycle time will be limited not by into multiple steps, the cycle time will be limited not by the total time for all the steps, but rather by the longest the total time for all the steps, but rather by the longest step. step.

In fact, pipelining is something that comes naturally to In fact, pipelining is something that comes naturally to people in other parts of life. people in other parts of life.

Page 73: Arquitectura y programación de computadoras (1-3)

Procesador PipelineProcesador Pipeline

"A pipeline processor consists "A pipeline processor consists of a sequence of processing of a sequence of processing circuits, called segments or circuits, called segments or stages, through which a stages, through which a stream of operands can be stream of operands can be passed. passed.

"Partial processing of the "Partial processing of the operands takes place in each operands takes place in each segment. segment.

"... a fully processed result is "... a fully processed result is obtained only after an obtained only after an operand set has passed operand set has passed through the entire pipeline." through the entire pipeline."

Page 74: Arquitectura y programación de computadoras (1-3)
Page 75: Arquitectura y programación de computadoras (1-3)

Pipeline de 8 etapas

Page 76: Arquitectura y programación de computadoras (1-3)

Pipeline PowerPC G5

Page 77: Arquitectura y programación de computadoras (1-3)

Investigación 3Investigación 3

¿Cuánta memoria consume un SO?¿Cuánta memoria consume un SO? ¿Cuánta memoria consume una aplicación?¿Cuánta memoria consume una aplicación? Qué sucede cuando el pipeline sufre retrasosQué sucede cuando el pipeline sufre retrasos ¿Cuanta energía consumen las computadoras?¿Cuanta energía consumen las computadoras?

EscritorioEscritorio PortátilesPortátiles

¿Cuánta energía consumen otros dispositivo con ¿Cuánta energía consumen otros dispositivo con capacidades de cómputo?capacidades de cómputo? Teléfonos celularesTeléfonos celulares Asistentes personalesAsistentes personales GPSGPS

Page 78: Arquitectura y programación de computadoras (1-3)

Referencias (UP)Referencias (UP)

http://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading04.htmhttp://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading04.htm http://en.wikipedia.org/wiki/Instruction_cyclehttp://en.wikipedia.org/wiki/Instruction_cycle http://www.jegsworks.com/Lessons/lesson4/lesson4-4.htmhttp://www.jegsworks.com/Lessons/lesson4/lesson4-4.htm WinDLX WinDLX httphttp

://www.cc.ndsu.nodak.edu/instruct/tareski/ee774f96/notes/windlx/wdlxtut.htm://www.cc.ndsu.nodak.edu/instruct/tareski/ee774f96/notes/windlx/wdlxtut.htm http://plato.stanford.edu/entries/turing-machine/http://plato.stanford.edu/entries/turing-machine/ http://rds.yahoo.com/_ylt=A9G_bDlIgeJIDekAhuGjzbkFhttp://rds.yahoo.com/_ylt=A9G_bDlIgeJIDekAhuGjzbkF

/SIG=127npm0pu/EXP=1222890184/**http/SIG=127npm0pu/EXP=1222890184/**http%3A//www.cise.ufl.edu/~mssz/CompOrg/CDA-%3A//www.cise.ufl.edu/~mssz/CompOrg/CDA-pipe.htmlpipe.html

Page 79: Arquitectura y programación de computadoras (1-3)

Referencias (memoria)Referencias (memoria)

http://computer.howstuffworks.com/comphttp://computer.howstuffworks.com/computer-memory.htmuter-memory.htm

http://www.ladyada.net/learn/proj1/blinky.http://www.ladyada.net/learn/proj1/blinky.htmlhtml