En este punto surge una cuestión natural: ¿de qué quiero que sea capaz este microprocesador? Dependiendo de ello, efectuaremos una serie de comprobaciones u otras, lo utilizaremos de un modo u otro, lo diseñaremos de un modo u otro. Esta cuestión natural de la que hablo son los requisitos. En este caso, son los requisitos del microprocesador. Es lo primero que tendriamos que aclarar, sobre todo porque va a gobernar todo el proceso hasta llegar al resultado final.
Normalmente, un encargo de este tipo nos lo suele dar un cliente, que puede ser externo a nuestra organización, pero también puede ser interno a la misma, como por ejemplo un jefe directo, un jefe de producto o responsable de producto,... En cualquier caso, lo importante es establecer las fuentes de requisitos, es decir, quienes son capaces de ayudarnos a determinar los requisitos de nuestro microprocesador.
Como se trata de una simple demostración de cómo llevar a cabo un diseño propio, en este caso seré yo mismo la fuente de requisitos y me ocuparé de formularlos y discutirlos conmigo mismo (o sea, meditarlos debidamente). Así que he aquí la lista de requisitos del microprocesador.
REQ (Documento de requisitos)
======================
1.- Objetivo e introducción
-----------------------------
El objetivo del presente documento es listar e identificar todos los requisitos que se pretende que posea un microprocesador de demostración. El ámbito de la demostración es el de ofrecer una panorámica básica sobre las técnicas de elaboración de herramientas de desarrollo digital modernas, tales como compiladores, lenguajes de programación de alto nivel, sistemas operativos, técnicas de multiproceso, técnicas de interfaz digital e interconexión de periféricos y aplicaciones de comunicaciones.
El microprocesador en cuestión recibirá el nombre abreviado MIYAGI.
Dada la naturaleza del ámbito en el que se va a enmarcar, los requisitos comerciales y de despliegue y de mantenimiento quedan descartados de su formulación. Únicamente se reflejarán aquí los requisitos técnicos.
2.- Requisitos Técnicos
-------------------------
Se requiere que MIYAGI tenga las siguientes características
REQ [ 2. 1] -- Capacidad de cálculo de al menos 100KFlops
REQ [ 2. 2] -- Capacidad de conectarse a un bus estandard para transferencia de de datos y direcciones y controles de bus.
REQ [ 2. 3] -- Capacidad de poseer y gestionar memoria cache interna
REQ [ 2.4] -- Capacidad de recibir interrupciones en diversos formatos, por una única linea
REQ [ 2. 5] -- Capacidad de direccionar periféricos mapeados en el espacio de memoria físico
REQ [ 2. 6] -- Capacidad de integrar un gestor de memoria virtual, opcionalmente
REQ [ 2. 7] -- Capacidad de permitir la depuración de programas bajo control de un elemento externo.
REQ [ 2. 8] -- Capacidad de interconectarse con hasta 6 microprocesadores iguales, para multiproceso. En la interconexión se intercambian datos y controles.
REQ [ 2. 9] -- Capacidad de acceder a la memoria de instrucciones con pipeline opcional
REQ [ 2.10] -- Capacidad de disponer de ejecucion de instrucciones aritmético-lógicas estandard.
REQ [ 2.11] -- Capacidad de disponer de ejecucion de instrucciones de control de flujo condicional e incondicional
REQ [ 2.12] -- Capacidad de disponer de algún método que permita conocer y programar el estado del microprocesador.
REQ [ 2.13] -- Capacidad de materializarlo en dispositivos programables como FPGAs.
REQ [ 2.14] -- El juego de instrucciones deberá ser el propio de un microprocesador RISC.
REQ [ 2.15] -- Capacidad de disponer de modos de ALU en punto flotante, opcional.
3.- Historial
----------------
Fecha Modificacion Autor
.......... ................ ..............
====================================================================
Bueno, como documento de requisitos es escueto (bastante) pero ilustrativo de lo que ha de contener y cómo. Observa que en nigún momento se indica cómo debe hacerse el microprocesador, su arquitectura, ni las herramientas para elaborarlo. A menudo estos conceptos se imponen como requisitos cuando realmente no pertenecen a esa atmóssfera, sino a la del utillaje y herramientas necesario para su elaboración. Por cierto, en todo documento técnico que se precie de ser "mantenible" no puede faltar un apartado para indicar los cambios y modificaciones introducidos en el mismo, a efectos de entender el histórico de cambios y extraer de él enseñanzas, aprendizajes,... información muy valiosa que de otro modo quedaría en el olvido.
Creo que por hoy podemos concluir la tarea. Pronto más. Y espero que nos pongamos a detallar las funciones e interfaces.
Por cierto, quien necesite que le aclare algún detalle sobre esta entrada del cuaderno de bitácora, que simplemente me deje un comentario y le responderé gustosamente. Cualquier aspecto, correccion, crítica o sugerencia o aclaración estaré encantado de resolverla.