2.1 Organización General de un Cmputadr La rganización básica de un cmputadr se cmpne de una unidad de prcesamient (CPU), memria principal y dispsitivs de entrada salida. Estas tres unidades están presentes en cualquier rganización de cmputadr y el mdel básic de la funcinalidad y rganización fue prpuest pr Vn Neumann. Un ejempl sencill se muestra en el siguiente esquema en una tplgía de bus únic. Unidad de Cntrl ALU Registrs Memria Principal Discs I/O bus Figura: Organización de bus únic CPU: Esta arquitectura esta centrada en la unidad de prcesamient, que ejecuta prgramas almacenads en la memria principal (cncept de prgrama almacenad), pr medi de ls cuales: extrae, mdifica y almacena dats de memria.. I/O: Ls dispsitivs de entrada salida sn la interfaz del cmputadr cn el medi extern distinguiéndse: unidades de salida (impresras, mnitr display, etc), unidades de entrada (teclad, muse, etc.), unidades de entrada y salida (discs durs). BUS: El medi físic de cmunicación entre la CPU, la memria y ls dispsitivs de I/O es el bus. Éste crrespnde a un cnjunt de líneas cnductras paralelas dnde se transfiere la infrmación binaria entre ls dispsitivs. Se cmpne de tres partes: Bus de direccines: permite identificar dispsitivs y la unidad celda direccinable dentr de él (el cas de la memria principal), Bus de dats: transfiere la infrmación entre ls distints dispsitivs Bus de cntrl: prvee la señalización del tip de acces (principalmente lectura y escritura). De esta manera la CPU puede hacer cicls de lectura y escritura sbre la memria principal y al mism tiemp interactuar cn ls dispsitivs de entrada salida. Para l últim la CPU escribe lee sbre una psición de memria asciads a ests dispsitivs (cncept de dispsitivs mapeads en memria memry mapped).
Dentr de las funcinalidades de un cmputadr se recnce cuatr tips básics: Prcesamient de dats: Funcinalidad asciada a la unidad aritmética y lógica (ALU) dentr de la rganización de la CPU. El prcesamient esta estrictamente vinculad a la frma en que la infrmación es cdificada. Almacenamient de dats: Existe una jerarquía de niveles de almacenamient en la rganización, cada un cn atributs específics (Jerarquía de Memria). Transferencia de dats: Funcinalidad que permite la interacción del sistema cn el medi extern. Cntrl: L relacinad a la capacidad de gbernar las unidades dentr de la rganización de un cmputadr. La infrmación del cntrl esta implícita en las instruccines y es la CPU la encargada de interpretarlas y llevarlas a cab. Pr ser la unidad central de prcess (CPU) el centr funcinal de esta rganización, ns centrarems en explicar en detalle su funcinamient y de que manera interactúa cn el rest de las unidades, principalmente la memria. 2.2 Unidad Central de Prcess Crrespnde a la unidad principal dentr de la arquitectura de un cmputadr (dispsitiv maestr pr excelencia) cuya funcinalidad es la ejecución de prgramas almacenads en memria central. En palabras generales esta unidad extrae cada instrucción, la examina, ejecuta y gbierna el fluj de ejecución de dich prces, i.e. determina la secuencia de micr-events a ejecutar. Figura: Blques básics en la Organización de una CPU
Sus partes fundamentales sn: Unidad de Cntrl: Extrae la instrucción en curs de memria principal (nivel de lenguaje de máquina), hace el prces de decdificación para interpretar su tip y la naturaleza de sus arguments. Cn est prvee la señalización de cntrl para las restantes etapas de la ejecución de dicha instrucción. Unidad Aritmética Lógica (ALU): Dispsitiv que realiza las peracines aritméticas (sumas, multiplicacines) lógicas (OR, AND, NOT), determinadas pr la unidad de cntrl, sbre ls arguments también determinads en el prces de decdificación. Cm se verá, esta unidad se diseña utilizand dispsitivs cmbinacinales y secuenciales (cmpuertas lógicas) Registrs: Pequeña memria de alta velcidad integrada dentr de la CPU, que permite almacenar resultads intermedis, infrmación de cntrl y estad en dich prces. Dentr de ls registrs más emblemátics presentes en prácticamente tdas las rganizacines de prcesadres se encuentran: PC (Prgram Cunter): Almacena la infrmación de la psición de memria de la instrucción a ejecutar pr la CPU, su mdificación a l larg del tiemp esta relacinad cn el fluj lógic de ejecución de un prgrama. IR (Instructin Register): Almacena la infrmación de la cdificación en lenguaje de maquina (nivel 2) de la instrucción en curs. Crrespnde al cntenid de la psición de memria direccinada pr el registr PC al cmienz de la ejecución de una nueva instrucción. STATUS: Este registr almacena las celdas de estads de la CPU ( flags) después de haber ejecutad cierta instrucción. Esta infrmación es indispensable para implementar instruccines de cntrl de fluj (branch) al nivel de lenguaje de máquina. ACUMULADORES: Registrs temprales dispnibles para prgramadres de nivel 2 (lenguaje de máquina) para almacenar variables intermedias en un prces. Ests pueden ser de prpósit general exclusivamente de dats direccines, ests últims para acceder a arguments en memria principal. El tamañ de ests registrs (númer de bits) y el númer de ésts depende del diseñ arquitectónic de la CPU. SP: Almacena la dirección de memria del cmienz de un pila (stack), para almacenar variables lcales de ls prcedimients. Este espaci memria tempral se maneja cn este registr. La siguiente figura muestra un esquema más detallad de la rganización de una CPU. La figura muestra ls buses interns ls cuales permiten la transferencia entre las unidades invlucradas y la señalización de cntrl que gbierna dichas transferencias, en la cual la Unidad de Cntrl actúa cm dispsitiv maestr. Adicinalmente ests buses permiten la transferencia entre ls registrs (memria interna de la CPU) y la ALU. De este esquema se hace evidente que la ALU sl interactúa directamente cn su memria interna (banc de registrs)
Figura: Estructura Interna de CPU 2.3 Clasificación de Registrs Cm se verá mas adelante, ls registrs sn el primer eslabón de una jerarquía de memria en la arquitectura de un cmputadr, crrespndiente al nivel de memria físicamente más próxim a la ALU y el que prvee las mejres presentacines del punt de vista de tiemp de acces 1. Ls registrs de la CPU se pueden clasificar en ds grups: Registrs visibles para el prgramadr nivel 2: Sn ls registrs accesibles al prgramadr de lenguaje de máquina, ls cuales sn utilizads cn el bjet de minimizar ls access a memria principal, típicamente registrs de entrada salida de la ALU. Ests registrs pueden ser de us general específic. Pr ejempl hay registrs que sól sn utilizads cm registrs de direccines, trs que sól sn registrs de dats (arguments de entrada salida de la ALU). También pueden existir registrs de prpósit general ls cuales sn utilizads tant cm dats cm para el cálcul de direccines. Dad que ests registrs sn visibles para el prgramadr de nivel 2, estas restriccines están estipuladas en la sintaxis de dich lenguaje 2. De aquí se ve que el lenguaje de máquina (repertri de instruccines interpretad pr la CPU) esta cndicinad a las restriccines de diseñ de su CPU. Registrs de Cntrl y estad: sn utilizads pr la unidad de cntrl para cntrlar el funcinamient de la CPU, ejempl PC, IR, STATUS. Este últim almacena ls bits de códig de cndición, infrmación del estad de ejecución del prces que permite implementar ls salts cndicinales en el fluj de un prces. Ests bits sn fijads pr el hardware de la CPU a cnsecuencia de la última peración de la ALU. Ls más emblemátics sn: Sign: cntiene el bit de sign de la última peración Cer: indica cuand la peración fue cer Acarre: indica acarre de bit en la suma. 1 Unidad VI Sistema de Memria se verá en detalle tds ls niveles de memria, sus prpiedades y cual es la razón de diseñ en su rganización y estructura. 2 Ests punts se verán en detalle en Unidad IV de Lenguaje de Máquina.
Desbrdamient: usad para indicar desbrdamient aritmétic (resultad inválid, fuera del rang de representabilidad numéric) 3 2.4 Ejempl Intel 286 A cntinuación se muestra la arquitectura interna básica de un prcesadr Intel 80286. En este ejempl se ve que existen muchas más unidades presentes en el prces de ejecución de instruccines. La razón es que existen prcess adicinales que explícitamente n se han mencinad. Unidad de direccines Unidad de bus sumadr Interfaz de bus de direccines Interfaz de bus de dats Unidad de ejecución Cntrl de bus registrs Interfaz de cprcesadr ALU Pre extracción cntrl Unidad de instrucción Cla de inst. decdificada decdificadr Las unidades presentes y su funcinalidad sn: Unidad de instruccines: tma la palabra asciada a la instrucción cdificada en lenguaje de máquina desde la Unidad de bus y hace el prces de decdificación. Unidad de Ejecución: lleva a cab la instrucción decdificada pr la Unidad de Instrucción, internamente a esta unidad está el blque de cntrl que hace el prces de interpretación de ls camps decdificads de la instrucción y gbierna a la ALU y Unidad de Direccines para efects de manejar la transferencia de dats de la instrucción en curs (trayectria de dats) Unidad de Bus: realiza tdas las peracines de bus las cuales permiten cmunicación cn la memria y ls dispsitivs de I/O. Está encargada de hacer la interfaz para la extracción de instruccines y dats desde memria. Tiene un buffer de instruccines para extraer pr adelantad las instruccines siguientes (principi de lcalidad espacial) para evitar que la Unidad de Ejecución pierda cicls de relj esperand que esta extraiga la instrucción en curs (pipeline). 3 Est punts se tcarán cn mayr detalle, en las unidades siguientes
2.5 Instruccines En esta etapa entenderems cm instrucción al set de palabras de códig binari que se prvee al nivel de lenguaje de máquina (nivel 2). La CPU gbierna la extracción secuencial de instruccines de un prgrama desde la memria principal (prgrama ejecutable). Pr tant una instrucción se representa físicamente pr una trama de bits almacenads en algún blque de memria. El tamañ de esta depende del diseñ al nivel de lenguaje de máquina, pr ejempl la arquitectura MIPS (SPARC5) tiene instruccines de máquina de 32bit (4byte) independiente de su tip 4. Ls camps básics se ilustran en el siguiente ejempl: pcde rs rt rd adress Opcde: la cdificación de la peración a realizar pr la CPU rs: la cdificación del primer registr de la CPU (argument 1) rt: la cdificación del segund registr de la CPU (argument 2) rd: la cdificación del registr de la CPU de destin. adress: cdificación de un direccinamient lcal para instruccines del tip de transferencia de dats (llevar dats desde la memria a registrs y vice-versa). Es interesante mencinar que dependiend del tip de instrucción es el frmat que esta psea, pues pueden tener un ds arguments y dependiend de es la validez de sus camps 5. El prces de decdificación interpretación de camps de una instrucción esta asciad a la Unidad de Cntrl de la CPU. La salida de este prces es la señalización de cntrl para tdas las unidades internas de la CPU (ALU, registrs, shift, multiplexres, etc.) para llevar a cab la ejecución. 6 2.5.1 Ejecución de Instruccines El prces de ejecutar instruccines se puede subdividir en una secuencia de pass lógics en un cicl llamad extrae decdifica prcesa (EDP). A nivel macr se puede decir que curren las siguientes instancias en dich prces: 1. (Instructin Fetch) Extraer la instrucción de memria (direccinada pr el PC) y almacenarla en el IR. Utiliza las interfaces del bus de dats y direccines. 2. (Instructin Decde) Unidad de cntrl inicia el prces de decdificación, para determinar el tip de instrucción (pcde). También se determina en esta etapa la naturaleza de ls arguments, pr ejempl si hay que accesarls de memria. Paralelamente se incrementa el PC para apuntar a la siguiente instrucción. 3. (Operand Fetch) Extrae ls arguments desde memria registrs (si ls hay) y carga en ls registrs de entrada de la ALU. 4. (Execute) Ejecuta instrucción (ALU). 5. (Result Stre) Almacena ls resultads en el lugar aprpiad (registrs interns temprales memria) 4 En el capitul de frmat de instruccines se verá ls criteris de diseñ de las instruccines de nivel 2 y el cas particular de instruccines de larg variable. 5 El detalle del frmat de cada instrucción se verá psterirmente al discutir ls tips de instruccines de maquina 6 El detalle de este prces se vera en la Unidad III de Micrprgramación.
6. Va al pas 1. Td el prces que permite que la ALU finalmente actúe sbre sus registrs de entrada y retrnar ls resultads, se cnce cm trayectria de dats (datapath). Ejempl 1 (ejecución de instrucción)