Este paper presenta la evolucin en el mtodo de enseanza de la clase Organizacin de Computadoras en UNITEC pasando de un mtodo pasivo (basado
en aspectos tericos) a un mtodo activo (basado en aspectos terico/prcticos),
utilizando herramientas de software y hardware tales como simuladores, ensambladores, lenguajes de descripcin de hardware, microcontroladores y dispositivos lgicos programables. Estas herramientas permiten incluir prcticas en la
enseanza del lenguaje ensamblador, as como proyectos de hardware como el
diseo de un procesador de un solo ciclo el cual se implementa combinando
herramientas como Verilog y FPGAs.
Introduccin
aunque siempre se estudian algunos aspectos de la arquitectura Intel x86 durante la clase, esto sirve para comparar ambas arquitecturas. Bsicamente Intel x86
es una arquitectura tipo CISC (conjunto de instrucciones complejas) y MIPS
es RISC (conjunto de instrucciones reducidas). Las arquitecturas de tipo CISC
contienen un mayor nmero de instrucciones comparadas con las arquitecturas
RISC, esta es la razn primordial que las hace difciles de aprender.
El segundo cambio fue ms drsticos e implic varios retos que sern descritos
ms adelante, este fue la inclusin de laboratorios con hardware, especcamente
la utilizacin de FPGA, Arduino y lenguajes de descripcin de hardware para la
implementacin de proyectos y laboratorios de la clase. Este tipo de actividades
realzan la experiencia de enseanza/aprendizaje durante la clase [1].
2.
Retos
3.
Metodologa y Herramientas
de datos al momento de probar los proyectos realizados con FPGA, es decir Arduino sirve como generador de seales de entradas y tambin como
procesa las seales de salida de los componentes para vericar la correcta
operacin de estos. Por otro lado Arduino facilita el aprendizaje de los
conceptos bsicos de electrnica y la interaccin con plataformas empotradas. Durante estas prcticas se invierte tiempo en el aprendizaje de la
plataforma Arduino y los microcontroladores as como en el aprendizaje
de los conceptos bsicos de electrnica.
Verilog es un lenguaje de descripcin de hardware que provee mecanismos para crear descripciones de un sistema digital en varios
niveles de abstraccin. El lenguaje soporta las etapas tempranas de
conceptualizacin del diseo por medio de la abstraccin de comportamiento, y las ltimas etapas de implementacin por medio de las
abstracciones estructurales [7].
Xilinx ISE WebPack
ISE WebPACK es una herramienta ideal para el diseo con FPGA
y CPLD, la cual ofrece simulacin y sntesis de HDL (lenguajes de
descripcin de hardware), implementacin, ajuste de dispositivo, y
programacin JTAG [8].
4
4.
Arquitectura de MIPS8
La arquitectura de MIPS8 est basada en Aizup [2] con algunas modicaciones, ya que MIPS8 es un procesador de un solo ciclo y Aizup es un procesador
pipelined. MIPS8 utiliza el mismo conjunto de instrucciones de Aizup y el mismo
tamao de instrucciones y datos, el cual es de 8 bits.
La Tabla 1 lista las instrucciones soportadas por MIPS8. En esta tabla se
utilizan los registros PC (Program Counter), Z (Zero Flag) registro de 1 bit
para almacenar el ag de Zero de la ALU, la cual es evaluada por las sentencias
condicionales.
Formato de Instruccin
nop
Operacin
No operation
0000 00 00
add rd, rs
rd
0001 rd rs
Actualizar el registro Z
sub rd, rs
rd
0010 rd rs
Actualizar el registro Z
or rd, rs
rd
0011 rd rs
Actualizar el registro Z
and rd, rs
rd
0100 rd rs
Actualizar el registro Z
xor rd, rs
rd
0101 rd rs
Actualizar el registro Z
mov
rd
rd, rs
rd + rs
rd - rs
rd
rd
rd
or rs
and rs
xor rs
rs
0110 rd rs
Actualizar el registro Z
ld rd, rs
rd
0111 rd rs
st rd, rs
M[rs]
1000 rd rs
M[rs]
rd
addi rd, rs
rd
1001 rd rs
Actualizar el registro Z
subi rd, n
rd
1011 rd n
Actualizar el registro Z
sr0l N
r0
1011 N
Actualizar el registro Z
sr0h N
r0
1100 N
Actualizar el registro Z
bz N
if (Z)
1101 N
bnz N
1110 N
bra N
rd + 000000n
rd - 000000n
r0
N0000
PC
if (!Z)
PC
PC
or 0000N
PC + (s)N
PC + (s)N
PC + (s)N
1111 N
5.
Conclusiones
[1] Fida El-Din, Aws Yousif y Krad Hasan. Teaching Computer Architecture
and Organization using Simulation and FPGAs.
[2] Li, Yamin y Chu Wanming. Using FPGA for Computer Architecture/Organization Education.
[3] Hateld, B. y M Riecker. Incorporating simulation and implementation into
teaching computer architecture and organization.
[4] Al-Aubidy, Kasim M. Teaching Computer Organization and Architecture
Using Simulation and FPGA Applications
[5] MARS (MIPS Assembler and Runtime Simulator)
http://courses.missouristate.edu/kenvollmar/mars/
Website.
[6] Margolis , Michael. Arduino Cookbook, O'Reilly Media, Inc., Primera Edicin, Marzo 2011
[7] Thomas & Moorby's. The Verilog Hardware Description Language, ,Quinta
Edicin, 2008
[8] Xilinx ISE Webpack Website. http://www.xilinx.com/products/designtools/ise-design-suite/ise-webpack.htm
[9] Smith, Douglas J. HDL Chip Design, A Practical Guide for Designing,
Synthesizing & Simulating Asics & Fpgas Using Vhdl or Verilog, Doone
Publications, 1996
[10] Yalamanchili Sudhakar, Introductory VHDL: From Simulation to Synthesis, Prentice Hall, Primera Edicin, 2001.