polibits vol. 24, 2001 · 2 polibits 2001 editorial las actividades desarrolladas en el instituto...
TRANSCRIPT
Contenido
3
7
15
21
Editorial
Implementación del Teorema de Cantor en la Solución delDireccionamiento de Memoria MapeadaGustavo Abraham Mas Levario (Profesor de la ESCOM-IPN),
María Aurora Segura Corona, Pablo Manrique Ramírez (Profesores del CIC-IPN)
Diseño de Sistemas Digitales Utilizando FPGAAmadeo J. Argüelles Cruz (Profesor del CIC-IPN),
José A. Ascencio Román, José F. Villalobos Baigorria (Alumnos del CIC-IPN)
Uso de Multimedios en la Educación Basica de Ingenieríapor Internet
Rodolfo Romero Herrera (Profesor del CIC-IPN)
El Futuro de la Educación en Ingeniería de CómputoMiguel Lindig Bos
Director del CIDETEC-IPN
1
Desarrollo de un Manejador de Dispositivos Utilizando el ModeloWindows Driver Model (wdm) para Windows 98 y 2000
Rubén Peredo Valderrama, Rubén Aquino (CIC-IPN)26
XII 1 24 polibits 1
EditorialEditorial
a importancia del presente número de polibits radica en ladiversidad de artículos que la conforman. Así, se incluyen tantoun ensayo (El Futuro de la Educación en Ingeniería de
Cómputo), donde se analizan los avances en computación y teleco-municaciones y sus efectos sobre la enseñanza de la Ingeniería deCómputo, como artículos donde se describe el desarrollo e implemen-tación de aplicaciones, lo mismo de hardware (Diseño de SistemasDigitales Utilizando FPGA), que de software (Desarrollo de unManejador de Dispositivos Utilizando el Modelo Windows DriverModel (wdm) para Windows 98 y 2000).
El material restante (Uso de Multimedios en la Educación Básicade Ingeniería por Internet e Implementación del Teorema deCantor en la Solución del Direccionamiento de Memoria Mapea-da) presenta propuestas de investigación en los campos de laeducación semipresencial y de la arquitectura de computadoras.
Esta diversidad temática responde al interés de polibits de servircomo vehículo para la difusión de la computación en su conjunto sinlimitarse a un solo tema o enfoque en particular. De la misma forma,nuestro objetivo es publicar colaboraciones provenientes no solo de
L
2 polibits 2001
Editorial
las actividades desarrolladas en el Instituto Politécnico Nacional, sinode otras fuentes de investigación y estudio.
Esta es nuestra contribución al avance y difusión de las Ciencias dela Computación en México, reiterando nuevamente una invitaciónabierta a nuestros lectores y al público en general para que participentanto con sus colaboraciones como con todas las sugerencias quecoadyuben a potencializar este esfuerzo.
XII 1 24 polibits 3
El Futuro de la Educación en Ingeniería de Cómputo
El Futuro de la Educación enIngeniería de Cómputo
El Futuro de la Educación enIngeniería de Cómputo
Dr. Miguel Lindig BosDirector del CIDETEC-IPN
n el nacimiento de la era de lainformación, las disciplinasacadémicas consideradas
como básicas son las Ciencias de laComputación, la Ingeniería de Cóm-puto y los Sistemas de Información.La Ingeniería de Cómputo aporta lasinnovaciones de “hardware”. Ade-más de los fundamentos teóricos de lacomputación, el científico de la com-putación aporta a las innovaciones de“hardware” los elementos de “soft-ware” que permiten su mejor aprove-chamiento, y contribuye a establecerun ambiente viable para el usuario. Elconjunto de estos elementos constitu-ye las herramientas de los sistemasmodernos de información. Dada lacreciente complejidad de estos siste-mas, aparece un elemento de enlaceentre estas disciplinas tradicionales:el ingeniero de sistemas de informa-ción, que capta las necesidades infor-máticas de la organización, para dise-ñar y desarrollar sistemas que inclu-yan los aspectos de hardware, soft-ware y ambiente de usuario [1].
Los avances tecnológicos recien-tes en materia de computación ytelecomunicaciones han tenido efec-tos importantes en los métodos deenseñanza en general, y brindan nue-vas oportunidades en áreas tales comola educación a distancia. Pero el usode las técnicas y herramientas pro-porcionadas por la computación noconstituye, por sí solo, una solución
para las nuevas demandas que generala sociedad de la información a laeducación. Si esto es cierto en logeneral, es particularmente aplicablea la enseñanza de la computación,como formación para un mercado detrabajo en constante evolución y cre-ciente sofisticación. En este sentido,dos desarrollos tecnológicos en parti-cular, la Internet, por una parte, y losnuevos procesadores de paralelismoexplícito, por otra, ya afectan al mer-cado de trabajo y constituyen elemen-tos a ser tomados en cuenta en laplaneación de los programas de estu-dio del futuro.
CUESTIONAMIENTOS RECIENTES
En un número relativamente re-ciente de la revista Computer de laIEEE (noviembre de 1997) se abordael tema de la educación superior engeneral, y el de la computación, enparticular. Algunas de las aportacio-nes expresadas en esta revista seresumen a continuación:
1.- Los elementos de una Ciencia dela Computación efectiva [2]. Elautor defiende la necesidad deconservar un fuerte núcleo de cien-cias de la computación, pero com-binado con una visión que enfati-ce el interactuar con otras discipli-nas. Esto es, la búsqueda de pro-blemas que proporcionen una ex-periencia educativa en la cual laCiencia de la Computación cons-
tituya un elemento efectivo en uncontexto mayor, preferiblementeel mundo real.
2.- El caso para habilidades de cóm-puto más relevantes [3]. El autorcuestiona la eficacia del desarrollode sistemas de aplicación que apo-yen procesos en empresas, y atri-buye la poca eficacia a la falta dehabilidades suficientes de los par-ticipantes en el desarrollo. En par-ticular, subraya la limitada capaci-dad de comprender el proceso,para poder ubicar los problemas ylas necesidades de mejora. Tam-bién cuestiona la capacidad depensamiento sistémico, de cómointeractúan los procesos.
3.- Haciendo la estructura más flexi-ble [4]. El autor sostiene que laeducación en cómputo no debeadecuarse solamente a los rápidoscambios de la tecnología de lainformación, sino también a laforma en que operan los nego-cios. A manera de ejemplo, sugie-re la enseñanza de la interacciónen equipos interdisciplinarios.Como medidas concretas, el autorsugiere una mayor interacción conla industria, menores tiempos deadaptación curricular, un mayorénfasis en educación continua yen aspectos pedagógicos de laenseñanza.
Un campo que merece especialinterés es el de la Ingeniería de Soft-ware. En otro artículo de la revista
E
4 polibits 2001
El Futuro de la Educación en Ingeniería de Cómputo
citada [5], los autores consideran quela mayoría de los programas de estu-dio vigentes se concentran en “resol-ver los problemas de hoy con lastecnologías actuales”, y discuten unproyecto curricular basado en trescomponentes fundamentales: la par-te central o formativa, la parte aplica-tiva (el desarrollo de sistemas prácti-cos) y materias de especialización. Ensíntesis, el proyecto busca mayoresniveles de generalización y menordependencia tecnológica, por mediodel uso de modelos formales y, engeneral, de niveles de abstracciónmayores.
Una mayor capacidad de resolverproblemas, una menor profundidaden conceptos básicos a cambio deuna visión más sistémica, una grancapacidad de comunicación y de tra-bajo en grupo, un enfoque más inter-disciplinario y con mayor orientacióna las aplicaciones y, finalmente, unamejor capacidad autodidacta, pare-cen ser los elementos comunes queencuentran los autores arriba citadosy otros, para un mejor diseño curricu-lar. Este tema se retoma por la mismarevista en enero de 1998, bajo eltítulo de “Engineering an Educationfor the Future” [6].
LOS CAMBIOS TECNOLÓGICOS
En dicho artículo, los autores sos-tienen que la ingeniería de cómputoha sufrido una serie de cambios deenfoque, como consecuencia de cier-tos desarrollos tecnológicos. Comoejemplos mencionan la transición decircuitos discretos a circuitos integra-dos, y más recientemente, de lógicadigital discreta a lógica programable.En un contexto más amplio, puedecitarse la transición de la electrónicaanalógica a la digital, en muchas áreas.Estas transiciones afectan al conoci-miento fundamental requerido, a lashabilidades necesarias para diseñar
sistemas y, de hecho, a la naturalezamisma de estos sistemas. En términosde una educación para la ingeniería,el cambio tecnológico conduce en-tonces a varias interrogantes: ¿Quéconocimiento sigue siendo necesarioy fundamental? ¿Qué habilidades con-cretas deben enseñarse? ¿Cuáles sonlas características de los sistemas pordesarrollar?, y ¿Cómo se reflejaránestas características en el currículum?
Además de los cambios tecnológi-cos reflejados en las transiciones deuna tecnología a otra, ejemplificadasanteriormente, un segundo elementoa considerar es el incremento en ca-pacidad, o rendimiento, de la tecno-logía como función del tiempo. Unejemplo citado frecuentemente es elincremento en capacidad de cómpu-to, a costos constantes, de los siste-mas durante el pasado reciente. Elincremento en capacidad y calidad dela tecnología tiende a reducir las limi-taciones en el desempeño de un siste-ma, para imponer, como nueva limi-tante, nuestra comprensión incom-pleta de cómo construir la aplicación.Esto es, factibilidad y costo adquierenuna importancia menor, compara-dos con nuestra limitada capacidadde diseñar sistemas cada vez máscomplejos.
UBICACIÓN ACADÉMICA
Siguiendo el modelo del artículo[6], y desde una perspectiva históri-ca, la computación puede considerar-se como fundamentada en tres pila-res académicos:
1.- Ingeniería Eléctrica (teoría de cir-cuitos, circuitos conmutados, dis-positivos electrónicos, optoelec-trónica, tecnología de procesos,etc.)
2.- Sistemas Electrónicos de Informa-ción (sistemas de información, co-
municaciones, teoría de colas, pro-cesamiento de señales, etc.)
3.- Ciencias de la Computación (com-plejidad, autómatas, algoritmos,lenguajes, compiladores, bases dedatos, etc.)
De la superposición o traslape delas disciplinas anteriores resultan en-tonces nuevas opciones curriculares.Así, un traslape entre los sistemaselectrónicos de información, por unaparte, y ciencias de la información,por otra, genera las opciones demultimedia, robótica, visión artificial,sistemas en tiempo real, softwareconcurrente, simulación, redes, etc.Evidentemente, estas opciones son,en gran medida, responsables de ladinámica actual de la computación.Sin embargo, nuestros programas deestudio parecen poco adecuados a lasnecesidades que generan estas nue-vas opciones . Por ejemplo, el estudiode eventos que ocurren de manerairregular en el tiempo generalmenteno forma parte de programas tradi-cionales. Por otra parte, es cuestiona-ble que semejante nivel de profundi-zación en la teoría de sistemas seaviable en el marco de una licenciatu-ra. La cuestión relativa a qué conoci-miento sigue siendo necesario y fun-damental, no puede contestarse sim-plemente con base en una aprecia-ción de la cercanía relativa a una uotra de las disciplinas tradicionales.
FORMACIÓN Y PERTINENCIA
Entre los elementos más discuti-dos de cualquier curriculum se en-cuentran, sin duda, los relativos a laimportancia del proceso formativodel estudiante, y la pertinencia de laeducación en términos del mercadode trabajo. El eterno conflicto entrelas materias formativas y las de aplica-ción, no admite la solución fácil deincrementar el tiempo de estudio.
XII 1 24 polibits 5
El Futuro de la Educación en Ingeniería de Cómputo
Como ya se señaló, la necesidad deuna formación básica cada vez másprofunda parece ser una de las conse-cuencias del cambio tecnológico. Cla-ramente, no existe una solución sen-cilla en términos de una educacióntradicional.
Una de las fortalezas de la Ingenie-ría Eléctrica, pero también de lasCiencias de la Computación, es elmodelado formal de sistemas. Peroun modelo constituye un determina-do nivel de abstracción; por ejemplo,considérese el diseño de sistemas di-gitales, en los cuales un circuito semodela como una función booleana.Existen lenguajes de alto nivel para eldiseño asistido por computadora desistemas digitales, basados en estemodelo. Así, el diseño de un circuitose convierte en un problema de pro-gramación. Los conocimientos deelectrónica digital son, de hecho, irre-levantes para diseñar sistemas digita-les complejos a ese nivel de abstrac-ción.
De manera similar, la mayoría delsoftware de aplicación se desarrollahoy en día con base en lenguajes dealto nivel y herramientas, cada vezmás poderosas, de desarrollo de soft-ware. La complejidad de las aplicacio-nes simplemente no admite su desa-rrollo a nivel de lenguaje de máquina.En consecuencia, se usan niveles ma-yores de abstracción, aunque con ellose sacrifica, posiblemente, eficienciay velocidad de ejecución.
De lo anterior se desprenden lasconsideraciones básicas para unaposible solución entre las demandasconflictivas de formación y pertinen-cia. Si se concibe al posgrado como laoportunidad de profundizar en la téc-nica, en la teoría, y en los conoci-mientos formales, podemos distin-guir entre los niveles de “diseñador”(licenciatura) y “experto” (posgrado).Aquí, el diseñador posee la capacidadde proyectar y desarrollar sistemas
con un alto nivel de abstracción, conbase en habilidades de diseño de sis-temas y conocimientos interdiscipli-narios de aplicación de los mismos.Mayores niveles de complejidad, o deeficiencia de estos sistemas, podránrequerir el concurso del “experto”.
Un corolario de lo anterior es queel conocimiento básico, formativo,adquiere una dimensión distinta. Poruna parte, al reducirse el tiempo efec-tivo dedicado a este conocimiento,los aspectos didácticos adquieren unaimportancia mayor. Esto es, factorestales como la edad del educando de-berán ser tomados en cuenta, privile-giando a aquellas bases formales que,a una edad posterior, resultan dedifícil asimilación. Por otra, las mate-rias formativas deberán conducir amayores habilidades de autoestudio,y establecer el vínculo con estudios anivel posgrado.
RETOS ADICIONALES
Entre los cambios tecnológicos re-cientes sobresalen dos que, posible-mente, constituyan retos adicionalespara el diseño curricular. Uno de elloses la red, esa tecnología de comunica-ción mundial cuyo potencial, en estemomento, apenas se vislumbra. Peroestá claro que será un elemento devinculación entre las telecomunica-ciones y la computación, vistas comodisciplinas académicas. Además deconferir nuevos niveles de importan-cia a la telemática y otras disciplinas,es de suponerse que generará nuevasoportunidades en muchos campos deaplicación y, en consecuencia, deplanes y programas de estudio. Estre-chamente vinculado con lo anteriorse encuentran los nuevos desarrollosen materia de arquitectura de proce-sadores. Las máquinas de paralelis-mo explícito, esto es, los procesado-res que corresponden al modelo com-putacional SIMD (una instrucción,
múltiples datos) se encuentran ya co-mercialmente disponibles. Existenpocas herramientas de software paraestos procesadores, cuyo potencialde aplicación en campos como lamultimedia es, sin embargo, inmen-so. Por otra parte, estos procesado-res permiten la construcción de mul-tiprocesadores, de máquinas parale-las con varios niveles de paralelismosimultáneos, para las cuales los actua-les paradigmas de programación son,simplemente, insuficientes en térmi-nos de una explotación efectiva. Serequieren nuevos desarrollos en soft-ware, cuyo impacto en los planes yprogramas de estudio es, en estemomento, tema de especulación.
CONCLUSIONES
En materia de Ingeniería deCómputo, los cambios vertiginososde la tecnología han generado nuevasoportunidades, pero también nuevosretos para el diseño curricular. Lacomplejidad creciente de las aplica-ciones de la computación tiene elefecto de, por una parte, fragmentarel campo en un número creciente deespecialidades y, por otra, incremen-tar el nivel educativo requerido paraun desempeño profesional exitoso.Diferentes autores coinciden en queparte de la respuesta a esta problemá-tica se encuentra en grupos de trabajointerdisciplinarios, y resaltan la nece-sidad de desarrollar habilidades decomunicación y de trabajo en grupo.Un segundo elemento para una posi-ble respuesta consiste en la aplicaciónde niveles de abstracción cada vezmayores en el modelado de los siste-mas, y un mayor énfasis en el diseñoe implementación de los mismos. Deacuerdo con esta visión, el posgradoconstituye la oportunidad de profun-dizar en el conocimiento que, a nivellicenciatura, posee un enfoque másorientado a la solución de problemasprácticos. En esencia, se plantea una
6 polibits 2001
El Futuro de la Educación en Ingeniería de Cómputo
solución basada en el estudio de logeneral como punto de partida, parallegar a lo particular en el posgrado.En este sentido, el aspecto formativoadquiere un significado e importanciadistintos. Además de una mayor am-plitud temática con menor profundi-dad sobre dichos temas, debe consti-tuir el puente hacia el posgrado yobedecer a modelos pedagógicos queincluyan la edad, entre otros factores.
BIBLIOGRAFÍA
[1] Gordon E. Stokes: “Rethin-king the current formula”,Computer, Vol.30, No.11, pp.48-49, noviembre de 1997.
[2] Peter A. Freeman: “Elementsof effective computer scien-ce”, Computer, Vol.30, No.11, pp. 47-48, noviembre de1997.
[3] Jimmie E. Haines: “The casefor more relevant computingskills”, Computer, Vol.30,No.11, pp. 55-56, noviembrede 1997.
[4] Joe Turner: “Making the struc-ture more flexible”, Compu-ter, Vol.30, No.11, pp. 56-57, noviembre de 1997.
[5] David Garlan, David P. Gluch,James E. Tomaryko: “Agentsof Change: Educating Soft-ware Engineering Leaders”,Computer, Vol.30, No.11, pp.59-65, noviembre de 1997.
[6] Edward A. Lee, David G. Mes-serschmitt: “Engineering anEducation for the Future”,Computer, Vol.31, No.1, pp.77-85, enero de 1998.
XII 1 24 polibits 7
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
Implementación del Teorema deCantor en la Solución del
Direccionamiento de MemoriaMapeada
Implementación del Teorema deCantor en la Solución del
Direccionamiento de MemoriaMapeada
M. en C. Gustavo A. Mas Levario, M. en C.María A. Segura Corona, M. en C. PabloManrique Ramírez.Profesores del CIC-IPN
l presente artículo proponeuna solución descriptiva al pro-blema del mapeo computa-
cional sobre la base del Teorema deCantor. Para lograrlo se propone unaserie de fundamentos heurísticos quepermitan relacionar el Procedimien-to de Cantor con el significado deldireccionamiento de memoria ma-peada que rebasa el tamaño del mapade memoria de los procesadores.
INTRODUCCIÓN
Este trabajo sigue una línea prag-mática principalmente, y hace uso deuna serie de asociaciones entre larealidad del direccionamiento de me-moria y la abstracción del Teoremade Cantor. El objetivo principal deesta asociación es proporcionar sus-tento a algo que está fuera del mundoreal y que tiene su origen en el univer-so de los conceptos. El significado desustentar aquí es materializar un con-cepto matemático en un campo deacción de la realidad mediante unaidea o un pensamiento intuitivo, eneste caso el campo de acción es eldiseño de sistemas digitales para di-reccionar memoria mapeada.
Se sabe que en la generalizaciónsimple, la abstracción es sólo un ins-trumento de la operación mental en-tre otros, con el cual aislamos lascualidades que se desean obtener. Unpragmático debe partir de una condi-ción de entidades con cualidades auna condición de cualidades sin enti-dades para plantear un problema deingeniería bajo la abstracción, la pre-cisión y el rigor lógico de ciertosprocedimientos matemáticos, comoen este caso el Procedimiento deCantor[2].
Para poder materializar un con-cepto se debe entender que en laformación de los conceptos obteni-dos por generalización simple aplica-da sobre determinadas propiedadesde los objetos reales o no, tales comoel color de nuestra silla o el color denuestra primera bicicleta, es posibledistinguir tres fases de operacionesmentales. En la primera fase la pro-piedad se define comparando direc-tamente los objetos: como en el casode ciertas culturas primitivas en don-de se asocian tantas manzanas comodedos de la mano. En la segundaaparece un adjetivo: cinco direccio-nes de memoria, o en casos un pocomás abstractos: memoria mapeada,aquí el adjetivo es mapeada. En latercera fase se abstrae la propiedadde los objetos y pueden aparecercosas como verde, o el número abs-tracto 5 e incluso el adjetivo mapeadoo mapeada.
Este estudio en sí trata con lasegunda fase, ya que en lugar deconfrontar dos hechos reales, se usala técnica de la asociación de unhecho teórico ya estudiado con unhecho real sin estudio, desde la pers-pectiva de ese concepto. Para com-probar su funcionalidad se aplica lageneralización simple a diferentes cir-cunstancias del hecho real, postulan-do la obtención de su concepto que,como se verá, es el concepto delhecho teórico.
El hecho teórico es el Teorema deCantor, que describe que la magnitudde una función y la magnitud de suvariable siempre son inconmensura-bles. El hecho real que se desea estu-diar es el originado al direccionarmemoria mapeada en un nodo deprocesamiento con memoria local.De este modo tenemos que la variableindependiente es cada dirección ab-soluta del mapa de memoria del pro-cesador, y su función es el mapeo desu dirección correspondiente sobre lamemoria, en un momento dado.
En la actualidad hay sistemas decómputo dedicados a aplicacionesespecíficas constituidos por nodos deprocesamiento, en donde los proce-sadores tienen capacidades de direc-cionamiento limitado, pero que enciertas aplicaciones requieren alma-cenar cantidades de datos que des-bordan el límite del mapa de memoriade dichos procesadores.
E
8 polibits 2001
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
El mapa de memoria de un proce-sador es el conjunto máximo de direc-ciones absolutas que puede referen-ciar desde su unidad de direcciona-miento; de este modo, un procesadorcon 16 líneas de direccionamientosólo puede alcanzar hasta 65536 di-recciones absolutas, pero ciertas apli-caciones de diseño obligan a esteprocesador a demandar de su unidadde direccionamiento más de estas65536 direcciones absolutas, que es-tarán en correspondencia biunívocacon 131072 direcciones mapeadas.
Ese inconveniente exige la exis-tencia de otra línea de dirección en launidad de direccionamiento del pro-cesador misma que es imposible deobtener, así que es aquí donde serecurre a un procedimiento que per-mita concebir este problema compu-tacional como un problema a resolverde la matemática aplicada.
Este procedimiento indica quesiempre habrá la posibilidad de direc-cionar de un modo u otro más de loque aparentemente se permite a par-tir del mapa de memoria de un proce-sador.
Se presenta lo anterior como unteorema computacional a demostrartomando como su lema el Teoremade Cantor.
MÉTODO
Lo que se pretende es llevar elplano cartesiano del mapeo al planode un cuadrado, en donde el origendel plano cartesiano coincide con elvértice inferior izquierdo del cuadra-do; de este modo, la función delmapeo se superpone a la diagonalque se traza del vértice inferior iz-quierdo al vértice superior derecho, eleje de las abscisas se superpone alsegmento de la base del cuadrado, yel eje de las ordenadas se superponeal segmento vertical izquierdo del cua-drado.
3. La sucesión de grados de abs-tracción creciente, que en estecaso en particular son ciertos prin-cipios de la geometría analítica.
Con el primer aspecto enumera-do anteriormente se traza un bosque-jo, en donde las líneas rectas repre-sentan a las señales que emite unprocesador a las memorias y, en ge-neral, a cualquier dispositivo de entra-da/salida. Los cuadriláteros repre-sentan a las unidades de cómputocomo son los procesadores, los ma-peadores y las memorias. Este aspec-to, en conjunto con el segundo, per-miten localizar e identificar cada enti-dad llamada dirección con el fin depoder nombrarlas con los númerosreales. En la figura 2 se muestra undiagrama esquemático de un nodo deprocesamiento.
Sin embargo, antes de entrar endetalle con relación a los tres aspectoses necesario resaltar la importanciadel concepto de los números reales.Los números reales[1] representanun instrumento seguro y poderosopara la investigación matemática de
En la figura 1 se muestra com-putacionalmente en donde estaríanubicados el lema y el teorema que sedesea demostrar. El Teorema de Can-tor es el siguiente:
“Los puntos del plano siguen lapotencia del continuo”.
El método se fundamenta en lostres aspectos[1] de las abstraccionesde la matemática, con ellos se formu-lan las asociaciones necesarias quedan la estructura del procedimientoque se desarrollará en el método:
1. Las formas espaciales, que eneste caso son la geometría euclí-deana necesaria para diseñar losesquemáticos de un diseño digital,así como los principios necesariospara el plano cartesiano y el cua-drado.
2. Las relaciones cuantitativas delhecho real, o sea la aritméticacorrespondiente para el nombra-miento de las localidades del direc-cionamiento de un nodo de pro-cesamiento.
TEOREMA
Bus de Di recciones
Mapa de Memoria
PROCESADOR
MAPEADOR
MEMORIA
. . .
LEMA
0000
65535
Mapa de Memoria
. . .
0000
131072
A[15:0]
Bus de Datos
Figura 1. Diagrama del mapeo computacional donde se ilustra el Lemay Teorema de Cantor.
XII 1 24 polibits 9
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
las magnitudes y procesos realmentecontinuos, tales como las direccionesdel mapa de memoria y el mapeo dedirecciones; la experiencia demues-tra que el concepto de número realrefleja con precisión las propiedadesgenerales de las magnitudes conti-nuas.
Así, con el segundo aspecto sepropone cuantificar el direcciona-miento realizado por un procesadormediante la aritmética. Para iniciar separte de un axioma que se considerael más evidente en el direccionamien-to. Se observa que en el direcciona-miento, el nombramiento de las di-recciones absolutas de los procesado-
res y memorias actuales va de modoconsecutivo en incrementos unitariosde una dirección a otra hacia direccio-nes más altas, o en decrementos uni-tarios hacia otras más bajas, y estepatrón es constante. Además, el ma-peo básicamente es un problema decorrespondencias entre las direccio-nes absolutas y las direcciones ma-peadas, siendo esta relación lineal.De acuerdo a esto, se conciben elprimero y el segundo de los postula-dos que se presentarán más adelante.
En general, se utilizan númerosenteros positivos para nombrar a cadalocalidad direccionada; no se nombracon números negativos ni imagina-
rios. Según este axioma se puedeconcebir parcialmente el lugar geomé-trico para el mapeo que se describecon el tercer postulado.
Postulado 1: la relación entre lasdirecciones absolutas y direccio-nes mapeadas es lineal, y por lotanto una línea recta es la defini-ción de esa relación.
Postulado 2: la razón entre cual-quier par de nombramientos uni-tarios de las direcciones absolutasy mapeadas se supone igual a 1.
Postulado 3: por lo tanto, el planocartesiano en su primer cuadrante
MAPEADOR
<Value>
VCC
HOLD
AA0
AA5
DA15
AA2
AA6
PSR/-W
DA6
R/-W
AA4
IOSPS
READY
READY
DA6
AA6
BIO
DA14
D S
DA1
BPCLK
RESET
AA3
AA7
AA11
C50RD
DA8
AA8
DA13
DA8
AA4
DA11
DA0
AA1
XF
DA0
RESET
DA14AA13
DA2
HOLD#
AA9
DA1
AA14
IOS
HOLDA
DA9
DA11
DA12
SYSRST#
SELECT#
DA3
C50RD
AA10
DA10
DA5
AA12
DA15
AA11
INT1
HOLDA
DA4
AA13AA14
D S
AA12
DA5
XF
AA8DA7
AA10
DA2
DA13
DA7
AA5
AA0
AA2
DA12
DA4
INT1
DA9
AA9
DA3
AA1
AA7
DA10
AA3
AA15
AA15
A2A1
A8
A10
A4
A6
A14
A5
A12A11
A3
A9
A13
A0
A7
WE#OE#CE#
C50WE
C50WE
OE#WE#
CE#
D6D7
D14
D8
D4
D2
D15
D11
D10
D1
D13
D10
D6
D13
D3
D12
D3
D11
D2
D8
D0
D12
D4D5
D1
D7
D0
D5
D9
D14
D9
D15
A15
R?R
R?RR?R
U?
55565758596061626364727374757677
3029282726252423131211109876
82838990919293
128
129108
941
130
112
3839404142127
5
110
4344
45
46
123124
125
126
104105
106107
118119
3467
100312
95
9697
122
71103
109
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15
RDWED SISPSR/-WSTRBREADY
HOLDHOLDABRIAQBIO
IACK
INT1INT2INT3INT4NMIRS
MP/-MC
CLKOUT1
DRTDR
FSR
CLKR
TCLKXCLKX
TFSR/TADD
TCLKR
FSXTFSX/TFRM
DXTDX
EMU0EMU1/OFF
TCKTDITDOTMSTRST
CLKIN2
X2/CLKIN1X1
TOUT
CLKMD1CLKMD2
XF
U?
OSC
3
1
OSC
NC
U?
TMS320C50
55565758596061626364727374757677
3029282726252423131211109876
82838990919293
128
129108
941
130
112
3839404142127
5
110
4344
45
46
123124
125
126
104105
106107
118119
3467
100312
95
9697
122
71103
109
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15
RDWED SISPSR/-WSTRBREADY
HOLDHOLDABRIAQBIO
IACK
INT1INT2INT3INT4NMIRS
MP/-MC
CLKOUT1
DRTDR
FSR
CLKR
TCLKXCLKX
TFSR/TADD
TCLKR
FSXTFSX/TFRM
DXTDX
EMU0EMU1/OFF
TCKTDITDOTMSTRST
CLKIN2
X2/CLKIN1X1
TOUT
CLKMD1CLKMD2
XF
U7
CY7C1020
Figura 2. Esquemático de un nodo de procesamiento con su memoria mapeada.
10 polibits 2001
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
se presenta como la mejor op-ción, en donde el eje vertical es ladirección mapeada, el eje hori-zontal es la dirección absoluta amapear y la línea recta define almapeo.
En el mapeo se permite que unprocesador proyecte su dirección ab-soluta a una localidad de una memo-ria no inmediata a él, llamada memo-ria mapeada, cuyo nombramiento esde acuerdo al nombre de la direcciónabsoluta, lo cual genera el siguientepostulado:
Postulado 4: la dirección absolutadel procesador es la variable inde-pendiente x de la ecuación carte-siana y la dirección mapeada es lavariable dependiente y.
Aplicando una vez más el terceraspecto, pero ahora bajo la perspec-tiva de los cuatro postulados anterio-res, se puede abstraer el direcciona-miento al primer cuadrante del planocartesiano, en donde la función con-tinua es una línea recta con una pen-diente de 45 grados desde el origendel plano. La figura 3 muestra laabstracción del direccionamiento tí-pico de un nodo de procesamiento,con la siguiente consideración: en elorigen del plano, el cero, se encuen-tran las direcciones absolutas y ma-peadas nombradas como las direccio-nes cero, ya que normalmente en losmapas de memoria se considera el
cero como el primer nombramien-to[1] de las direcciones (es inusual vermapas de memoria en donde la pri-mera dirección sea nombrada con 1 uotro valor diferente a cero).
La figura 3 muestra el mapeoaparentemente imposible con el pro-cesador cuyo mapa de direcciones vade 0 a 65535. A partir de aquí empe-zamos a considerar al direccionamien-to como un ente más abstracto con elmotivo de darle una demostraciónmás rigurosa. Por tanto, se entrará enun nuevo nivel de abstracción al con-siderar un cuadrado en el plano carte-siano. Esta nueva etapa de razona-miento matemático busca demostrarque la comparación entre la variableindependiente y el mapeo es irracio-nal, y para ello se sigue la siguientehipótesis[1]:
“Se dice que el lado y la diagonalde un cuadrado son, de hecho, in-conmensurables”
A partir de este momento se entraen un razonamiento matemático quehace más tenue la conexión con elorigen computacional del problema;por lo tanto, el nivel de abstracción estal que el fenómeno real del mapeoha dado paso a la comprobación deque la comparación entre el ladoinferior horizontal del cuadrado y sudiagonal es irracional. La figura 4muestra el cuadrado obtenido a partirde la figura 3.
Si a es el lado yb la diagonal de uncuadrado, enton-ces según el teore-ma de Pitágoras:
b2=a2+a2=2a2,
y por tanto
22
????
???
ab
Se dice que no existe ningunafracción tal que su cuadrado sea iguala 2. Bien, demostremos por contra-dicción, y sean p y q números enterospara los cuales
22
????
????
?qp
... donde se puede suponer que py q no tienen factores comunes, por-que en otro caso podríamos simplifi-car la fracción. Pero si (p/q)2=2,entonces p2=2q2, y por tanto p2 esdivisible por 2. En este caso p2 estambién divisible por 4, puesto que esel cuadrado de un número par. Asíp2=4q1; esto es, 2q2=4q1, y q2=2q1.De esto se sigue que q debe tambiénser divisible por 2. Pero esto contra-dice la suposición de que p y q notienen factores comunes. Esta con-tradicción demuestra que el cocienteb/a no puede ser expresado median-te un número racional, esto es: "Ladiagonal y el lado de un cuadradoson inconmensurables".
Esta demostración nos lleva a unaetapa más de abstracción cuando seconecte con el Teorema de Cantor,pero antes cabe una conclusión par-cial. Se concluye que la función delmapeo queda indeterminada por laexclusividad de las direcciones abso-lutas, ya que la ausencia de las direc-ciones mapeadas en los razonamien-tos matemáticos elimina la corres-pondencia biunívoca, y ésta en sí es laesencia del mapeo.
0
131071
DIRECCIONES ABSOLUTAS
D I R E C C I O N E S
MA P E A D A S
131071
Figura 3. Plano cartesiano para el mapeo dememoria.
b a
a
Figura 4. Cuadrado del Mapeo.
XII 1 24 polibits 11
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
Del cuadrado de la figura 4 delado a y diagonal b, parece evidente,considerando toda su área, que haymuchos más puntos tomando en cuen-ta los lados verticales y el horizontalsuperior que en el lado horizontalinferior. O también se podría decirque, como la magnitud de la diagonalb es mayor que la magnitud del ladoa, entonces hay más puntos en ladiagonal que en cualquiera de loslados a. Lo anterior nos lleva a unaxioma heurístico: "los puntos en lageometría euclídea son como lasdirecciones absolutas del direccio-namiento de un procesador". Sinellos los demás conceptos no ten-drían existencia.
Para aclarar esto se va a demos-trar que el lado inferior horizontal atiene más puntos que la diagonal b delcuadrado. Básicamente se estableceun procedimiento que haga corres-ponder un punto dado de la diagonalb con un punto del lado a. Siempre ycuando a cada punto de la diagonal bcorresponda uno y nada más que unodel lado a y nunca uno del lado acorresponda a más de uno de ladiagonal b. Es decir, se estableceentre ambos conjuntos de puntos lacorrespondencia biunívoca.
Así, ante todo se necesita fijar unamanera de localizar inequívocamenteun punto cualquiera en el plano delcuadrado y el lado inferior a. Portanto, por el método cartesiano unpunto P de la diagonal (el plano) sedistingue de todos los demás por susdistancias a los lados a (para el méto-do cartesiano los lados que se consi-deran son el vertical izquierdo y elhorizontal inferior) del cuadrado. Ellado vertical a se superpone al ejepositivo de las ordenadas y el ladohorizontal a se superpone al eje de lasabscisas. Para simplificar las cosas seconsidera que los lados del cuadradotienen como medida la unidad. Deesta forma, todas las distancias (x, y)medidas en el cuadrado serán inferio-
res o cuando más iguales a uno, y seexpresarán como fracciones decima-les.
A un punto del plano del cuadradose le hace corresponder un punto deleje horizontal, el cual se obtiene me-diante el cálculo del área del cuadradodelimitado por las coordenadas delpunto del plano. Con este razona-miento se involucra a los lados quepermiten la correspondencia biunívo-ca entre las ordenadas y las abscisas.De este modo, el punto se localizarámediante las siguientes expresiones:
? ?2.0
0.0
ax
y
?
?
Para establecer una correspon-dencia entre un punto del plano, como(0.3, 0.3), con un punto en el eje delas abscisas se superpone el productodel área del cuadrado con el ladoinferior horizontal a, de tal modo queel producto 0 del área coincida en elorigen del plano cartesiano y su cre-cimiento siga por el eje de las absci-sas. Así, el punto (0.3, 0.3) se hacecorresponder con el punto donde y =0.0, y x = 0.09.
La figura 5 muestra la corres-pondencia entre el punto (0.3, 0.3)del plano y el punto (0.09, 0.0).
La razón de emplear el área delcuadrado es poder involucrar intuiti-vamente dos conceptos matemáti-cos, a saber: la correspondenciabiunívoca entre los ejes del planocartesiano, y la potencia. En el ante-rior procedimiento la potencia existeen el momento del cálculo de área delcuadrado.
En forma general se puede decirque, para todo punto P de coordena-das (0.a, 0.a), existe un punto Q enel segmento de coordenadas ([0.a]2,0.0). Este punto está en el segmento,puesto que su x es mayor que 0 ymenor que 1. Este procedimiento se
conoce con el nombre de Correspon-dencia de Cantor, y el Teorema, quees también de Cantor, se enunciacomo sigue:
“Los puntos del plano tienen lapotencia del continuo”
Desde la perspectiva del direccio-namiento de memoria lo anterior tie-ne el siguiente significado: de un modou otro con las direcciones del mapa dememoria de un procesador se podríamapear tanta memoria como un fac-tor conocido lo permitiese.
En el caso del diseño digital de unprocesador el mapa de puertos es elfactor multiplicativo más empleado.El método más usual es el usar co-mandos a través de un puerto o puer-tos. Haciendo una analogía con laCorrespondencia de Cantor, se po-dría considerar que el comando delpuerto tendría la misma función de lasordenadas: compactar. Con estemétodo se compacta de un modoartificial el direccionamiento; así, unprocesador con un mapa de 65536podría llegar a mapear el orden deGigas. Si el comando es de 16 bits dedatos, entonces un puerto podría pro-poner 2 16 combinaciones posibles quepermitirían establecer 216 mapas dememoria de 65536 direcciones, esdecir, se podría tener un direcciona-miento de hasta 4 Gigas.
Q
P 0.3
0.09 0.3
Figura 5. Correspondencia entreun punto de la diagonal y un
punto del lado horizontal infe-rior del cuadrado.
12 polibits 2001
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
La figura 6 muestra el diseño delnodo de procesamiento, en donde elprocesador cuenta con un par debuses de 16 bits tanto para el área dedatos y de direcciones; además tieneun puerto de 16 bits, y el banco dememoria lo constituyen 6 dispositi-vos SRAM de 64k x16. La entidaddigital, por así decirlo, encargada decomprobar la Correspondencia deCantor y de involucrar el factor paracompactar el direccionamiento es uncircuito programable: CPLD.
El listado 1 presenta el métodocodificado en VHDL que deberá im-plementarse para lograr la “compac-tación” del mapa de memoria originaldel procesador.
De este modo se puede decir quese ha comprobado un teorema com-putacional, el cual se enuncia dicien-do:
“el método de comandos porpuertos es un procedimiento ade-
cuado de compactación del mapade memoria de direcciones absolu-tas, y un eficiente mecanismo deexpansión del mapa de memoria dedirecciones mapeadas”
Con este Teorema se explica larazón de la compactación del direc-cionamiento de un procesador almomento del mapeo de grandes can-tidades de memoria mapeada. En laactualidad existen otros métodos decompactación más complejos, tal y
como lo es el método depaginación[3] similar alusado por el kernel[3]de los sistemas operati-vos multiusuarios: UNIX,WINDOWS NT, etc.
RESULTADOS
La investigación rea-lizada en este trabajoproporciona un princi-pio filosófico aplicado apartir de muchos, quepermite entender la basecon que se construyenlos circuitos de hardwareque proporcionan los di-versos modos de direc-cionamiento en los blo-ques de memoria vir-tual[3] de los sistemasoperativos.
CONCLUSIONES
Cuando se localiza elelemento básico de unhecho real, como lo esuna dirección de un di-reccionamiento, en esamedida se debería poderasociar ese hecho comouno de los significadosdel Teorema de Cantor.De hacerlo así se tendría
MAPEADOR1
<Value>
VCC
HOLD
AA0
AA5
DA15
AA2
AA6
PSR/-W
DA6
R/-W
AA4
IOSPS
READY
READY
DA6
AA6
BIO
DA14
DS
DA1
BPCLK
RESET
AA3
AA7
AA11
C50RD
DA8
AA8
DA13
DA8
AA4
DA11
DA0
AA1
XF
DA0
RESET
DA14AA13
DA2
HOLD#
AA9
DA1
AA14
IOS
HOLDA
DA9
DA11
DA12
SYSRST#
SELECT#
DA3
C50RD
AA10
DA10
DA5
AA12
DA15
AA11
INT1
HOLDA
DA4
AA13AA14
DS
AA12
DA5
XF
AA8DA7
AA10
DA2
DA13
DA7
AA5
AA0
AA2
DA12
DA4
INT1
DA9
AA9
DA3
AA1
AA7
DA10
AA3
AA15
AA15
C50WE
C50WE
OE#WE#
WE1
CE#
CE3CE4
WE1OE1CE1
CE4OE4WE4CE3OE3WE3CE2OE2WE2CE1OE1
WE4OE4
WE3OE3
WE2OE2CE2
OE5
WE5
WE5
OE5
CE5
CE5
A12
D1
D14
D14
D8
D 8
A13A13
A13
D9
D 9
D4
D15
D12
D13
D 3
D15
A4
D0D1
A8
A0
A12
D8
D10
D3
D2
D 1
D8
D12
D3
A11
D0
D11
A4
D14
A3
A8
D 0
D7
D14
A12
D1
D14
D6 D6
D13
A7
D 3
A3
D0
D10
A7
CE6
D2
D 2
D8
D3
D4
A11
D 7
D 5
A0
D4
D2
D12
D13
D9
A3
D15
D11
OE6
D13A13D12
A10
WE6
D3
A8
D10
D6
D2
D15
D2D1 D1
D14
D 6
A14D13
D15
A11
D7
D 7
A0
D 2
D 1
D14
D 8
D6
A13
D4
D5
D11
D11
A0
D8
D12
A14
D9
D 4
D0
D10D11
D9
CE6
A3
D 9
A4
A11
D7
A14
A11
D12
D13
D13
A7
A3
D 4
A4
D7
D5
D10
A0
D5
D0
A12
D 6D6
D9
D15
D15
D7
D11
A7
D4
A8
D 0
D5 D5
D11D10
A12
D12
A14 A14
A7
D3A4
OE6
D 5
D10
WE6
A15 A15 A15 A15
A5A6A6
A5 A5 A5
A6A5
A6A6
A2
A2
A1A1A2 A2
A1A1A2
A1
A15
A15
A0A1A2A3A4A5A6A7A8
A11A12A13A14
A0A1A2A3A4A5A6A7A8
A11A12A13A14
A15
A10
A10
A9
A9A10
A10
A10A9
A9A10
A9
A9A8A9
U2
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
R?
R
U?
OSC
3
1
OS
C
NC
R?
R
U?
55565758596061626364727374757677
302928272625242313121110
9876
82838990919293
128
129108
941
130
112
3839404142127
5
110
4344
45
46
123124
125
126
104105
106107
118119
3467
10031
2
95
9697
122
71103
109
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15
RDWEDSISPSR/-WSTRBREADY
HOLDHOLDABRIAQBIO
IACK
INT1INT2INT3INT4NMI
RS
MP/-MC
CLKOUT1
DRTDR
FSR
CLKR
TCLKXCLKX
TFSR/TADD
TCLKR
FSXTFSX/TFRM
DXTDX
EMU0EMU1/OFF
TCKTDITDOTMSTRST
CLKIN2
X2/CLKIN1X1
TOUT
CLKMD1CLKMD2
XF
U?
TMS320C50
55565758596061626364727374757677
302928272625242313121110
9876
82838990919293
128
129108
941
130
112
3839404142127
5
110
4344
45
46
123124
125
126
104105
106107
118119
3467
10031
2
95
9697
122
71103
109
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15
RDWEDSISPSR/-WSTRBREADY
HOLDHOLDABRIAQBIO
IACK
INT1INT2INT3INT4NMI
RS
MP/-MC
CLKOUT1
DRTDR
FSR
CLKR
TCLKXCLKX
TFSR/TADD
TCLKR
FSXTFSX/TFRM
DXTDX
EMU0EMU1/OFF
TCKTDITDOTMSTRST
CLKIN2
X2/CLKIN1X1
TOUT
CLKMD1CLKMD2
XF
U6
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
U5
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
U4
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
U3
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
U1
CY7C1020
1
4443
185432
4227262524212019
4039
6
28
2322
7
30313235363738
89101314151629
4117
Figura 6. Esquemático del nodo de procesamiento con 6 dispositivos de memoria.
XII 1 24 polibits 13
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
—Progama en VHDL para el plantear el comportamiento delMapeador.—En la figura 6, se muestra el esquemático para el direccionamien-to—del Mapeo.library ieee;use ieee.std_logic_1164.all;use work.numeric_std.all;entity mapeador isport(
—buses del procesador.AA:in std_logic_vector(15 downto 0);DA:inout std_logic_vector(15 downto 0);—control del procesador.C50RD: in std_logic;C50WE: in std_logic;—selección de área de datos(ds)— o de puertos(is) del procesador.DS: in std_logic;IOS: in std_logic;—señales activas en bajo.—señales de control del mapeador.—Chip Select.CE: out std_logic_vector(5 downto 0);—Output Enable.OE: out std_logic_vector(5 downto 0);—Write Enable.WE: out std_logic_vector(5 downto 0);—buses del mapeador.A:out std_logic_vector(15 downto 0);D:inout std_logic_vector(15 downto 0));
end mapeador;architecture comportamiento of mapeador issignal pto: integer range 0 to 6;beginp1:process(IOS)begin
case DA(2 downto 0) is—comandos para identificar la activación—de cada una de las memorias mapeadas.when «000» => pto <= 0;
when «001» => pto <= 1;when «010» => pto <= 2;when «011» => pto <= 3;when «100» => pto <= 4;when «101» => pto <= 5;when others => pto <= 6;
end case;end process p1;p2:process(DS)begincase pto is
when 0 => CE(0)<=’0';OE(0)<=’0';WE(0)<=’0';A(15 downto 0)<=AA(15 downto 0);if (C50WE=’0') then
D(15 downto 0)<=DA(15 downto 0);else
DA(15 downto 0)<=D(15 downto 0);end if;
when 1 => CE(1)<=’0';OE(1)<=’0';WE(1)<=’0';A(15 downto 0)<=AA(15 downto 0);
if (C50WE=’0') thenD(15 downto 0)<=DA(15 downto 0);
elseDA(15 downto 0)<=D(15 downto 0);
end if;when 2 => CE(2)<=’0';
OE(2)<=’0';WE(2)<=’0';A(15 downto 0)<=AA(15 downto 0);if (C50WE=’0') then
D(15 downto 0)<=DA(15 downto 0);else
DA(15 downto 0)<=D(15 downto 0);end if;
when 3 => CE(3)<=’0';OE(3)<=’0';WE(3)<=’0';A(15 downto 0)<=AA(15 downto 0);if (C50WE=’0') then
D(15 downto 0)<=DA(15 downto 0);else
DA(15 downto 0)<=D(15 downto 0);end if;
when 4 => CE(4)<=’0';OE(4)<=’0';WE(4)<=’0';A(15 downto 0)<=AA(15 downto 0);if (C50WE=’0') then
D(15 downto 0)<=DA(15 downto 0);else
DA(15 downto 0)<=D(15 downto 0);end if;
when 5 => CE(5)<=’0';OE(5)<=’0';WE(5)<=’0';A(15 downto 0)<= AA(15 downto 0);if (C50WE=’0') then
D(15 downto 0)<=DA(15 downto 0);else
DA(15 downto 0)<=D(15 downto 0);end if;
when others =>A(15 downto 0)<=»ZZZZZZZZZZZZZZZZ»;D(15 downto 0)<=»ZZZZZZZZZZZZZZZZ»;CE(5 downto 0)<=»111111";OE(5 downto 0)<=»111111";WE(5 downto 0)<=»111111";
end case;end process p2;end comportamiento;
Listado 1. Programa en VHDL para el CPLD, quecompacta el direccionamiento del procesador.
14 polibits 2001
Implementación del Teorema de Cantor en la Solución del Direccionamiento de ...
un pensamiento en términos de con-ceptos simbolizados, un pensamientoaltamente especializado y funcional,tal y como se presentó en este traba-jo. El único punto débil, si lo hay, esque esto se construye con la intuicióny no basándose en razonamientoslógicos. Aquí los razonamientos lógi-cos se emplearon en una fase poste-rior, para intentar un cierto grado deacuerdo con el lector.
Además, parece que la intuiciónes el mecanismo de captación de unconcepto, que junto con la familiari-zación y el know how de un campopermiten conocer ciertos significadosespecializados (los conceptos simboli-zados), y al alinearlos a los problemasque se intentan solucionar, los solu-cionan, o por lo menos permitenobtener descripciones que funcional-mente aclaran el problema.
Ahora, de acuerdo con la investi-gación de este trabajo se podría con-cebir que el analfabetismo funcionalse podría extrapolar patológicamen-te en las actividades teóricas de unpragmático, y así uno podría com-prender el porqué ciertas personasaunque son diestros en manipular elálgebra, el cálculo y la geometríaanalítica sean incapaces de dar solu-ciones matemáticas a ciertos proble-mas de la ingeniería y de las ciencias,y en esa medida presentarían la inha-bilidad para generar trabajos origina-les. Otro aspecto patente es que, antela carencia de un significado especia-lizado, se entra en una situación deinacción, y sólo se accesa a un granpotencial de acción cuando se logradicho significado. Quizás este párrafopresente una de las razones de laproductividad inconstante al realizaresta investigación.
BIBLIOGRAFÍA
[1] Aleksandrov A. D., Kolmogo-rov A. N., y Laurentiev, M. A.,“La matemática: su conteni-do, métodos y significado”,Alianza Universidad, AlianzaEditorial, Vol. 1, México,1994, Cap. 1.
[2] Erro Luis Enrique, “El Pensa-miento Matemático Contem-poráneo”, Instituto Politécni-co Nacional, México, 1986,Cap. 1.
[3] Freedman Alan, “Diccionariode Computación Bilingüe”,McGraw-Hill Interamericana,S.A., Colombia, 1996.
XII 1 24 polibits 15
Diseño de Sistemas Digitales Utilizando FPGA
Diseño de Sistemas DigitalesUtilizando FPGA
Diseño de Sistemas DigitalesUtilizando FPGA
E
M. en C. Amadeo José Argüelles CruzProfesor del CIC-IPNIng. José Angel Ascencio Roman,Ing. José Felipe Villalobos BaigorríaCIC-IPN
n la década de los ochenta seintrodujo en el mercado unanueva tecnología para la im-
plantación de sistemas digitales: losarreglos de compuertas programa-bles en campo (FPGA, "Field Progra-mmable Gate Array"). Estos disposi-tivos ofrecen varias ventajas con res-pecto a los componentes discretos demediana y alta escala de integración(MSI/LSI) y de aplicación específica.Los FPGA son capaces de operar conlógica multinivel, mientras que dispo-sitivos tales como los PLD se constru-yen específicamente para trabajar conlógica de dos niveles. Además, noprecisan de fabricarse “a medida”, loque da como resultado una reduccióntanto en los costos, cuando se generaun bajo volumen de partes, como enel tiempo de fabricación.
En este documento se exponenalgunas de las características conteni-das en la tecnología de esta clase dedispositivos y el proceso de diseñoutilizado, así como algunas de lasaplicaciones en las que actualmentese encuentran presentes.
TECNOLOGÍA DE FPGA
Esta es una clase de dispositivosprefabricados pero a diferencia de losPLD, que contienen lógica de dosniveles, presenta un diseño optimiza-do que permite el manejo de lógicamultinivel. Esta característica permitediseñar circuitos más complejos quepueden contenerse en un solo dispo-sitivo, aunque se tiene la desventajade los retardos involucrados en eldiseño, lo cual no se presenta en losPLD. Los FPGA proporcionan espe-cificaciones especiales para su ajustea determinado tipo de necesidades;tomando como base estas especifica-ciones y la manera en como puedenprogramarse, la figura 1 muestrauna clasificación de estos dispositi-vos.
Con base en suforma de configu-ración, existen cua-tro tipos de FPGA.En los dispositivosconfigurables, unavez que se progra-ma el sistema digi-tal que contendrán,no pueden realizar-se cambios en lamanera en que fue-ron dispuestas tan-to la distribución dela lógica como delas conexiones in-ternas.
Esta es la razón por la que a estetipo de FPGA se le da el nombre deprogramables una sola vez (OTP: "OneTime Programming"). Los dispositi-vos reconfigurables pueden progra-marse varias veces, y se dividen enestáticos y dinámicos; en los prime-ros, una vez que se carga la configu-ración en uno o varios de los disposi-tivos que conforman al sistema, seejecuta la tarea en cuestión, sin reali-zarse mas cambios en el funciona-miento. Con los circuitos dinámicosel hardware subyacente puede cam-biar en cualquier momento durante laejecución de la operación u operacio-nes que se llevan a cabo. A su vez, loscircuitos dinámicos se dividen en dis-positivos completamente configura-bles, en los cuales el dispositivo sereconfigura completamente; y los cir-cuitos parcialmente reconfigurables,en los que solo se cambia una partedel circuito.
FPGAs
Configurables (OTP)
Reconfigurables
Estáticos
Dinámicos
completamente configurables
parcialmente reconfigurables
Figura 1. Clasificación de dispositivos FPGA.
16 polibits 2001
Diseño de Sistemas Digitales Utilizando FPGA
Otra manera de identificar a unFPGA es con base en la complejidadde sus celdas elementales. Los circui-tos con “granularidad fina” presentanceldas básicas cuyo contenido son lascompuertas lógicas AND, OR y NOT.Otro tipo de circuitos presentan“granularidad gruesa”, es decir, susceldas básicas son más complejas, yaque pueden contener tablas de ver-dad, multiplexores y/o unidades arit-mético-lógicas.
VENTAJAS
Algunas de las ventajas de trabajarcon estos dispositivos se mencionan acontinuación:
• Bajo costo, ya que la configu-ración y programación del dispositivose soporta por el software de diseño.Como resultado, los cambios en eldiseño y mejoras en los productosobtenidos pueden realizarse sin incu-rrir en gastos adicionales.
• Reducción en los tiempos deproducción. Como ejemplo, el tiem-po de manufactura aproximado de undispositivo MPGA es del orden de 6meses; con los FPGA, las partes pue-den producirse después de solo unascuantas horas de diseño. Esto pro-porciona un amplio grado de flexibi-
lidad, permitiendo al ingeniero explo-rar a fondo el diseño, con el objeto deincorporar cambios de ultimo minutoy sin incurrir en costos adicionales.
• Alta integración (alrededor de2 millones de compuertas), lo cualreduce drásticamente el número decomponentes en un diseño en com-paración a su implantación con lógicaMSI/LSI. Además, disminuye el con-sumo de energía, se obtienen costosde manufactura bajos, inventarios pe-queños y un número reducido dedefectos de manufactura y errores dediseño.
CICLO DE DISEÑO
El ciclo de diseño (ver figura 2)para el desarrollo de sistemas digita-les con FPGA requiere de los siguien-tes pasos:
1. La introducción o descripción deldiseño.
2. La simulación del diseño para ve-rificar su funcionamiento.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
Figura 2. Primeros pasos de la generación de sistemas digitalesutilizando dispositivos FPGA.
Figura 3. Simulación del diseño en entornos gráficos.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
XII 1 24 polibits 17
Diseño de Sistemas Digitales Utilizando FPGA
3. El mapeo del diseño en la arqui-tectura del FPGA a utilizar.
4. La colocación e interconexión deldiseño en el FPGA.
5. La extracción de parámetros, unavez que el diseño ha sido conecta-do.
6. Una nueva simulación para verifi-car los tiempos de propagación delas señales involucradas en el dise-ño.
7. La generación del formato de con-figuración del dispositivo FPGA.
8. La configuración o programacióndel dispositivo.
9. La prueba del producto para ob-servar la existencia de algún fun-cionamiento no deseado.
En el paso número 1 se contem-pla la descripción e inserción del dise-ño con alguna de las herramientas deimplantación del diseño (programasde software llamados EDA: "Electro-nic Design Automation", Automati-
zación del Diseño Electrónico) que losfabricantes de FPGA distribuyen jun-to con sus productos (figura 2 ). Conla utilización de estos programas, eldiseñador puede describir de diferen-tes formas a los circuitos que intervie-nen en el sistema digital: utilizandoesquemas, expresiones booleanas ológicas, lista de conexiones y/o len-
guajes de descripción de hardware,etc.
Cuando el diseño ha sido inserta-do en la herramienta de automatiza-ción, el siguiente paso consiste en lasimulación del mismo (figura 3 ). Sepuede observar si el diseño cumplecon la funcionalidad deseada cuandose alimentan los vectores de prueba,mismos que servirán para modelar elcomportamiento del sistema. Estepaso puede omitirse para acelerar elproceso de obtención del productofinal, pero esto puede ocasionar queel mismo no presente la calidad que serequiere, lo que redunda en un mayorcosto si se involucra al diseño condispositivos que se programan solouna vez, OTP.
En el paso 3, se realiza la reduc-ción lógica y el mapeo del diseño conrespecto a una tecnología determina-da (figura 4). Esto implica que ladescripción del diseño, que antes deesta etapa todavía se presenta demanera independiente a la tecnolo-gía, sea transferida a las entidades(celdas) básicas de la tecnología quecontendrá al diseño.
Figura 4. Mapeo del sistema digital en el conjunto de elementospresentes en el FPGA.
ab
sel[0]
cd
sel[0]
z
F
G
H
CLB
sel[1]
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
S I
NO
Figura 5. Colocación y conexión de los elementosinvolucrados en el diseño.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
S I
NO
ab
sel[0]
cd
sel[1]
z
F
G
H
CLB
sel[1]
ab
sel[0]
cd
sel[0]
z
A
C
B
CLB
sel[1]
18 polibits 2001
Diseño de Sistemas Digitales Utilizando FPGA
En el paso 4 se posicionan lasentidades, elementos o celdas, utiliza-das en el mapeo, sobre un bloquefísico específico presente en el dispo-sitivo (figura 5). A continuación serealiza la conexión de los diferentesbloques, la cual se lleva a cabo en dosetapas: global y detallada.
A continuación se lleva a cabo laadquisición de los parámetros de re-traso de las señales involucradas en eldiseño (figura 6 ). Esto es, ya que sehan colocado y conectado todos loselementos que forman parte del dise-ño, la herramienta para el mismotoma de la base de datos correspon-diente al dispositivo utilizado, las ca-racterísticas que el fabricante declaraen sus hojas de especificaciones.
En la etapa 6 se procede a unanueva simulación del diseño (figura7), utilizando los mismos vectores deprueba que sirvieron para llevar acabo el paso 2. Esto permite la verifi-cación de los tiempos de propagaciónde las señales involucradas en el dise-ño, pero en esta ocasión, a diferenciade la simulación realizada en el paso
2, se toman en consideración losretardos producidos por las rutas deconexión existentes.
Si el resultado de la etapa anteriorcumple con las especificaciones dediseño, entonces se procede a ejecu-tar el paso 7 (figura 8), que es la
Figura 6. Consideración de los parámetros de retrasopresentes en el diseño.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
generación de los formatos de confi-guración del dispositivo o dispositivosindicados.
Concluido lo anterior, se procedea programar al dispositivo (figura 9 ),utilizando los archivos de configura-ción correspondientes.
Por último, se prueba el diseñopara verificar su funcionamiento co-rrecto.
APLICACIONES
El campo de aplicación de losdispositivos FPGA es muy amplio.Inicialmente se utilizaban en los siste-mas digitales como lógica adicional(glue logic), pero a medida que losfabricantes fueron desarrollando nue-vas características (mayor integración,menor costo, menor consumo deenergía, etc.), su utilización fue cam-biando a tal grado que en la actualidadhan cobrado gran importancia ensectores tales como computación, pe-riféricos, telecomunicaciones, redes,
Figura 7. Resimulación del diseño, tomando en consideración losretrasos presentes en el diseño depositado en la
arquitectura correspondiente.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
XII 1 24 polibits 19
Diseño de Sistemas Digitales Utilizando FPGA
control industrial, instrumentación,militar y electrónica de consumo, uti-lizando tan solo un dispositivo quecontiene a todo el sistema digital (SOC:"System On a Chip").
En nuestro país, actualmente sedesarrollan prototipos encaminadosa la generación no solo de elementosde apoyo académico; en el Centro deInvestigación en Computación (CIC)se generan proyectos de investiga-ción que tienen que ver con el desa-rrollo de sistemas digitales, utilizandológica basada en FPGA reconfigura-bles estáticos (figura 10).
CONCLUSIONES
Como se puede observar en elmaterial presentado, los FPGA seutilizan en una amplia variedad deaplicaciones, involucrando todo tipode sistemas de cómputo. La forma encomo se desarrolla el diseño es bas-tante flexible y no se requiere de unainversión cuantiosa para poder reali-zar proyectos de baja y mediana esca-
Figura 8. Generación de los archivos de configuración.
Figura 9. Programación.
la. Gracias al incremento en el núme-ro de compuertas y a la mejora en elrendimiento en los FPGA, existe uninterés creciente en dirigir el diseñode sistemas digitales hacia una inte-gración total.
RECONOCIMIENTOS
El autor agradece el apoyo deAnna Acevedo (Xilinx Corp). y deActel, por proporcionar informaciónreferente a la línea de dispositivosFPGA que fabrican; al Centro deInvestigación en Computación (CIC),por el respaldo en las investigacionesrealizadas en referencia a este tema yal Centro de Innovación y DesarrolloTecnológico (CIDETEC) por conti-nuar con su esfuerzo por diseminarlos conocimientos científicos y técni-cos a través de la revista Polibits.Estos dos últimos Centros formanparte del Instituto Politécnico Nacio-nal.
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
DESCRIPCIÓN
SIMULACIÓN
MAPEO
COLOCACIÓN E INTERCONEXIÓN
EXTRACCIÓN DE PARÁMETROS
RESIMULACIÓN
GENERACIÓN DE LACONFIGURACIÓN
PROGRAMACIÓN DE DISPOSITIVOS
CUMPLE
ENTRADA
SI
NO
20 polibits 2001
Diseño de Sistemas Digitales Utilizando FPGA
Figura 10. Prototipo para la generación de sistemas digitales em-pleando dispositivos FPGA XC4000 y Spartan del fabricante Xilinx.
BIBLIOGRAFÍA
[1] Smith, M. J. S., Application-Especific Integrated Circuits.Adisson-Wesley Longman,1998.
[2] Pierre Marchal, Field-Progra-mmable Gate Arrays. Com-munications of the ACM Vol.42, No. 4 April,1999.
[3] Xilinx, The programmable Lo-gic Data Book, Xilinx, Inc.1999.
[4] Actel, FPGA Databook andDesign Guide, Actel Corpora-tion 1996.
[5] Xilinx, Xilinx University Pro-gram Workshop Labs, Xilinx,Inc. 1998.
XII 1 24 polibits 21
Uso de Multimedios en la Educación Básica de Ingeniería por Internet
Uso de Multimedios en laEducación Básica de Ingeniería
por Internet
Uso de Multimedios en laEducación Básica de Ingeniería
por Internet
E
Rodolfo Romero HerreraESCOM-IPNE-mail: [email protected]
ste documento presenta elestudio de diferentes sistemasde enseñanza basados en com-
putadora, y los pasos a seguir paraestablecer un sistema de enseñanzasemipresencial, soportado en meto-dologías y tecnologías diversas queemplean multimedia y, de maneraespecífica, a través de Internet. So-bre esta base se cuestionó cuál sería elmétodo más adecuado y con mejoresresultados para la enseñanza de laingeniería, usando esquemas en líneaapoyados en computadora; así comolas estrategias didácticas más apro-piadas. Se da a conocer el sistemahipermedia empleado, el cual estábasado en el mindware, hardware ysoftware disponible en la escuela.
INTRODUCCIÓN
Cuando apareció el papel comosoporte de la información, cambioentonces una serie de patrones cultu-rales que afectaron la forma de vivir.De la misma forma, continuamenteaparecen nuevas tecnologías que cam-bian los soportes de la información,pasando desde la pluma y el papelhasta los sistemas multimedia.
Hoy, la computadora deja de seruna sofisticada máquina de calcular, yse convierte en una máquina para
comunicarse, encontrándose en elámbito multimedia, donde el sonido,la voz, el texto y la capacidad detrabajar conjuntamente a distanciason una realidad, tanto para la educa-ción como para el desarrollo de lospueblos.
La escuela tradicional cumplíaperfectamente con la función de dis-tribución de la información necesariaen tiempo y forma, para que la genteque se formaba pudiera participar enla sociedad. En la actualidad, sin em-bargo, comparte esta función conmuchos medios.
El conductismo ha resultado seruna de las corrientes que más haninfluido en la psicología contemporá-nea; surge como una corriente quevino a revolucionar la visión mentalis-ta que imperaba en la época de suaparición. Sin embargo, actualmenteel constructivismo goza de mayorpopularidad en los sistemas educati-vos.
La necesidad de emplear los mul-timedios en la educación radica en elhecho de que no todos los individuosaprenden de la misma forma; el apren-dizaje no siempre se da por el mismocanal de percepción, y las personasnormalmente no tienen los mismosintereses o antecedentes. Es por estoque en el presente trabajo se justificael uso del constructivismo combinadocon el cómputo educativo, donde suprincipal aplicación será en la educa-ción semipresencial.
SISTEMAS DE ENSEÑANZA BASADOS
EN COMPUTADORA
Hay muchos sistemas de ense-ñanza basados en computadora; sinembargo, cada uno de ellos terminaya sea en el conductismo o en elconstructivismo. Es por eso que serealiza un análisis como primer pasopara construir un sistema educativobasado en multimedia.
CONDUCTISMO
Conceptos tales como motivacióne impulso, así como sensación y per-cepción, entre otros, comenzaron autilizarse para hacer referencia a laspropiedades dinámicas e intrínsecasde la conducta humana. Sin embar-go, el replanteamiento de sus teoríasmotivó que el conductismo presenta-ra divergencias.
La relación estímulo-respuesta esel fiel reflejo de una concepción teó-rica que otorga primacía al objetosobre el sujeto, en donde el estímuloprovoca, activa y hace reaccionar alsujeto, pero no considera que el hom-bre interactúa con el medio social ybiológico que lo rodea; debido a esteproceso dinámico, el hombre tiene laposibilidad de desarrollarse y evolu-cionar.
El conductismo se concreta a con-cebir al hombre como un organismodependiente de los cambios ambien-
22 polibits 2001
Uso de Multimedios en la Educación Básica de Ingeniería por Internet
tales, y que en forma automáticaresponde a ellos. En el caso de losmultimedios es prioritario que la com-putadora no sea la que tome el man-do de las acciones; sin embargo, algu-nos conceptos del conductismo pue-den ser de utilidad para ciertas activi-dades educativas.
CONSTRUCTIVISMO
La base en este enfoque es elindividuo, en el que una construcciónpropia se va produciendo como resul-tado de la interacción de su disposi-ción interna y su interacción con elmedio ambiente; así, el conocimientoes una construcción de la personamisma. Esta construcción resulta dela representación inicial de la infor-mación y de la actividad externa ointerna al individuo; por esto resultaimportante una concordancia altaentre la realidad y la construcción. Deesta forma, es posible sugerir que enel constructivismo lo fundamental re-side en el proceso de adquisición.
A través de los procesos de apren-dizaje, el alumno construye estructu-ras, es decir, maneras de organizar lainformación, las cuales facilitaránmucho las adquisiciones futuras. Estoprovoca la interactividad si se imple-menta en un sistema de cómputoeducativo.
Las estructuras de conocimientoson las representaciones organizadasde experiencias previas; son relativa-mente permanentes y sirven comoesquemas que funcionan activamen-te para filtrar, codificar, categorizar yevaluar la información que uno recibecon alguna experiencia relevante.Todo ello permite establecer un retoal estudiante, muy similar al que exis-te en los juegos por computadora.
La idea principal es que mientrasaprendemos información estamosconstantemente organizándola en
unidades. Tales unidades tienen al-gún tipo de organización, que llama-mos estructura. La nueva informa-ción generalmente se asocia con laexistente en estructuras anteriores, ala vez que es posible reorganizar oreestructurar la información original.
Otro punto que se enfatiza en elconstructivismo es que el conocimien-to es un producto de la interacciónsocial y de la cultura. Por tal motivo,no se debe permitir que el softwareaísle al individuo del mundo que lerodea, sino mas bien que sea unaherramienta que le permita desenvol-verse mas fácilmente dentro de él.
Piaget planteó que, para apren-der, el alumno requiere de un estadode desequilibrio, una especie de an-siedad que sirve de motivación paraaprender. Si nosotros provocamosese deseo por aprender a través delempleo de multimedios, lograremosmejores resultados, ya que el estu-diante siempre tendrá la necesidad deconocer más.
A pesar de la certidumbre de losconceptos en el constructivismo, re-cordemos que todos somos diferen-tes; por tal motivo es importanteestablecer una diferencia entre lo queel alumno es capaz de aprender soloy lo que puede aprender con el con-curso de otras personas. Por ello, laeducación escolar debe partir del ni-vel de desarrollo efectivo del alumno,pero no para acomodarse a él, sinopara hacerlo progresar a través de lazona de desarrollo próximo, paraampliarla y generar eventualmentenuevas zonas de desarrollo.
Así, el punto más importante en elcómputo educativo es asegurar la rea-lización de aprendizajes significati-vos, a través de los cuales el alumnoconstruye la realidad atribuyéndolesignificados. Para tales fines, el con-tenido debe ser potencialmente im-portante y el alumno debe tener una
actitud favorable para aprender signi-ficativamente; cuanto mayor sea elgrado de significatividad del aprendi-zaje realizado, mayor será también sufuncionalidad.
En consecuencia, el aprendizaje(según el conductismo) es concebidocomo un cambio en la conducta pormedio del condicionamiento, mien-tras que para el constructivismo elaprendizaje es una construcción pro-pia que se va produciendo mediantela interacción de las estructuras inter-nas con el medio ambiente. Enton-ces, si consideramos los puntos masadaptables a los multimedios obten-dremos un sistema educativo de ense-ñanza que considere tanto aquellosalumnos cuyo condicionamiento esmas adaptable al conductivismo comolos alumnos que lo son más hacia elconstructivismo, teniendo entoncesun híbrido de diferentes estrategias deenseñanza.
ESTRATEGIAS DE APRENDIZAJE
* ESTRATEGIAS DE PROCESAMIENTO
Las estrategias de procesamientoson aquellas que utiliza el aprendizpara asegurar un proceso de capta-ción e ingreso de nueva información,destrezas, etcétera. Estas estrategiasincluyen :
1. Estrategias de atención.2. Estrategias físicas.3. Estrategias de elaboración verbal.4. Elaboración por vía de imágenes.5. La comparación.6. La inferencia y7. La aplicación o ensayos futuros.
* ESTRATEGIAS DE PRODUCCIÓN
Las estrategias de producción re-cuperan información almacenadapara hacer uso de ella y para que sea
XII 1 24 polibits 23
Uso de Multimedios en la Educación Básica de Ingeniería por Internet
capaz de transferir o generalizar loque ha aprendido a problemas queencontrará en su vida fuera de laescuela. Estas estrategias pueden serdesarrolladas y aplicadas a cuatro for-mas principales de producción:
a) Recuperación y uso de informa-ción específica.
b) Generalización o transferencia deinformación, o aplicación de habi-lidades a nuevas situaciones.
c) Identificación, representación yresolución de problemas (aplican-do lo aprendido).
d) Desarrollo y aplicación de la crea-tividad en la generación de res-puestas.
* ESTRATEGIAS AFECTIVAS
El alumno debe poseer el estadoafectivo positivo hacia las estrategiaspara usarlas, por ejemplo: Interés,motivación extrínseca, imagen de símismo, atribución de control, ansie-dad, conciencia afectiva, etc.
* METACOGNICIÓN
El alumno debe tener concienciade lo que uno está haciendo; estoincluye:
- La planificación.- La supervigilancia del proceso (mo-
nitoreo).- La evaluación y constatación de
resultados.
MODELO DE ENSEÑANZA
ESTRATÉGICA
Una concepción de inteligencia«desarrollable» como la antes plantea-da conduce, obligadamente, a unmayor compromiso por parte de losprofesores para el diseño de las con-diciones del aprendizaje.
En esta nueva concepción, la por-ción fluida de la inteligencia, la rela-cionada con las estrategias y los esti-los de aprendizaje, es susceptible deser moldeada.
El estudiante necesita reconocer-se a sí mismo como estudiante; sabercuál es su estilo de comprensión yaprendizaje, qué tareas, materiales ymaterias le son difíciles, etc. En estemodelo se requiere un entrenamien-to para que el estudiante esté cons-ciente del tipo de actividades que serealizarán. Para ello se debe planearuna serie de actividades que le ayudena mejorar en su aprendizaje, talescomo estrategias para la organiza-ción y estructuración, etc.
COMPONENTES DE UN SISTEMA
EDUCATIVO MULTIMEDIA
En un sistema educativo con mul-timedia se deben contar con tres par-tes básicas: Hardware. Mindware, ySoftware.
HARDWARE
Una parte fundamental para elsistema es la computadora, la cualdebe estar equipada con unidad deCD-ROM, suficiente memoria princi-pal, disco duro con espacio de alma-cenamiento adecuado, micrófono,tarjeta de sonido y acceso a internet.Si se trata de educación a distancia, senecesitara también un servidor, videocámara, etc.
Existen otros componentes queforman parte del hardware necesariopara crear multimedios, como son:Digitalizador, cámaras fotográficasdigitales, cámaras de video, tabla digi-talizadora, videograbadora, etc.
MINDWARE
Mindware es el componente hu-mano y educativo, que ayuda a orga-nizar la parte técnica (hardware) y la
paquetería (software), para confor-mar un sistema multimedios. Si estefactor no esta bien capacitado, denada servirá que se tenga el equipomás sofisticado.
ALCANCES DEL CÓMPUTO EDUCATIVO
Las perspectivas del uso de multi-medios en la educación son cada díamás prometedoras, además de que elcosto de estos sistemas tiende a dis-minuir en forma dramática; esto ponea disposición de los educadores me-dios que en otros tiempos eran inal-canzables. Todo ello, junto con elinternet, nos permite una educacióna distancia o semipresencial más efec-tiva.
El uso adecuado de múltiples me-dios asociados para la instrucción esun factor complementario y en algu-nas ocasiones necesario para lograrun aprendizaje significativo. Las posi-bles aplicaciones de los multimediosofrecen la opción de tener una formade acceso a información diferentecon representaciones y situacionesmás reales, lo que a su vez nos permi-te explorar en la práctica diversasestrategias de enseñanza.
SISTEMAS BASADOS EN MULTIMEDIA
En este caso la computadora desa-rrolla una función eminentementeeducativa, sobre todo si considera-mos que los espacios requeridos parala educación presencial son cada díamas escasos y congestionados, y quela enseñanza de la educación básicade ingeniería juega un papel muyimportante en el avance de la tecno-logía. Así, aunque el medio es diferen-te los contenidos serán los mismos,pero con una mayor interactividad; esdecir, que no se pretende únicamente
24 polibits 2001
Uso de Multimedios en la Educación Básica de Ingeniería por Internet
emplear la computadora como me-dio de enseñanza de un lenguaje deprogramación o algún paquete enespecial, sino para cualquier conteni-do a transmitir, en particular las ma-terias básicas en la tecnología.
El papel de la computadora comoinstrumento de ayuda para la adquisi-ción de determinados conocimientosimplica la utilización de un softwarepreviamente elaborado y que se ofre-ce al alumno para alcanzar un objeti-vo determinado. El éxito dependerá,en gran medida, de la calidad delsoftware.
Para lograr esto se requiere que seformen grupos con especialidadesdiferentes. Por ejemplo, un grupopedagógico, un grupo de diseño grá-fico, un grupo para desarrollo decontenidos, y un grupo de programa-dores. Es evidente entonces que elequipo debe ser multidisciplinario.Considerando lo anterior, es factiblerealizar un sistema de este tipo en unlapso de 6 meses, si se dispone de losmedios suficientes.
Como resultado de la aplicaciónde un sistema de este tipo a un grupode 15 alumnos, se obtuvo un 100%de resultados efectivos. Para conse-guir estos resultados es indispensablecontar previamente con los polili-bros; un polilibro no es un pasa pági-na, ni tampoco un libro de texto porinternet. Es una clase planeada, con-siderando que el receptor debe inte-ractuar con la computadora y queesta debe captar la atención del estu-diante, sin llegar a tener distractoresal concepto que se desea aprender.
A pesar de lo atractivo de la idea,un polilibro considera en un principiola corriente conductista, pues la ma-yoría de nuestros alumnos han traba-jado de esta manera, lo que les dificul-ta entender que ellos son los quedeben construir el conocimiento; sinembargo, al final de un polilibro debe-
mos tener un material totalmenteconstructivista.
En un polilibro se requiere utilizarlos multimedios adecuadamente, estoes, sin llegar al abuso. Por ejemplo, siqueremos que el alumno escuche unamelodía para que recuerde al autor dela misma, no es necesario entoncesun micrófono, mas bien necesitare-mos una bocinas, y tal vez un video.
Por otra parte, si queremos que elreceptor del conocimiento aprenda amanejar una bicicleta , lo mejor es queuse una. Por este motivo se consideraque la mejor manera de aprender espracticando, con lo que el conoci-miento adquiere un verdadero signifi-cado para el alumno. El polilibro debeser interactivo y valerse del medioapropiado (bocinas, micrófono, vi-deo, mundos virtuales, simulación,etc); además, no debemos olvidar queeste material no es un sustituto delprofesor, sino más bien un apoyobásico para su trabajo. El alumno nodebe perder el ambiente del salón declase, por esto recomendamos unaeducación semipresencial, es decir, laasistencia a una sesión de trabajo porlo menos una vez a la semana. Estomejora el aprovechamiento de lasinstalaciones, sobre todo consideran-do que cada vez es más difícil atenderla demanda educativa.
CONCLUSIONES
El uso de multimedios en la educa-ción básica a nivel ingeniería no secontempla como un hecho aislado,tal y como ocurre en cualquier aulatradicional, sino como un procesocontinuo, permanente y personal.
La formación multimedia permiteal usuario planificar su horario y pro-grama formativo según sus necesida-des concretas y su disponibilidad detiempo, y puede hacerlo con solotener los medios al alcance.
A diferencia de la pasividad quecaracteriza al alumno asistente a lamayor parte de las clases que seimparten bajo el método tradicional,la formación multimedia está dotadade un alto grado de interactividad ycontinuo «ejercicio» de pasos prácti-cos, proporcionando incluso el atrac-tivo de los video juegos.
Se amplía la capacidad de reten-ción en el usuario, al tratarse de unmétodo extraordinariamente visual einteractivo, donde el alumno es elúnico protagonista. Esto aumenta lamotivación y centra el aprendizaje enobjetivos concretos, reduciendo elmiedo al fracaso.
La capacidad de respuesta delalumno aumenta ya que el usuariorecibe atención personalizada segúnsus necesidades.
Los multimedios permiten queel aprendizaje se dé en un canal depercepción relevante, apoyado porotros canales, además de que el apren-dizaje se desarrolla de acuerdo con lasnecesidades y características de cadausuario. Los multimedios también per-miten un aprendizaje más significati-vo, ya que se aprende haciendo, gra-cias a la interactividad; para esto esnecesaria la aplicación de diversasestrategias basadas no solo en el cons-tructivismo, sino también en el con-ductivismo, ya que no debemos olvi-dar que somos personas diferentes ypor tal motivo con diversas capacida-des para aprender.
Un polilibro debe ser una claseinteractiva que considere el mediomás adecuado para un aprendizajesignificativo, de tal manera que seconstruya un ambiente virtual deaprendizaje, con las características deun salón de clase, y el atractivo de unvideo juego, sin llegar al abuso en laaplicación de los multimedios.
XII 1 24 polibits 25
Uso de Multimedios en la Educación Básica de Ingeniería por Internet
BIBLIOGRAFÍA
Ausbel D. (1983) "Psicología Educa-tiva. Un punto de vista", Tri-llas, México.
Carretero, M. (1993) "Constructivis-mo y Educación". EDELVI-VES. España.
Manuel Gandara, (1999) "Introduc-ción al uso de los multime-dios en educación". Direcciónde Educación Continua y aDistancia.
26 polibits 2001
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
Desarrollo de un Manejador deDispositivo Utilizando el Modelo
Windows Driver Model (wdm) paraWindows 98 y 2000
Desarrollo de un Manejador deDispositivo Utilizando el Modelo
Windows Driver Model (wdm) paraWindows 98 y 2000
E
M. en C. Rubén Peredo Valderrama,Rubén [email protected]
l objetivo de éste trabajo es eldesarrollo de un manejadorde dispositivo que se encargue
del control del puerto paralelo de unacomputadora personal (PC) bajo elesquema de Windows Driver Model(WDM) usado en Windows 98 y Win-dows 2000. Un manejador de dispo-sitivo (Device Driver, DD) proporcio-na una interfase de software para elhardware conectado a una computa-dora. Los programas de usuario tie-nen acceso al hardware de una formaestablecida, sin tener que preocupar-se de los detalles de control del hard-ware; esto es, el manejador del dispo-sitivo oculta las particularidades delacceso al mismo.
Un manejador es un programaque normalmente se vuelve parte delkernel del sistema operativo al mo-mento de la carga, y hace disponiblesuno o más dispositivos a los progra-mas de usuario, representando unapieza de hardware, lógica o física.
En Windows, un manejador siem-pre hace que el dispositivo aparezcacomo un archivo para los programasque quieren utilizarlo. Así, para teneracceso al dispositivo solo se requiereabrir el manejador del mismo, e inte-ractuar con él mediante peticiones delectura y/o escritura.
El modelo compartido de WDMtiene beneficios significativos, ya quesoporta ambas plataformas (w98 yw2000), reduciendo el tiempo de de-sarrollo para los programadores. Tresson los requerimientos para el desa-rrollo de DD con WDM: multiproce-sador, independiente del procesadory Plug and Play(PnP).
Un driver WDM escrito correcta-mente requiere únicamente de unarecompilación para funcionar en unambiente Windows NT (New Tecno-logy), manteniendo compatibilidadhacia atrás.
1. INTRODUCCIÓN
El WDM ha tenido diversasmodificaciones siguiendo el desarro-llo del sistema operativo Windows.Windows 3.1 intentaba dar soporte auna gran canti-dad de contro-ladores SCSI di-ferentes, mien-tras que NT ma-nejaba minipor-ts; Windows 3.1fue lanzado sinsoporte paraminiports SCSI.Se buscaba unmodelo com-partido para losdrivers que co-menzó a funcio-nar con Windo-
ws 95, ya que los miniports SCSI yNDIS son compatibles a nivel binariocon NT. Uno de los beneficios de unmodelo compartido (WDM) es que losprogramadores de DD pueden redu-cir el tiempo de desarrollo en un 50%,además de que está diseñado para sercompatible hacia atrás.
El WDM proporciona un marcode device drivers para Windows 98 y2000. Estos sistemas en aparienciason similares, pero trabajan de mane-ra muy diferente: Windows 98 estabasado en DOS, evolucionando des-de Windows 1.0 y hasta Windows 95,con un enfoque hacia el área decomputadoras de escritorio. Windo-ws 2000 parte de NT y se destinaprincipalmente a equipos servidores.
La figura 1 muestra la arquitectu-ra de Windows 2000. El software sepuede ejecutar en cualquiera de losdos modos; en el modo usuario es
APLICACIONES
WIN32SUBSISTEMA
MODO USUARIO
MODO KERNEL
DEVICEDRIVERS
MANEJADOR I/O
INTERFACEDE SERVICIODEL SISTEMA
LLAMADAS AL WIN32 API
IRQ PASADO A LARUTINA DE DESPACHO
DEL DRIVER
LAYER DE ABSTRACCIÓN DE HARDWARE
HARDWARE
LLAMADAS HAL
OPERACIONES ESPECÍFICAS-PLATAFORMA
Figura 1. Arquitectura de Windows 2000.
XII 1 24 polibits
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
27
inseguro y restringido a cier-tas actividades, mientras queen modo kernel es totalmen-te confiable y capaz de reali-zar cualquier tarea.
La figura 2 muestra laarquitectura de Windows 98.El kernel se denomina Vir-tual Machine Manager,VMM, porque su trabajo prin-cipal es crear una o másmáquinas virtuales que com-parten el mismo hardwarede la máquina física. El pro-pósito original de un mane-jador virtual de dispositivo(virtual device driver, VxD)en Microsoft Windows 3.0
era tratar en for-ma virtual a undispositivo espe-cífico para ayu-dar a la VMM acrear una simula-ción, de tal for-ma que cada unade las máquinasvirtuales tenga uncomplemento to-tal del hardware.La misma arqui-tectura VMM deWindows 3.0 seutiliza en w98,
pero con unaagrupación paramanejar nuevohardware y apli-caciones de 32-bits.
La figura 3muestra comouna aplicacióntanto WIN32como WIN16 yDOS realiza soli-citudes de I/O enWindows 98. Enla columna de laizquierda se indi-ca como una apli-
cación WIN32 accesa a las solicitudesde I/O por medio de un sistema DLLcomo KERNEL32.DLL. Pero las apli-caciones pueden únicamente usarReadFile para leer archivos de disco,puertos de comunicación, y dispositi-vos que tengan drivers WDM. Paracualquier otra clase de dispositivo,una aplicación debe usar un mecanis-mo basado en Device IoControl.La columna central corresponde auna aplicación WIN16 ejecutando unasolicitud de I/O y en la parte derechase muestra una aplicación DOS eje-cutando una solicitud de I/O.
La figura 4 muestra losdiferentes tipos de driversque maneja Windows2000, los cuales son:
• Virtual Device Driver(VDD), es un componenteen modo-usuario que per-mite a las aplicaciones tipoDOS tener acceso al hard-ware sobre plataformasx86.
• Drivers Modo-Kernel,los cuales incluyen muchassubcategorías. Un driverPlug and Play (PnP) es undriver en modo-kernel que
maneja PnP.
• Driver WDM, es un driver PnPcompatible con Windows 98 yWindows 2000. Dentro de la ca-tegoría de los drivers WDM, tam-bién se distingue entre los driverstipo class y los minidrivers, loscuales proveen ayuda a un driverclass.
• Video drivers: son drivers en modo-kernel para dispositivos de des-pliegue e impresoras; su funciónprincipal es visualizar datos.
• Drivers del sistema de archivos:implementan el modelo de siste-
Figura 2. Arquitectura de Windows 98.
SISTEMA DE MÁQUINAVIRTUAL
APLICACIÓNWINDOWS
MAQUINA VIRTUAL DOS
APLICACIÓN MS-DOS
MANEJADOR DE MAQUINAVIRTUAL
HARDWARE
VIRTUAL DEVICE DRIVERS
MODO USUARIO
MODO KERNEL
APLICACIÓNWIN32
APLICACIÓNWIN16
SISTEMADLL
SISTEMADLL
DRIVER.DRV
APLICACIÓNMS-DOS
DRIVER.SYS
"VIRTUALIZACIÓN" DEVICE DRIVER
MODO USUARIO
MODO KERNEL
RING-0-DRIVER
HARDWARE
SISTEMA DE MÁQUINAVIRTUAL MÁQUINA VIRTUAL DOS
Figura 3. Solicitud de I/O en Windows 98.
VIRTUAL DEVICE DRIVERS(VxD) DRIVERS MODO-KERNEL
DRIVERSFILE SISTEM
DRIVERSLEGACY DRIVERS PnP
DRIVERSVIDEO
DRIVERSWDM
MINIDRIVERSDRIVERSCLASS
Figura 4. Drivers Windows 2000
28 polibits 2001
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
ma de archivos estándar para laPC en discos duros o sobre co-nexiones de red.
• Legacy device drivers: son mane-jadores en modo-kernel, que di-rectamente controlan un disposi-tivo del hardware sin ayuda deotros drivers. Esta categoría inclu-ye esencialmente drivers para lasprimeras versiones de WindowsNT, que están ejecutándose sincambio en Windows 2000.
2. DESARROLLO DEL TRABAJO Y
TECNOLOGÍA UTILIZADA
2.1 MANEJADOR DE DISPOSITIVO
WDM
Microsoft proporciona varios ma-nejadores genéricos que realizan ta-reas comunes. Los manejadores dedispositivos pueden usar las caracte-rísticas de estos elementos estándar.
La labor de escribir un manejador,por lo tanto, inicia regularmente conla identificación de qué manejadorgenérico se puede usar. Un maneja-dor de bus de bajo nivel puede usarsepara todas las comunicaciones bási-cas con el hardware. Un manejadorde clase intermedia podría proporcio-nar las características que son comu-nes a una categoría completa de dis-positivos.
2.2 EL MODELO DE MANEJADOR
DE WINDOWS (WDM)
El WDM tiene dos aspectos sepa-rados pero igualmente importantes.Primero, este modelo describe la es-tructura estándar para manejadoresde dispositivos; segundo, Microsoftproporciona una serie de manejado-res de bus y clase para dispositivoscomunes.
El modelo WDM describe cómo seinstalan y configuran inicialmente losdispositivos y cómo deben servir a laspeticiones de usuario e interactuarcon el hardware. Un manejador WDMdebe encajar en el sistema Plug andPlay (PnP) que permite a los usuariosconectar dispositivos que pueden con-figurarse por software.
2.2 COMPATIBILIDAD DE CÓDIGO Y
BINARIA
Originalmente, Microsoft estable-ció que los manejadores WDM seríancompatibles a nivel binario entre Win-dows 98 y Windows 2000 x86, ycompatibles en código para Windows2000 en plataformas Alfa. Sin em-bargo, la compatibilidad de binariosno está garantizada.
Es probable que se tengan proble-mas cuando no se usan las herra-mientas para el mismo sistema ope-rativo; esto es, es mejor usar el DDKpara Windows 98 para manejadoresen Windows 98 y el DDK W2000para W2000.
2.3 MANEJADORES ESTILO WDMVS. NT
La principal diferencia en el códi-go del dispositivo de estos dos estilosradica en la forma en que se recono-cen los dispositivos.
En un driver WDM, el Administra-dor Plug and Play avisa cuando seagrega o quita un dispositivo del siste-ma. El administrador Plug and Playusa archivos de instalación INF paraencontrar el manejador correcto parael nuevo dispositivo. En contraste, unmanejador estilo NT tiene que encon-trar sus propios dispositivos, regular-mente en su rutina de inicialización.Este tipo de manejadores usualmentese instalan usando un programa espe-cial.
Los nuevos manejadores de bus yclase sólo están disponibles para losmanejadores WDM. Los manejado-res WDM nuevos y los de NT debensoportar las características de admi-nistración de energía y Administra-ción de Windows.
2.4 COMPONENTES DE UN
MANEJADOR DE DISPOSITIVO
Estas son algunas de las tareas quepuede hacer un manejador de dispo-sitivo:
• Configurarse inicialmente• Crear y borrar dispositivos• Procesar solicitudes Win32 para
abrir y cerrar un manejador dearchivo.
• Procesar solicitudes Win32 deEntrada/Salida
• Serializar el acceso al hardware• Comunicarse con el hardware• Invocar a otros manejadores• Cancelar solicitudes de E/S• Limitar (time-out) peticiones de
E/S• Responder si un dispositivo se
agrega o remueve durante ejecu-ción
• Manejar las solicitudes de admi-nistración de energía.
2.5 ENTRADA/SALIDA BÁSICA
En Win32, el acceso a un disposi-tivo es similar al de un archivo, por loque se usan las mismas funciones,tales como CreateFile, ReadFile, Wri-teFile, etc.
2.6 AMBIENTE
Cualquier número de hebras(Thread) Win32 podrían tener acce-so a un dispositivo en forma simultá-nea, así que el dispositivo debe con-templar este aspecto y ser capaz demanejarlo. Esto involucra tambiénbloquear el acceso al dispositivo para
XII 1 24 polibits
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
29
que sólo una de estas hebras puedaoperar en forma exclusiva el disposi-tivo en un tiempo determinado. Eneste sentido, ayuda el administradorde I/O del kernel.
PUNTOS DE ENTRADA DEL DISPOSITIVO Y
CALLBACKS
El kernel ejecuta regularmente elcódigo del manejador de dispositivo,enviando IRP (I/O Request Packets).La estructura IRP es fundamental paralos manejadores.
Un manejador tiene un punto deentrada principal, una rutina que debellamarse DriverEntry, la cual tiene unprototipo de función estándar. Cuan-do se carga el driver, el kernel llama ala rutina DriverEntry, y después pue-de invocar a otras rutinas, denomina-das callbacks. Los nuevos manejado-res también pueden proporcionar unainterfase Modelo de Objeto Común(Common Object Model, COM) parael kernel, mediante una serie de ruti-nas que implementa el manejador.
2.7 RUTINAS DE DESPACHO
(D ISPATCH)
La rutina DriverEntry de un mane-jador debe establecer o configuraruna serie de callbacks para procesarIRP. Además, debe establecer las ru-tinas Unload, AddDevice y StartIo, sise necesitan.
En la tabla 1 se muestran lasfunciones de dispositivo de I/O co-munes en Win32 y sus IRP correpon-dientes.
Los manejadores (handlers) paralas IRP de la tabla 1 se llamancomúnmente rutinas de despacho (dis-patch routines), porque con frecuen-cia solo realizan algún proceso inicialdel IRP, como por ejemplo, validarlos parámetros.
2.8 MANEJADORES
Los manejadores pueden gene-rarse en versiones "free" (release ) o"checked" (debug). La versión freedebe ser la versión final, es decir, laque ya no tiene símbolos de depura-ción. La versión checked es la versiónde depuración y que no está optimiza-da, e incluye símbolos de depuración.
El Driver Development Kit (DDK)de Microsoft genera ambos ambien-tes para la compilación y el enlace,como se muestra en la figura 5.
2.9 LENGUAJE Y BIBLIOTECAS
Un manejador es una Bibliotecade Enlace Dinámico (Dynamic LinkLibrary, DLL) con la extensión .sys.Comúnmente está escrito en C oC++ y puede incluir recursos talescomo un bloque de versión, mensajesde eventos y definiciones de clase de
Instrumentación de Administraciónde Windows. En Windows 98, el bi-nario de un manejador debe tener unnombre de 8.3, es decir de 8 caracte-res como máximo y la extensión .sys.
No debe usarse la palabra clavenew de C++, ya que ésta puede estarimplementada usando malloc, queno está disponible para los dispositi-vos en modo kernel.
2.10 DRIVER DEVELOPMENT KIT
Microsoft recomienda usar el Dri-ver Development Kit (DDK) [3] parael desarrollo de manejadores de dis-positivos. Esta es una herramientaque contiene documentación acercade la elaboración de éste tipo deprogramas, así como algunas herra-mientas muy útiles para la compila-ción y el enlace de los programas; esútil también porque maneja algunascaracterísticas que facilitan la genera-ción del manejador. El DDK trabajaconjuntamente con Visual C++ y espor ello que para su instalación serequiere que dicho programa estépreviamente instalado.
En general, existen versiones deDDK para cada una de las versionesde Windows que Microsoft ha libera-do. Es recomendable usar el DDK quecorresponda a la versión de Windowsque se esté utilizando; la razón es quealgunas características del kernel hansufrido cambios importantes de ver-
Tabla 1. Función Win32 IRP
CreateFileCreate
CloseHandleClose IRP
ReadFile, etc.Read IRP
WriteFile, etc.Write IRP
DeviceIoControl IOCTLIRP
IOCTL IRP interna Figura 5. DDK Instalado.
30 polibits 2001
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
Dispatch.cpp \Pnp.cpp \DeviceIo.cpp \DebugPrint.c \pparalel.rc
NTTARGETFILES=PostBuildSteps
Esto le indica a la utilería build quedebe construirse un manejador WDMde nombre pparalel, que se pondráen el directorio OBJ. Se incluye la rutadel directorio inc del DDK para quebusque también archivos de cabeceraque puedan requerirse. Luego se lis-tan los archivos que deberán compi-larse. NTTARGETFILES especifica al-gunos pasos posteriores a la cons-trucción del manejador.
2.15 LOS DIRECTORIOS
En Windows 98 y en WindowsNT, la herramienta build siempre ponelos archivos objeto en el directorioOBJ\i386 para arquitecturas x86
La macro TARGETPATH del ar-chivo SOURCES especifica dónde sealojará el archivo ejecutable final. Sise especifica OBJ, entonces el ejecu-table estará en los directoriosOBJ\i386\free y OBJ\i386\checked, se-gún sea el caso.
comandos ejecutar para actualizar unproyecto. Por ejemplo, la tabla 2muestra que si e l programaprueba.cpp se actualiza, entonces secompila en el archivo prueba.obj usan-do el compilador cc. prueba.obj seenlaza para crear prueba.exe usandoel programa link.
2.14 ARCHIVO SOURCES (FUENTES)
La utilería build busca un archivode macroinstrucciones llamado SOUR-CES en el directorio actual, en el quese especifica qué es lo que se va aconstruir.
Por ejemplo, para el caso de nues-tro manejador, el archivo SOURCEScontiene lo siguiente:
TARGETNAME=pparalel TARGETTYPE=DRIVERDRIVERTYPE=WDMTARGETPATH=OBJ INCLUDES=$(BASEDIR)\inc;SOURCES= Init.cpp \
sión a versión y, en un momentodado, es posible encontrarse con al-gunos problemas.
2.11 ALGUNAS RECOMENDACIONES
PARA EL CÓDIGO
Es recomendable hacer el códigotan sencillo como se pueda y docu-mentarlo bien. Se deben tratar todaslas advertencias como si fueran erro-res a corregir. También hay que ase-gurarse el cálculo de los valores deretorno para todas las funciones delkernel en uso; se debe tener cuidadoen la manera de usar los recursos delkernel.
2.12 LA UTILERÍA BUILD
La utilería build de línea de co-mandos del DDK es la herramientapara construir manejadores. Esta lla-ma a la utilería nmake para construirel manejador usando las configura-ciones adecuadas del compilador ydel enlazador.
Para esto, debe crearse un archivoSOURCES, un archivo makefile, laestructura de directorio y, opcional-mente, los archivos makefile.inc ydirs.
La utilería build despliega los deta-lles del proceso y los errores en lasalida estándar. Además, genera unalista de los errores en un archivollamado build.err, las advertencias enbuild.wrn y una bitácora en build.log.
En la figura 6 se muestra elambiente que genera el DDK para laconstrucción de los manejadores.
2.13 ARCHIVOS MAKEFILE
La utilería nmake usa el archivomakefile, en el que se encuentran lasinstrucciones que determinan qué
Figura 6. Ambiente del DDK.
Tabla 2. Archivo makefile
prueba.exe:prueba.objlink -o prueba.exeprueba.obj
prueba.obj:prueba.cppcc prueba.cpp
XII 1 24 polibits
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
31
sis cuadrados, y luego el conte-nido de la sección. Cada líneatiene una entrada simple o asig-na un valor. Las secciones pue-den estar en cualquier orden; aveces puede ser importante elorden de las líneas dentro deuna misma sección. Los co-mentarios se escriben despuésdel punto y coma.
SECCIONES ESTÁNDAR
VERSIÓN
Regularmente se encuentra al ini-cio del archivo INF y contiene
En Windows 2000, build mantie-ne separados los archivos objeto freey checked. Si la variable TARGETPA-TH es OBJ, los archivos objeto de laversión free x86 y el manejador finalestarán en el directorio OBJ-FREE\i386y en OBJCHK\i386 para el caso de laversión checked.
En la figura 7 se muestra elproceso de compilación de nuestromanejador pparalel, usando la herra-mienta build.
2.16 ARCHIVOS INF
Un archivo INF contiene toda lainformación necesaria para instalarun manejador de dispositivo WDM.Esto incluye la lista de los archivos acopiar, las entradas que deben apare-cer en el registro de Windows, etc.
Windows proporciona un instala-dor estándar para la mayoría de lasclases de dispositivos y un instaladorpor omisión, el cual procesa archivosINF.
Un archivo INF es un archivo detexto que se parece a los archivos INI.Tiene secciones, cada una de las cua-les inicia con una línea que contienesu nombre encerrado entre parénte-
información sobre la versión delmanejador.
STRINGS
Esta sección define cadenas quese sustituyen en alguna otra partedel archivo.
2.17 INSTALACIÓN DEL MANEJADOR
Para instalar el manejador crea-do, es recomendable copiar el perfilde hardware que se está usando paratener un respaldo y poder realizarmodificaciones (ver figuras 8 y 9).
Para modificar la copia del perfilde hardware, al que hemos llamadoPTO-Paralelo, es necesario reiniciarla máquina e iniciar con éste perfil de
hardware. Al reiniciar, Windows en-contrará dos perfiles de hardware ysolicitará que se elija con cual debeiniciar, en este caso PTO-Paralelo.Después, en el Panel de Control,debe eliminarse el manejador que yaestá controlando dicho puerto, comose muestra en las figuras 10 y 11.
En este momento ya puede insta-larse el manejador elaborado;para elloes necesario usar la opción Agregarnuevo hardware del Panel de Control(figura 12).
Ahí debe indicársele a Windowsque el dispositivo y el controladorserán indicados por el usuario, paraevitar que Windows los busque. Win-dows indicará que falta un controla-dor para el puerto paralelo y mostra-rá dicho dispositivo. Debe indicárseleque no instale al dispositivo, pues delo contrario, utilizará su manejador
Figura 7. Proceso de compilación del manejador pparalel con build.
Figura 9. Copiado del perfil de hardware.
Figura 8. Perfiles de hardware delsistema.
32 polibits 2001
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
Podemos observar al reiniciar, queen el Panel de Control, en la parte deSistema y en la de Administrador deDispositivos, se encuentra ya instala-do el nuevo manejador (figura19).
2.18 PRUEBA DEL MANEJADOR
PARA PUERTO PARALELO BAJO
AMBIENTE DOS EN WINDOWS 98
En este caso, se elaboró un pro-grama sencillo que sólo envía datos alpuerto paralelo y puede observarse lasalida en una serie de LED conecta-dos a él (figura 20). El código delprograma se muestra en la tabla 3 .
por omisión, como se muestra en lasfiguras 13 y 14.
Al seleccionar el dispositivo, debeindicarse que se trata de Otros Dispo-sitivos, como se muestra en la figura15.
En el siguiente cuadro de diálogo,figura 16, hay que elegir que se useun disco y entonces se elige el direc-torio en el que se encuentre el archivo*.inf correspondiente. Este archivo esel que contiene información impor-tante para que Windows sepa de quétipo de manejador se trata, el nom-bre, la ubicación, etc.
Aparecerá entonces, un cuadrode diálogo con los manejadores paralos cuales se encontraron archivos.inf. Se elige entonces la versión chec-ked del manejador CIC-IPN (figura17), mostrándose los recursos que elmanejador usará (figura 18).
Una vez hecho esto, el manejadorya está instalado y es necesario arran-car nuevamente el sistema para quelos cambios tomen efecto.
Figura 10. Administrador dedispositivos del sistema.
Figura 11. Eliminación delmanejador actual del puerto
paralelo del sistema.
Figura 12. Panel de control,agregar nuevo hardware.
Figura 13. Asistente: Agregarnuevo hardware.
Figura 14. Asistente: Agregarnuevo hardware-seleccionar.
Figura 15. Asistente: Agregarnuevo hardware-otros dispositivos.
Figura 16. Asistente: Agregarnuevo hardware-usar disco.
Figura 17. Selección del manejadorCIC-IPN para puerto paralelo.
XII 1 24 polibits
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
33
2.19 PRUEBA DEL MANEJADOR
PARA PUERTO PARALELO BAJO
AMBIENTE WINDOWS
Este programa es similar al ante-rior, ya que envía datos al puertoparalelo y se observa la salida en unaserie de LED. Es importante mencio-nar que se elaboro el programa utili-zando C++Builder de Borland. Laejecución del programa se muestraen la figura 21 y el listado del mismose incluye en la tabla 4.
3. SUMARIO
Este trabajo desarrolló un maneja-dor de dispositivo que se encarga delcontrol del puerto paralelo de una PCbajo el nuevo esquema de WindowsDriver Model(WDM) usado en Win-dows 98 y Windows 2000.
El modelo compartido de WDMtiene beneficios significativos, ya quesoporta ambas plataformas reducien-do el tiempo de desarrollo para losdesarrolladores de Device Driver(DD).Tres son los requerimientos para eldesarrollo de un DD WDM: multipro-
cesador, debe ser independiente delprocesador y PnP; pero un driverWDM escrito correctamente requiereúnicamente una recompilación parafuncionar en un ambiente NT 64-bits,ya que WDM mantiene la compatibi-lidad hacia atrás.
Se utilizo DDK de Microsoftpara el desarrollo de este manejador,además de que fué necesario instalarVisual C++. Así mismo, se utilizaronvarias herramientas adicionales delDDK, como son:
• Build• Makefile• Inf• Sources
Una vez terminado el manejadorfue necesario darlo de alta en el SO,y posteriormente se realizaron dosprogramas sencillos para pruebas delmanejador, uno en DOS y otro bajoambiente Windows.
El proceso de elaboración de unmanejador WDM es más complicadoque utilizar los puertos en un progra-
Figura 18. Recursos asignados porel SO para el manejador CIC-IPN.
Figura 19. Administrador dedispositivos: manejador para el
puerto paralelo CIC-IPN.
Tabla 3. Código de comunicación con elmanejador
do{ printf("Dato a transmitir ( 1 <= dato <=255 ) (0 = terminar): "); scanf("%d",&dato); while((dato<0 || dato>255) && dato!=-1) { printf("Dato no válido. Introduzcanuevamente el número: "); scanf("%d",&dato); } EnviarByte[2]=dato; if(DeviceIoControl(hWdmIo,IOCTL_PHDIO_RUN_ CMDS,EnviarByte,length(EnviarByte),&num,1, &BytesReturned, NULL)) { printf("Comandos en EscribeBytealmacenados. OK."); } else{printf("XXX falló el almacenamiento decomandos EscribeByte %d\n",GetLastError());}
Figura 20. Prueba del nuevomanejador del puerto paralelo
(ventana DOS).
Figura 21. Prueba del nuevomanejador del puerto paralelo
(Windows).
Tabla 4. Código de comunicación con elmanejador
// ABRE EL PUERTOhComm = CreateFile("LPT1",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
34 polibits 2001
Desarrollo de un Manejador de Dispositivo Utilizando el Modelo Windows Driver...
ma en lenguaje C. Pero los beneficiosson que un pequeño programa en Cen los diferentes Windows utilizandoel puerto paralelo no funciona, mien-tras que el utilizar DDK y el nuevomodelo WDM funciona adecuada-mente en Windows y manteniendoun control de la tarjeta vía el puertoparalelo.
Actualmente, el desarrollo de es-tos manejadores en el área de inge-niería de hardware es de gran impor-tancia, ya que los diseñadores detarjetas requieren una interfaz ya nocon DOS sino con Windows. Final-mente, el presente trabajo muestra eldesarrollo de un manejador para elpuerto paralelo, mostrando todos lospasos y herramientas necesarias paraun buen desarrollo y pruebas necesa-rias para su buen funcionamiento.
4. BIBLIOGRAFÍA
[1] “Writing Windows WDM De-vice Drivers”, Chris Cant, R&DBooks.
[2] “Programming the MicrosoftWindows Driver Model”, Wal-ter Oney, Microsoft Press.
5. REFERENCIAS
[1] http://msdn.microsoft.com
[2] http://msdn.microsoft.com/msdnmag
[3] http:/www.microsoft.com/ddk
OBSERVACIONES
Si te interesa contribuir con algún comentario o sugerencia, el ConsejoEditorial de la Revista Polibits agradecerá utilices este espacio, y lo remitas a:
Centro de Innovación y Desarrollo Tecnológico en CómputoConsejo Editorial Revista POLIBITSAv. Té No. 950, Edificio de Graduados 2o. piso.Colonia Granjas México. C.P. 08400México D. F.� 5624-2019, 5624-2018, 5624-2000 ext. 70261
5624-2019 e-mail [email protected]
Si tu contribución es un artículo, favor de enviarlo por e-mail y anexar lossiguientes datos: Nombre del autor, Grado Académico e Institución o Empresade procedencia.
�
FAX