scieee AI-readable full text Open interactive document viewer

Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores

Sotorrío-Ruiz, Pedro Juan,Trujillo-Aguilera, Davinia,García-Berdonés, Carmen,Sánchez-Pacheco, Francisco José

Abstract

Es frecuente que en la docencia en microprocesadores, lo que menos hay es electrónica digital. En muchos casos se utiliza un dispositivo comercial cuya descripción se basa en bloques funcionales sin los esquemas de los circuitos que los implementan. Una vez hecha esta descripción se pasa a su utilización (programación del dispositivo). Esta forma de actuar es informática pero no electrónica. La justificación de ello está en la complejidad de los circuitos que se utilizan en los microprocesadores. Sin embargo esto se supera fácilmente analizando cada elemento necesario para construir un microprocesador y desarrollando los esquemas utilizando dispositivos comerciales disponibles. Esta forma de bricolaje aplicado a la electrónica digital da muy buenos resultados en cuanto a la comprensión del funcionamiento por parte de los estudiantes. Con esta técnica, los estudiantes “ven” como funciona cada una de las partes ya que disponen de los catálogos de los fabricantes y conocen su funcionamiento porque son elementos básicos de electrónica digital, como puertas, biestables, circuitos combinacionales y secuenciales. Además pueden experimentarlos ya sea haciendo el montaje o por simulación.

Full text

1 Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores Pedro J. Sotorrío Ruiza, Francisco David Trujillo Aguilerab, Carmen García Berdonésc y Francisco J. Sánchez Pachecod aEscuela de Ingenierías Industriales, Universidad de Málaga, [email protected], bEscuela de Ingenierías Industriales, Universidad de Málaga, [email protected], cE.T.S. de Ingeniería de Telecomunicación, Universidad de Málaga, [email protected] y dEscuela de Ingenierías Industriales, Universidad de Málaga, [email protected]. Abstract It is very common to see that the teaching of microprocessors is based on the description of the functional blocks of a commercial device without using their electronic schematics, neglecting the fundamentals of digital electronics. After this description has been made, the following step is to proceed to programming it. This approach is computer science but not electronics. However, this is easily overcome by analyzing every element needed to build a microprocessor and developing their schematics using commercially available devices. This form of DIY applied to the digital electronics gives very good results in the understanding of the microprocessor operation by the students. With this technique, students "see" how each one of the parts work because they have the manufacturers’ catalog and know their operation because they are digital electronics basic elements, such as gates, flip ‐ flops, combinational and sequential circuits. In addition, they can experience them either by doing the assembly or by simulation. Keywords: Microprocessor, Digital Electronics, Electric Schematics, Timings. Resumen Es frecuente que en la docencia en microprocesadores, lo que menos hay es electrónica digital. En muchos casos se utiliza un dispositivo comercial cuya descripción se basa en bloques funcionales sin los esquemas de los circuitos que los implementan. Una vez hecha esta descripción se pasa a su utilización (programación del dispositivo). Esta forma de actuar es informática pero no electrónica. La justificación de ello está en la complejidad de los circuitos que se utilizan en los microprocesadores. Sin embargo esto se supera fácilmente analizando cada elemento necesario para construir un microprocesador y desarrollando los esquemas utilizando dispositivos comerciales disponibles. Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores 2 Esta forma de bricolaje aplicado a la electrónica digital da muy buenos resultados en cuanto a la comprensión del funcionamiento por parte de los estudiantes. Con esta técnica, los estudiantes “ven” como funciona cada una de las partes ya que disponen de los catálogos de los fabricantes y conocen su funcionamiento porque son elementos básicos de electrónica digital, como puertas, biestables, circuitos combinacionales y secuenciales. Además pueden experimentarlos ya sea haciendo el montaje o por simulación. Palabras clave: Microprocesador, Electrónica Digital, Esquemas eléctricos, Cronogramas. Introducción Los microprocesadores son dispositivos formados por circuitos electrónicos complejos cuyo estudio no resulta fácil. Una práctica muy común para su docencia consiste en utilizar un dispositivo comercial, se describe su funcionamiento y se procede a utilizarlo en alguna aplicación de ejemplo. Hasta aquí parece adecuado el procedimiento. Sin embargo, hay un detalle importante que no se ha mencionado; la descripción del funcionamiento del dispositivo se realiza a nivel de diagrama de bloques del mismo y no de los circuitos electrónicos que lo forman. Esto es debido a que los fabricantes no proporcionan los esquemas electrónicos digitales de sus dispositivos, ya que éstos no son necesarios poder utilizarlos. Esta situación la encontramos también en numerosos y muy conocidos autores como John Hennessy (Hennessy-Patterson, 2012), William Stalling (Stalling, 1996) y otros. Con esta forma de docencia, el aprendizaje se centra en la utilización (programación) del dispositivo y no en la electrónica de éste. Esto perjudica la formación en electrónica de los alumnos y entra en colisión con otras materias como la informática, que si bien es necesaria, ya se imparte en otras asignaturas. Desde un punto de vista docente enfocado a la formación de ingenieros en electrónica, nuestro objetivo es totalmente diferente y se enfoca a la circuitería electrónica, sin dejar de lado la programación y sobre todo la íntima relación entre los circuitos y las instrucciones. La figura 1 se muestra un ejemplo de lo dicho antes, se trata del esquema que suministra un fabricante de un dispositivo clásico, el Z80 (Zilog Inc. 2016). Como puede verse, no se trata de un esquema digital sino de un diagrama de bloques. Con él y la documentación complementaria que suministra, el usuario puede imaginar en términos generales el P.J. Sotorrío Ruiz, F.D. Trujillo Aguilera, C. García Berdonés y F.J. Sánchez Pacheco 3 funcionamiento del microprocesador. Sin embargo, la falta de esquemas electrónicos no permite profundizar en su estudio. Otros ejemplos como este lo encontramos en las familias de microcontroladores MSP430 (Texas Instruments, 2013), PIC24F (Microchip Technology Inc., 2011) y RL78/G10 (Renesas, 2016), entre otras muchas familias y fabricantes. Justificación No parece razonable que los ingenieros en electrónica no conozcan las interioridades de un dispositivo con el que van a trabajar intensamente durante su vida profesional. Es como si un médico no conociera los órganos del cuerpo humano. La disección en partes del microprocesador y el análisis de la realización y funcionamiento de cada una de ellas es lo que se propone en este trabajo. Aunque aquí aparece como una propuesta docente, esta técnica se lleva aplicando desde el año 2000 en la actual Escuela de Ingenierías Industriales de la UMA. Metodología La metodología a seguir es conceptualmente la misma que en los casos de otras ingenierías: analizar detalladamente el funcionamiento de un equipo, máquina o dispositivo que disponga Figura 1. Esquema de bloques de un microprocesador. Fuente Zilog Inc. (2016) Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores 4 de las funciones básicas. Esto, en el entorno de la ingeniería de motores térmicos, significa acceder a las distintas piezas de un motor y analizar sus características y funcionamiento. En el caso de los microprocesadores este punto es difícil de conseguir utilizando dispositivos comerciales por dos razones fundamentales: 1) el dispositivo no es accesible dado el nivel de integración del mismo y 2) los esquemas eléctricos no están disponibles, por lo que se desconoce el funcionamiento interno de las distintas partes. El análisis de los esquemas de un microprocesador simple que realice determinadas funciones básicas aporta un conocimiento profundo del funcionamiento de las distintas partes del dispositivo. Lógicamente, por ser el microprocesador un dispositivo programable, también se han de analizar las instrucciones de las que dispone. Para llevar a cabo este método es necesario disponer de un dispositivo microprocesador con toda su documentación, tanto esquemas eléctricos como cronogramas y características temporales. Parte de esto está disponible en Sistemas Basados en Microprocesadores (Sotorrío, 2004), en donde se describe un dispositivo desarrollado específicamente con fines docentes que dispone de los elementos funcionales básicos presentes en cualquier microprocesador. Todos los esquemas deben de estar realizados utilizando dispositivos digitales básicos disponibles en el comercio habitual como puertas, biestables, registros, circuitos combinacionales y secuenciales, selectores, etc., ya que estos dispositivos son conocidos por los estudiantes por haberlos estudiado como parte de asignaturas previas como Fundamentos de Electrónica y Electrónica Digital dentro del Grado en Ingeniería Electrónica Industrial de la EII. Esto permite que el estudiante pueda experimentar con ellos ya sea con un montaje físico o con un programa específico de simulación electrónica. Una vez que se dispone de esta documentación, se puede analizar detalladamente el funcionamiento de los esquemas digitales de las distintas partes del dispositivo objetivo. Tras el análisis de la documentación, los estudiantes están en disposición para introducir modificaciones y hacer mejoras o funciones diferentes tanto desde el punto de vista de los circuitos como del juego de instrucciones del dispositivo, pasando de la teoría a la práctica. Esta actividad de no sólo analizar lo que ya hay sino realizar otras opciones aporta experiencia a los estudiantes, con lo que se encuentran más seguros en sus ejecuciones futuras en este campo. P.J. Sotorrío Ruiz, F.D. Trujillo Aguilera, C. García Berdonés y F.J. Sánchez Pacheco 5 Unos ejemplos nos van a ayudar a ver esta forma de hacer: en primer lugar, la figura 2 muestra el esquema para realizar uno de los registros más importantes que tienen los microprocesadores, el contador de programa o PC (Program Counter). Como se ve en esta figura, para su realización se utilizan dispositivos contadores binarios de cuatro bits del tipo 74HCT191 cuyas hojas de características están disponibles en www.ti.com. Como el PC ha de funcionar en un bus compartido por desconexión, son Figura 2. Esquema digital del registro-contador PC y cronogramas de funcionamiento. Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores 6 necesarios los dispositivos 74HCT244 (ver las características en www.ti.com, www.nexperia.com, www.onsemi.com u otros) para poder realizar este cometido ya que los contadores binarios no tienen salida en alta impedancia. En el esquema, la rotulación de identificación de los dispositivos está entre corchetes, indicando con ello que la función digital es la que corresponde al dispositivo, no siendo así las características de tiempos. Esto significa que sus cronogramas son los que suministra el fabricante pero con las acotaciones de tiempos modificadas según las características del microprocesador. En el lado derecho de esta figura se encuentran los cronogramas de funcionamiento del circuito, en los que se describen las funciones de incremento-decremento en una unidad, escritura del registro contador y lectura del mismo. En esta figura el acrónimo IDB hace referencia al bus internos de datos del microprocesador (Internal Data Bus). El segundo ejemplo está relacionado con el corazón del microprocesador, esto es, la Unidad de Control (UC) que hace que todos los elementos que forman el microprocesador funcionen coordinadamente. En este caso, la UC es un circuito secuencial microprogramado cuyo esquema de bloques básico se muestra en la figura 3. La evolución de las señales de control se establece por medio de los microprogramas. Es decir que los microprogramas realizan la interfaz entre los cronogramas y las señales eléctricas de control del microprocesador. Para ello, la memoria ROM (Read Only Memory) se organiza en zonas de un tamaño determinado que depende del desarrollo de las instrucciones. Cada zona contiene el microprograma de ejecución de una instrucción del procesador. Las señales de datos de esta ROM son las señales de control del microprocesador al que pertenece (tanto las internas como las externas), como /OE_PC, CK_PC, /OE_SP, /INC_SP y otras muchas. Figura 3. Partes del secuencial microprogramado de la UC. P.J. Sotorrío Ruiz, F.D. Trujillo Aguilera, C. García Berdonés y F.J. Sánchez Pacheco 7 El microprograma de cada instrucción se obtiene analizando el desarrollo en el tiempo de la instrucción que se trate, es decir, a partir de los cronogramas de la instrucción. La figura 4 muestra, a modo de ejemplo, el cronograma de la instrucción COP A, d, que copia el dato “d” en el registro A. Este cronograma describe paso a paso el desarrollo de la instrucción. Cada paso está numerado en la parte superior del cronograma. Cada ciclo de reloj del procesador, CK, se compone de cuatro pasos (señal CK4). La instrucción completa se compone de dos cronogramas: el correspondiente al ciclo de búsqueda del código de la instrucción, figura 4a), que es igual en todas las instrucciones de usuario y requiere de tres periodos de reloj CK o doce pasos (0 – 11), y el del ciclo de ejecución de la instrucción, figura 4b), que en este caso consta de un único ciclo máquina o doce pasos. Estos cronogramas están construidos con ciclos máquina mínimos, sin estados de espera ya que éstos no afectan al microprograma. Figura 4. Cronogramas de la instrucción COP A, d. a) Cronograma del ciclo de búsqueda. b) Cronograma del ciclo de ejecución. Aproximación a la técnica “Aprender Haciendo” para la docencia en microprocesadores 8 El microprograma correspondiente a la instrucción de la figura 4 se deduce de ella leyendo el estado de cada una de las señales implicadas en cada periodo de la señal CK4. Por definición, las señales de la UC que no participan en un cronograma se mantienen en su estado de reposo (nivel alto), por lo que no es necesario representarlas, lo cual simplifica mucho los cronogramas. Dependiendo de la instrucción de que se trate, el cronograma de ejecución es más o menos largo en tiempo y el número de señales implicadas puede variar de una instrucción a otra. En esta figura hay implicadas 54 señales, teniendo en cuenta que IDB y LAB (Local Data Bus) son buses de 16 bits o señales y que LDB (Local Data Bus) es un bus de 8 bits o señales. La UC dispone de más documentos que no se han incluido aquí como son sus esquemas digitales realizados con dispositivos comerciales actualmente disponibles, como se ha dicho anteriormente. En la actualidad, la documentación disponible para la UC tiene una extensión de 90 páginas, las cuales incluye los esquemas electrónicos, los cronogramas de funcionamiento de los circuitos y los cronogramas de algunas de las instrucciones. No se desarrollan todas las instrucciones porque actualmente hay definidas 157 y ello implicaría una cantidad elevada de cronogramas, muchos de ellos muy similares conceptualmente, por lo que solo se desarrolla una instrucción de cada tipo como modelo para las otras del mismo tipo. Además, cada esquema y cada cronograma va acompañado del correspondiente texto explicativo. Con documentos como los mostrados en las figuras 2, 3 y 4, los estudiantes adquieren un conocimiento profundo del funcionamiento del dispositivo y son capaces de desarrollar nuevos elementos (nuevos circuitos y nuevas instrucciones) para ampliar o mejorar las características básicas del microprocesador. Esta es la fase de “aprender haciendo”, en la que cada grupo de estudiantes desarrollan nuevas características del dispositivo bajo estudio. Evaluación Para evaluar esta materia se propone añadir alguna prestación al dispositivo base. Dependiendo de como se realice la propuesta, puede implicar modificaciones en los circuitos (modificaciones propiamente dichas o ampliaciones) o creación/modificación/ ampliación de algún microprograma o ambas cosas a la vez. Conclusión La aplicación de esta técnica de docencia aporta una nueva perspectiva a los estudiantes en cuanto a la viabilidad de posibles nuevos esquemas, incrementando sus habilidades para la P.J. Sotorrío Ruiz, F.D. Trujillo Aguilera, C. García Berdonés y F.J. Sánchez Pacheco 9 interpretación y generación de cronogramas digitales. El hecho de disponer de ejemplos de aplicaciones es lo que genera estos resultados. Por medio de esta técnica se ve claramente la relación íntima entre los circuitos electrónicos (hardware), las instrucciones que son capaces de ejecutar (software) y los microprogramas que las implementan (firmware). Este aspecto no se logra con otras técnicas docentes, por lo que los estudiantes tienden a disociar los circuitos de los programas. Por otro lado, con este método se desmitifica el microprocesador, haciendo que su circuitería y microprogramación sean accesibles a los estudiantes y mostrando que no se trata más que de un cúmulo de circuitos digitales básicos organizados adecuadamente. Esto no quita importancia a estos dispositivos, al contrario, la incrementa al hacerlos más accesibles. La metodología docente descrita refleja que se está aplicando la forma “cómo hacerlo”, cuando se describen detalladamente los circuitos y los cronogramas, junto con la técnica “hazlo tú mismo” y “aprender haciendo”, cuando los estudiantes desarrollan nuevos esquemas y nuevas instrucciones, junto con algo de “bricolaje” electrónico, cuando utilizamos dispositivos comerciales. Esta forma de actuar aplicada a la docencia de microprocesadores resulta beneficiosa en cuanto al incremento de las habilidades adquiridas por los estudiantes y no resta posibilidades frente a las técnicas más tradicionales enfocadas a una aplicación meramente informática. Las evaluaciones realizadas a los estudiantes demuestran que sí adquieren un elevado nivel de conocimiento que les permite incorporar sus propias ideas al dispositivo, planteando nuevos retos como consecuencia de las experiencias ya consolidadas. Reconocimientos Este trabajo ha sido parcialmente financiado por la Universidad de Málaga en el marco del Campus de Excelencia Internacional Andalucía Tech. Referencias Hennessy, John L., Patterson David A. (2012). Computer Architecture: A Quantitative Approach. Four edition. Morgan Kaufmann Publishers. Elsevier Inc. 705 pp. Microchip Technology Inc. (2011). DS39927C. PIC24F16KA102 Family Data Sheet. 278 pp. Parhami, Behrooz (2005). Computer Architecture: form Microprocessor to Supercomputer. Oxford University Press. 556 pp. Renesas (2016). R01DS0207EJ0310 Rev.3.10. 35 pp. Sotorrío Ruiz, Pedro J., Ruiz Victoria, Eduardo, Romero Jerez, Juan M. (2004). Sistemas Basados en Microprocesadores. SPICUM, UMA, Málaga. 347 pp.