Vous êtes sur la page 1sur 5

1

Implementacin del procesador ALTERIC


Diego H. BELTRN, Moiss F. HERRERA, Marco A. MAYOLO, Director Francisco F. VIVEROS,
Trabajo de Grado, Carrera de Ingeniera Electrnica, Pontificia Universidad Javeriana, noviembre
12 de 2004

Resumen--Implementacin del procesador ALTERIC,


consiste en la implementacin de un procesador representativo de
32 bits llamado ALTERIC, basado en el procesador RIC
(Representative Instructional Computer). ALTERIC es un
procesador real, que conserva la arquitectura principal y el
conjunto de instrucciones del Simulador Didctico de un
Procesador PCSIM V. Es la segunda implementacin en
hardware de un proyecto relacionado con el procesador RIC en la
Pontificia Universidad Javeriana, como herramienta didctica en
el rea de tcnicas digitales, despus del Procesador didctico ERIC. Ha sido implementado en hardware en un dispositivo de
lgica programable de la familia ACEX 1K de Altera, con un
circuito impreso de soporte y utilizando el software MAX+Plus II
se desarroll el diseo AHPL y VHDL del procesador. Se ha
implementado en el procesador una unidad de control que
permite conocer los registros internos del procesador segn
instruccin del programa o por un bus de entrada.
Palabras clave--ALTERIC, Bus espa, MAX+Plus II, PCSIM,
Procesador, RIC, VHDL.

con arquitectura de tres buses internos y un conjunto de


instrucciones de 16 y 32 bits. Este procesador ha sido base
para muchos trabajos de grado realizados en la Pontificia
Universidad Javeriana, todos bajo la direccin del Ing.
Francisco Viveros.
Entre estos trabajos se encuentran el Procesador didctico
E-RIC [2] y las diferentes versiones del Simulador
didctico de un procesador PCSIM, siendo las ms recientes
las versiones PCSIM IV [3] y PCSIM V [4]. En todos estos
trabajos se han realizado modificaciones al procesador RIC
original.
ALTERIC, es un trabajo que tiene como objetivo principal
la implementacin del procesador RIC modificado de acuerdo
con las diversas versiones de PCSIM en un PLD
(Programmable Logic Device) de la familia ACEX 1K de
Altera, y como objetivos especficos mantener la arquitectura
principal y el conjunto de instrucciones del procesador RIC y
la implementacin de un control para verificar registros un bus
de salida donde los datos son presentados.

Fig.1 Arquitectura, unidades funcionales y seales de ALTERIC

II. DESCRIPCIN DEL PROCESADOR

I. INTRODUCCIN

El procesador ALTERIC es un procesador no comercial,


donde los bloques ms importantes del procesador son la
arquitectura, el conjunto de instrucciones, la mquina de
estados y el control del bus espa.

L procesador RIC fue propuesto, por los investigadores de


la Universidad de Arizona, Frederick Hill y Gerald
Peterson en su libro DIGITAL SYSTEMS Hardware
Organization and Design [1], como un procesador de 32 bits

A. Arquitectura
ALTERIC es un procesador con arquitectura Von Neuman

2
de tres buses, de 32 bits de datos y 24 bits para direcciones de
memoria. La arquitectura la conforman la ALU (Arithmetic
and Logic Unit), los buses y los registros. (Figura 1)
Incorpora muchas de las caractersticas de procesadores
comerciales como el Motorola 68000, Zilog Z80 y National
16032, en cuanto manejo de interrupciones, comunicacin con
perifricos, manejo de instrucciones de 16 y 32 bits, modos de
direccionamiento, direccionamiento de memoria 24 bits y
algunas instrucciones especficas.
1) ALU
Es la unidad aritmtica y lgica del procesador, se encarga
de realizar las operaciones aritmticas, lgicas, rotaciones y
desplazamientos. Cuenta con dos entradas de 32 bits
conectadas a los buses internos ABUS y BBUS, una entrada
de acarreo de 1 bit desde la bandera de acarreo en el registro
de estados, una entrada de control de 5 bits y una salida de 32
bits conectada al OBUS y cuatro salidas de 1 bit
correspondientes a las banderas de acarreo, desbordamiento,
cero y negativo.
2) Buses
ALTERIC posee tres buses internos de 32 bits que son
ABUS, BBUS y OBUS. Posee dos buses externos, DBUS y
ADBUS que conectan al procesador con la memoria y los
perifricos. DBUS es un bus bidireccional de datos de 32 bits
y ADBUS es un bus de salida de 24 bits de direcciones.
Tambin posee otros buses didcticos como SBUS (bus
espa) de salida de 32 bits, por medio del cual se puede
conocer el contenido de todos los registros internos del
procesador; PBUS (bus de pasos) de salida de 8 bits por medio
del cual es posible conocer el paso del cdigo AHPL o estado
de la mquina de estados del procesador y PBUSIN (bus de
pasos de entrada) de entrada de 8 bits, en el cual el usuario
especifica en que paso del cdigo AHPL (A Hardware
Programming Language) desea que el bus espa comience a
trabajar en modo de parada.
3) Registros
El procesador tiene un conjunto de 17 registros. Los
registros encargados de guardar datos (32 bits) son AC, IR,
MD, RA, RB, RC, RD, RE y RF. Los registros encargados de
las direcciones (24 bits) son MA, IX, SP y PC. ALTERIC
tambin cuenta con el registro de estados SR de 6 bits, el cual
contiene las banderas C (acarreo), Of (desbordamiento), Z
(cero), N (negativo), ie (interrupciones) y sh (instrucciones de
16 bits). Adems posee el registro SHC de 5 bits, el MR de 2
bits, PR de 3 bits y el registro del bus espa SBR de 6 bits.
B. Conjunto de instrucciones
El procesador tiene un conjunto de 52 instrucciones. Entre
estas 17 son instrucciones de 32 bits, 25 de 16 bits y 10 que
pueden ser de 32 bits o de 16 bits.
Las 10 instrucciones que pueden ser de 32 o 16 bits, al ser
de 32 bits pueden tener modos de seleccin de posicin de
memoria como directo, indizado, inmediato, indirecto e
indizado indirecto. As mismo, al ser instrucciones de 16 bits
pueden tener modos de seleccin de posicin de memoria
como registro fuente e inmediato.

Las instrucciones pueden ser aritmticas, lgicas, de


rotacin y desplazamiento, para transferencia de datos, de
comparacin, de control del flujo del programa, para modificar
la bandera de acarreo, para atencin de interrupciones, para
comunicacin con perifricos, para manejo de la pila,
instrucciones del sistema y la instruccin SBI del bus espa,
que es de 16 bits.
C. Mquina de estados
La mquina de estados del procesador es la que determina
su secuencia de control, descrita mediante el cdigo AHPL de
ALTERIC.
Las seales de entrada a la mquina de estados, son las que
determinan cual es el paso al que se debe saltar, estas seales
son: Clk, Reset, Swait, Retor, Datok, Irq y el contenido de los
registros IR, SR, MR, SBR y SHC.
Las seales de salida de la mquina de estados se generan
dependiendo del estado en que se encuentre la mquina, estas
seales de salida pueden ser externas o internas. Las seales
externas son: Read, Write, Iack, Iorq, PBUS y SBUSSal. Las
seales internas se generan para controlar el funcionamiento
de los registros y buses del procesador.
La mquina cambia de estado en los bordes de subida de la
seal de reloj, la captura de datos por parte de los registros se
realiza en los bordes de bajada de la seal.
D. Control de parada y Bus espa
Una de las modificaciones hechas en ALTERIC con
respecto a las versiones de PCSIM es el control de parada y el
bus espa. El Control de parada permite detener el procesador
para mostrar uno o varios registros y continuar la ejecucin del
programa, luego de recibir la seal externa Retor. SBUS es un
bus de salida de 32 bits, el cual permite conocer el contenido
de los registros internos del procesador, el bus espa puede
trabajar en tres modos diferentes.
1) Modo normal
La seal de control para el bus espa generada en la mquina
de estados como control interno, toma datos directamente de
las lneas de entrada SBUSSC. La salida ESP se encuentra
inactiva (cero lgico). Esto sucede entre los pasos 0 y 104 del
cdigo AHPL.
2) Instruccin SBI
La instruccin SBI es una instruccin de 16 bits, puede ser
decodificada en el paso 14 o en el paso 46 del cdigo AHPL.
Una vez decodificada, el procesador salta al paso 103, ah el
registro del bus espa SBR[5:0] carga datos desde IR[10:15] y
el procesador salta al paso 104 donde realiza la decodificacin
al dato en el registro SBR y de acuerdo a esto salta a un paso
determinado. La seal ESP permanece inactiva.
3) Modo de parada
Al llegar la mquina de estados, al paso especificado por el
usuario en las entradas de PBUSIN, la seal ESP se activa
(uno lgico). Al terminar la ejecucin de dicho paso, la
mquina salta al paso 103E donde el registro SBR carga datos
desde las entradas NC, Datinsb y SBUSSC.
En el paso 103E, si la seal Retor se activa (uno lgico), el

3
procesador regresar al paso siguiente al que hizo la parada,
retornar al modo de trabajo normal y la salida ESP se
desactivar. Si la seal Retor tiene un cero lgico y la seal
Datok est inactiva (cero lgico), el procesador permanecer
en el mismo paso, permitiendo as que el usuario est seguro
de los registros o registros que quiere observar en el bus espa.
Si la seal Retor tiene un cero lgico y la seal Datok est
activa (uno lgico) pues ya el usuario est seguro del dato que
carg en SBR, el procesador saltar al paso 104E donde
realiza la decodificacin al dato en el registro SBR y de
acuerdo a esto salta a un paso determinado. La seal ESP
permanece activa.
III.

IMPLEMENTACIN

Para implementar el procesador ALTERIC en un dispositivo


lgico programable EP1K100QC208-3 de la familia ACEX
1K de Altera, fue necesario utilizar el lenguaje VHDL (Very
High Speed Integrated Circuits Hardware Description
Language) en la herramienta MAX+Plus II y realizar un
circuito impreso para la programacin del PLD.
A. Lenguaje VHDL en MAX+Plus II
El lenguaje de descripcin de hardware VHDL, es un
lenguaje reconocido por la IEEE en su estndar 1076 de 1993.
En la herramienta MAX+Plus II de Altera, se llev a cabo la
implementacin de ALTERIC en lenguaje VHDL.
Las partes bsicas de un diseo VHDL en MAX+Plus II
(archivo con extensin .vhd) [5] son la entidad y la
arquitectura. Para ALTERIC se crearon 36 entidades, cada una
en un archivo con extensin .vhd con el mismo nombre de la
entidad.
Lo primero que se debe hacer en cada uno de los archivos es
llamar a las libreras de la IEEE y la librera lgica y
aritmtica.
Al haber llamado las libreras, se procede a declarar la
entidad. En la entidad se describen los puertos de entrada y
salida del diseo.
Por ltimo se declara la arquitectura, es aqu donde se
describe la relacin entre entradas y salidas del diseo. Existen
tres tipos de arquitectura:
1) Arquitectura de flujo de datos
Todas las asignaciones ocurren de manera simultnea en el
diseo, y generalmente describen el flujo de datos desde las
entradas hacia las salidas. Los valores se le asignan a las
seales, usando el operador "<=".
2) Arquitectura de descripcin estructural
Las asignaciones se hacen mapeando seales a los
componentes definidos en la arquitectura. Esto se hace usando
la palabra PORT MAP.
3) Arquitectura de descripcin de comportamientos
Permite la conversin de algoritmos secuenciales a cdigo
VHDL. La palabra PROCESS es parte esencial de este tipo de
arquitectura. Como tambin la lista de seales que activan el
proceso cada vez que su valor cambia.
Esta arquitectura es usada principalmente en mquinas de
estados, donde un dispositivo tiene una memoria interna que

determina la salida del mismo. Una entrada de reloj determina


el tiempo en el que el estado del dispositivo cambia. Esto
puede hacerse por borde de subida o de bajada de la seal de
reloj.
B. Circuito impreso
Para la programacin de ALTERIC en el PLD
EP1K100QC208-3 [6] se dise un circuito impreso de doble
faz que contiene al PLD y una interfaz de programacin
ByteBlasterMV [7] que permite llevar a cabo la programacin
del PLD desde el puerto paralelo de un PC. Tambin posee un
conector para fuente de voltaje de +5V y otro para la seal de
entrada de reloj.
El EP1K100QC208-3 trabaja con lgica de 3.3V, la cual es
compatible con lgica de 5V.
IV. NOVEDADES EN ALTERIC
ALTERIC presenta algunos cambios y mejoras con respecto
al procesador E-RIC y las versiones de PCSIM.
A. Control de parada y bus espa de ALTERIC
Las versiones de PCSIM no poseen un bus espa pues son
procesadores simulados (no lo necesitan). El procesador ERIC posee un bus espa que solamente trabaja en el modo que
en ALTERIC se conoce como modo normal.
B. Bus de pasos de entrada
El bus de pasos de entrada (PBUSIN) es un bus de 8 bits
que permite que el usuario detener la mquina de estados en
un paso determinado (Pasos entre 0 y 120) del cdigo AHPL y
activar la seal ESP para trabajar con el bus espa en modo de
parada. El procesador E-RIC y las versiones de PCSIM no
tienen este bus.
C. Instruccin SBI
Para trabajar el bus espa en modo instruccin se cre la
instruccin del bus espa SBI y un nuevo registro llamado SBR
(registro del bus espa).
D. Seales asociadas al bus espa en modo de parada
Las seales ESP, Datinsb, Retor y Datok estn relacionadas
con el bus espa al trabajar en modo de parada. Estas seales
no formaban parte del procesador E-RIC ni de PCSIM.
E. SBUSSal
ALTERIC posee un bus de salida de 4 bits, que muestra el
cdigo del registro que est siendo mostrado en el bus espa.
El SBUSSal es de gran utilidad cuando el bus espa trabaja
como instruccin o en modo de parada.
F. Registro de Estados SR
En E-RIC y las versiones de PCSIM, el SR era un registro
de 8 bits, en ALTERIC se implement como un registro de 6
bits, ya que los dos bits restantes son innecesarios.
G. Seales Read y Write
En E-RIC y las versiones de PCSIM, estas seales se
activan con un uno lgico. En ALTERIC estas seales se

4
activan con un cero lgico, ya que en las memorias
generalmente usadas por los estudiantes de las asignaturas de
Arquitectura de Procesadores I y II, estas seales se activan
con un cero lgico.
H. Instrucciones IMP y EXP
En ALTERIC, las direcciones asignadas a los perifricos
utilizados en las instrucciones del procesador varan desde
000C00h y 000C3Fh, controlando los 6 ltimos bits para
direcciones de los dispositivos. En E-RIC y PCSIM, las
direcciones asignadas a los perifricos varan entre 000000h y
00003Fh, las cuales al ser las primeras direcciones, son
posiciones de memoria ROM (Read Only Memory).
I. Instruccin RST
En ALTERIC, al ejecutarse la instruccin de reset por
software, el registro PC queda apuntando a la direccin
0007FFh, la cual es una direccin de memoria ROM. En ERIC y las versiones de PCSIM, al ejecutarse la misma
instruccin, el registro PC queda apuntando a la direccin
FFFFFFh, al ser esta la ltima direccin posible, lo ms
probable es que esa direccin sea ocupada por memoria RAM
(Random Access Memory).
J. Distribucin de los bits en los registros y buses
En ALTERIC, todos los buses y registros, excepto el
registro IR tienen al bit 0 como su bit menos significativo. En
E-RIC (exceptuando a PBUS) y las versiones de PCSIM,
todos los registros y buses tienen al bit 0 como su bit ms
significativo. Este cambio se hizo para facilitar al usuario la
interconexin entre el procesador y las memorias.
K. Atencin y retorno de las interrupciones
En PCSIM y E-RIC la mayora de los registros se guardaban
en la pila en el momento de atender una interrupcin.
ALTERIC solamente guarda en la pila el contenido de los
registros SR y PC.
L. Cdigo AHPL
ALTERIC tom como base el cdigo AHPL del procesador
E-RIC y debido a los cambios mencionados, fue necesario
aumentar y omitir algunos para cumplir con las
especificaciones del nuevo procesador.
En la ejecucin de algunas instrucciones, E-RIC saltaba a
los pasos 148, 150 o 151 del cdigo AHPL para luego regresar
al paso siguiente al interrumpir la secuencia. En ALTERIC
estos pasos fueron reemplazados y el procesador no salta a uno
de estos, sino que sigue una secuencia de pasos consecutivos.
V. CONCLUSIONES
Los resultados obtenidos fueron posibles en parte gracias a
trabajos de grado realizados con anterioridad y en los cuales se
basa ALTERIC.
As mismo, se espera que ALTERIC sea punto de partida
para desarrollos posteriores, profundizando y mejorando el
procesador didctico.
En el desarrollo de ALTERIC nos enfrentamos a la

problemtica de programacin, donde los programas y cdigos


son dependientes de sus desarrolladores y siempre requieren
cambios perfectivos o correctivos.
Los programas empricos, a veces muy eficaces, son
generalmente incomprensibles para otros programadores
distintos del autor. Estos programas son difcilmente
modificables .
Para evitar estas situaciones, es necesario crear situaciones
claras y fcilmente modificables y preparar a los informticos,
tcnica y psicolgicamente, para que consideren que su papel
principal es tanto el de hacer evolucionar las soluciones, como
el de concebir nuevas soluciones Pg.324,[8].
Por lo anterior ALTERIC incorpora conceptos de
Legibilidad del programa [9] , Mantenimiento [9] y reuso de
software [10], imprescindibles para futuros desarrollos de
procesadores didcticos basados en ALTERIC.
ALTERIC es un desarrollo de hardware el cual se presenta
como herramienta de laboratorio, complemento ideal para
PCSIM V y posteriores.
Adems, en un sistema autnomo que no depende de
hardware adicional para funcionar como un procesador, por lo
tanto, es un procesador funcional.
El uso de la tecnologa PLD libera al ingeniero de la
necesidad de fabricar su propio hardware, permitiendo que el
proceso de diseo se concentre en las especificaciones AHPL
y VHDL, donde el diseo tiene su verdadera importancia.
El software MAX+Plus II de Altera es una herramienta que
permite el diseo e implementacin de sistemas digitales en
dispositivos lgicos programables fabricados por Altera, en
este caso la implementacin se realiz con xito en un PLD
EP1K100QC208-3 da la familia de dispositivos ACEX 1K.

AGRADECIMIENTOS
Queremos agradecer al Ing. Francisco Viveros, a la Ing.
Alejandra Gonzlez y a John Freddy Snchez por toda la
colaboracin recibida durante el desarrollo del proyecto.
REFERENCIAS
[1]
[2]

[3]

[4]

[5]

[6]
[7]

F. Hill y G. Peterson, "Sistemas digitales: Organizacin y diseo del


hardware" Limusa Noriega Editores, Mxico, 1993.
D. Chacn, O. Mercado, F. Navarro y J. Pallares, Procesador
didctico E-RIC. Santaf de Bogot: 2000. Trabajo de grado
(Ingeniero Electrnico). Pontificia Universidad Javeriana.
A. Romero y J. Trejos, "Simulador didctico de un procesador PCSIM
IV. Santaf de Bogot: 2003. Trabajo de grado (Ingeniero Electrnico).
Pontificia Universidad Javeriana.
G. Boada y J. Caldern, "Simulador didctico de un procesador
PCSIM V. Santaf de Bogot: 2003. Trabajo de grado (Ingeniero
Electrnico). Pontificia Universidad Javeriana.
B. McIlhenny, A. Panangadan, J. Pipan y N. Stojcic, Introduction to
VHDL and MAX+Plus II. UCLA Computer Science Department.
Disponible
desde
Internet,
a
travs
de
la
direccin
<URL:http://www.cs.ucla.edu/classes/fall03/csM51A/l1/project/intro.ht
m>
ALTERA, ACEX 1K Programmable Logic Device Family (Data
sheet). San Jos, California, 2003.
ALTERA, "ByteBlasterMV Parallel Port Download Cable (Data
sheet)". San Jos, California, 2002.

5
G.
Agustn,Ingeniera
del
software:
prctica
de
la
programacin.Addison-Wesley
Iberoamericana.
Wilmington,
Delaware, 1991.
[9] Frakes, Fox y Nejmeh,Software Engineering in the Unix/C
Environment. Prentice-Hall, Englewood Cliffs, New Jersey, 1991.
[10] P.A.V.Hall, Software Reuse and Reverse Engineering in Practice.,
Chapman & Hall, London, UK, 1992.
[8]

Diego Beltrn Estudiante de Ingeniera Electrnica en la Pontificia


Universidad Javeriana. dbeltran@javeriana.edu.co
Moiss Herrera Estudiante de Ingeniera Electrnica en la Pontificia
Universidad Javeriana m-herrera@javeriana.edu.co
Marco A. Mayolo Estudiante de Ingeniera Electrnica en la Pontificia
Universidad Javeriana. mmayolo@javeriana.edu.co
Francisco F. Viveros Ingeniero Electrnico. Profesor del rea de Tcnicas
Digitales en la Pontificia Universidad Javeriana. fviveros@javeriana.edu.co

Vous aimerez peut-être aussi