Está en la página 1de 5

1

Autores, Walter Yesith Gómez Bellón Estudiante de Ingeniería de Software código: c.u. 1711027179,

Proyecto Grupal Diseño de Conjunto de


Jhonathan Camilo Valenzuela Prieto Estudiante de Ingeniería de Software código c.u. 1711025622.
Presentado a: Tutor Gabriel Eduardo Avila Buitrago

Instrucciones y Micro arquitectura


Resumen— ( realizado bajo instrucciones del tutor de la II. MARCO TEÓRICO


materia) En el siguiente trabajo se realizar el diseño de un
conjunto de instrucciones que viene acompañado de la micro
arquitectura de un procesador que permitirá identificar y
realizar las siguientes tareas; 1. Determinar si un número es Partiendo de la premisa que la computadora es un artefacto
primo o no, 2. Diseño de un algoritmo de alto nivel, 3. Definir digital, que basa sus procesos como ordenador numérico,
instrucciones de bajo nivel requeridas con el diseño de automática, secuencial, universal. Bajo este parámetro la
instrucciones (ISA), 4. Definir la estructura de hardware computadora esta codificada con números y en conjuntos de
mínima para poder ejecutar todas las instrucciones definidas en
ceros (0) y unos (1) compartiendo a su vez espacios de letras,
el conjunto de instrucciones, 5. Se debe montar la estructura
mínima de hardware sobre el simulador de Logism, 6. Se debe lo que convierte también en procesos alfanuméricos. Es
incluir la simulación en Logism, 6. Incluir la simulación de al automática porque puede ejecutar operaciones sin la
menos 2 ejemplos diferentes para demostrar que funciona intervención de un operador externo de manera continua para
correcta, 7. Por último se documentara todas las decisiones del realizar espacios de supervisión en la resolución de un
diseño problema lo cual puede realizar de manera secuencial
. siguiendo los pasos que sean determinados por el
programador, de acuerdo a las variables y factores
Abstract--(carried out under the instructions of the tutor of predispuestos en las acciones solicitadas por el cliente o el
the subject) In the following work we will design a set of dueño de la necesidad, es importante que la programación
instructions that is accompanied by the micro architecture of a destinada a la maquina presente un lenguaje e instrucciones
processor that will identify and perform the following tasks; 1. claras que les permita cumplir a cabalidad las instrucciones
Determine if a number is a cousin or not, 2. Design of a high de universalidad requeridas.
level algorithm, 3. Define low level instructions required with Es importante entender que la computadora es desarrollada
instruction design (ISA), 4. Define the minimum hardware
como un sistema compuesto pero bajo los parámetros
structure to be able to execute all the instructions defined in the
instruction set, 5. The minimum hardware structure must be
impuestos por el creador, diseñador o fabricante.
mounted on the Logism simulator, 6. The simulation must be ENTREGA SEMANA 1
included in Logism, 6. Include the simulation of at least 2 Esta entrega corresponde a una aproximación al problema. Se
different examples to demonstrate that it works correct, 7. debe entregar:
Finally all design decisions will be documented. 1) 1. Documento con el diseño del algoritmo, en
pseudocódigo o un lenguaje de
2) programación en alto nivel, que dé solución al
problema: “Determinar si un número es
I. INTRODUCCIÓN 3) primo o no”. Adicionalmente, se debe especificar qué

E
tipos de instrucciones pueden ser
S importante entender que en el tiempo, los seres
4) requeridas para la solución del problema, de acuerdo
humanos siempre han tenido que enfrentar y sortear
con el algoritmo diseñado.
problemas. progresivamente se han estructurado como
oportunidades de avance, en la tecnología sucede lo mismo el
III. INSTRUCCIONES GENERALES PARA REALIZAR
planteamiento de esos problemas se convierten en ejercicios LA ENTREGA
fundamentados, con variables, probabilidades y posteriores
soluciones, para realizar estos ejercicios, se estructuran de
manera sistematizada y hasta con resultados automáticos, por Se debe diseñar el conjunto de instrucciones y la micro
ende, necesitamos generar interacciones dinámicas entre el arquitectura de un procesador que
software y hardware. La Micro arquitectura nos permite permita hacer las siguientes tareas:
entender cómo se generan esas interacciones y cuáles son los
procedimientos y equipos necesarios para generar las mejores 1. Determinar si un número es primo o no.
prácticas en el desarrollo de las soluciones en este documento 2. Se debe diseñar el algoritmo en alto nivel.
verificaremos la importancia de un simple ejercicio sobre la 3. Se debe definir qué instrucciones de bajo nivel
consecución de resultados para un número impar, bajo el son requeridas y diseñar el Conjunto de
ambiente Logism partiendo de la utilización de lenguajes para 1. Instrucciones (ISA).
desarrollo. 4. Se debe definir la estructura de hardware mínima
para poder ejecutar todas las

2

2. instrucciones definidas en el conjunto de


instrucciones.
5. Se debe montar la estructura de la micro
arquitectura de hardware sobre el simulador
3. Logisim.
6. Se debe incluir la simulación (en Logisim) de al
menos 2 ejemplos diferentes para
4. demostrar que funciona correctamente.
7. Se deben documentar todas las decisiones de
diseño.

1)

2) DESCRIPCION DE PSEUDOCODIGO EN
JAVASCRIPT
function isCousin(number) {
let desicion = true;
let arrayNumbers = []
if (Number.isInteger(number)) {
if (number != 1 && number != 0) {
for (let i = 2; i < number; i++) {
if (number % i === 0) {
if(number % 1 === 0){
desicion = false IV. INSTRUCCIONES GENERALES PARA REALIZAR
arrayNumbers.push(i) SEGUNDA ENTREGA
console.log("EL NUMERO " + number + "NO ES PRIMO 1. Listado detallado de Instrucciones:
PORQUE ES MULTIPLO DE " + i); a. Li (darle valor al registro)
} b. Rem (obtener el residuo de una división)
} c. Beq (instrucción condicional preguntando si un
} valor es igual a otro)
if(desicion == true){ d. Les (instrucción condicional preguntando si un
alert("el número "+number+" es primo") valor es menor que otro)
}else{ e. Add (instrucción aritmética de suma)
alert("el numero "+number+" no es primo porque es f. Mul (instrucción aritmética de multiplicación)
divisible por "+arrayNumbers) g. Sw (instrucción para guardar un dato en una
} posición de RAM)
} h. Jump (instrucción de control para saltar a otra
} else { línea del programa)
alert("Valor Invalido" ( En este momento determinamos que estas
} son las instrucciones necesarias, lo que significa
} que utilizaría 3 dígitos binarios para el código de
cada instrucción)
2. Nombre Mnemónico de los parámetros que recibe:
a. Li R# valor( R# el número del registro que se le
va a dar valor)
b. Rem R#a, R#b, R#c ( tres operandos que son
residuo, dividendo, divisor)
c. Beq R#e,R#f (dos operandos)
d. Les R#g,R#h ( dos operandos)
e. Add R#i,R#j,R#k ( tres operandos que son
resultado y sus dos sumandos)
f. Mul R#l, R#m,R#n (tres operandos que son
resultado y sus factores)
g. Sw R#1, 0 (R#2) ( primer operando es el valor
a guardar y el segundo operando, es el espacio
a utilizar donde se va a guardar en la RAM)
h. Jump # ( rotulado que indica el renglón donde
se realizara el salto del programa)
3

3. Descripción de una frase indicando que hace en 7. Listado en HEXA del binario que presenta el
términos de lo que recibe como parámetro y su programa realizado:
ejemplo: INSTRUCC CO OPERAN EJEMP SIGNIFICA SIGNIFICA
a. Li R2 5( al registro número 2 se le da el ION D DOS LO DO DO
valor de 5) MATEMAT
b. Rem R1, R2, R3 ( 0 = residuo de 10/5, ICO
li 000 R, valor Li R2 5 Registro R2 Asignar un
suponiendo que R2 vale 10, R3 vale 5) 0 5 valor a un
c. Beq R1,R2 ( R1==R2) registro
d. Les R2, R3 (R2<R3) rem 000 R1,R2, Rem 0 = residuo Realiza la
e. Sum R5,R2,R3 ( R5= R2+R3) 1 etiqueta R1,R2, de 10/5 operación
R3 de division
f. Mul R6,R2,R3 (R6= R2*R3) beq 001 R1,R2, Beq R1==R2 Realiza la
g. Sw R1, 0 (R2) 0 etiqueta R1,R2, operación
h. Jump 0111 R3 igual que
les 001 R1,R2, Les R2<R3 Realiza la
1 etiqueta R2,R3 operación
4. Definición de la cantidad de registros que se usaran y menor que
el tamaño de cada registro: sum 010 R1,R2, Sum R5= R2+R3 Realiza la
Necesitaríamos una cantidad de 15 registros y su 0 etiqueta R5,R2, suma de los
R3 operandos
tamaño será de 8 bits. Utilizando registros de control mul 010 R1,R2, Mul R6= R2*R3 Realiza la
y de estado según nuestro parecer y la información 1 etiqueta R6,R2, multiplicaci
obtenida a nuestro criterio utilizaríamos las R3 ón de los
operandos
siguientes instrucciones:
sw 011 R, valor Sw R1,0 0 (R2) Guardar un
a. Contador de programa (PC) 0 (R2) valor en un
b. Registro de instrucción (IR) espacio
c. Registro de memoria (MAR) asignado
jump 011 Etiqueta Jump Saltar al Salta al
d. Registro intermedio de memoria (MBR) 1 0111 lugar lugar
indicado de
5. Descripción breve de los modos de direccionamiento manera
que sean posibles: independien
te
MODOS DE INSTRUCCIÓN JUSTIFICACION
DIRECCIONSMIENTO
DIRECTO A REGITRO Rem R1, R2, R3 ( 0 = DETERMINAMOS
residuo de 10/5, ESTE MODO POR QUE # Instrucción en HEX
suponiendo que R2 REALIZA UNA
vale 10, R3 vale 5) OPERACIÓN binario
ARITMETICA QUE 0 000000000000 1
DIRECTO A REGITRO Sum R5,R2,R3 ( R5= AFECTA 1 001000000001 2
R2+R3) DIRECTAMENTE AL
REGISTRO 2 002000000010 3
DIRECTO A REGITRO Mul R6,R2,R3 (R6= 3 003000000011 4
R2*R3) 4 004000000100 5
DIRECTO A REGITRO 5 005000000101 6
6 006000000110 7
DIRECTO A REGITRO 7 007000000111 8
8 010000001000 9
DE TRANSFERENCIA DE Sw R1, 0 (R2) DETERMINAMOS
DATOS ESTE MODO POR LA 9 011000001001 10
COMUNICACIÓN 10 012000001010 A
CON LA RAM 11 013000001011 B
PSEUDODIRECTO Jump # ( rotulado que DETERMINAMOS
indica el renglón ESTE MODO POR LOS 12 014000001100 C
donde se realizara el SALTOS EN EL 13 015000001101 D
salto del programa) CODIGO 14 016000001110 E
RESALTANDO EN LA
TIPOGRAFIA 15 017000001111 F
INDIRECTO A REGISTRO Sw R1, 0 (R2) DETERMINAMOS
ESTE MODO
PARA
INTERACTUAR CON
LA RAM

6. Traducción del programa del alto nivel según la 8. ALU en Logisim, que pueda ejecutar las
(entrega 1) al lenguaje ensamblador que han instrucciones
construido, usando su propio conjunto de requeridas por el programa:
instrucciones.
PROCESO DE DISEÑO ALU (UNIDAD ALGORITMICA)
4

Fase 1. Instalación del inicio básico de la ALU

Fase 2 implementación de las operaciones de Alu:


 AND
 OR
 XOR
 NOR
 ADD/SU

FASE FINAL # 4 ALU Fig.No 4

9. CONCLUSIONES:
 Es importante reconocer las funciones de la
Unidad Aritmética como sistema de
operaciones en un circuito y la relevancia
que tiene en un computador.
 Importante conocer la ruta de diseño y
ensamblaje de una ALU, permite entender
el proceso lógico, para las operaciones
FASE # 2 IMPLEMENTACION DE OPERACIONES ARITMETICAS Fig. No.2 binarias de un circuito computacional.
 La realización del trabajo nos permitió
definir el concepto de un leguaje de alto a
Fase 3 apariencia del circuito: nivel y el proceso de estandarización para
colocarlo en contexto en un nivel simple,
comprendiendo de forma detallada como
debe ser el paso a paso de una instrucción y
como tiene su injerencia directa sobre el
hardware.
 Se pudo determinar y concluir que un
lenguaje de alto nivel, genera un código más
sencillo y programable y de forma
comprensiva, lo que permite ser válido para
diferentes máquinas y sistemas operativos.

FASE # 3 APARIENCIA DEL CIRCUITO Fig. No. 3

Fase final de armado de la Unidad Aritmética


5

REFERENCIAS

[1] https://www.ieee.org/
[2] http://www.cburch.com/logisim/docs/2.1.0-es/guide/index.html
[3] https://poli.instructure.com/courses/10656
[4] https://ebookcentral-proquest-
com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/reader.action?
docID=5635431
[5] https://www.youtube.com/watch?v=dYZ-Hwbcnq4
[6] https://rua.ua.es/dspace/bitstream/10045/14769/1/Programaci%C3%B3n
%20a%20bajo%20nivel%20de%20un%20computador.pdf
[7] http://digitales1escom.blogspot.com/2012/11/
[8] https://www.youtube.com/watch?v=Xp7Spuj8XlI
[9] https://www.virtuniversidad.com/greenstone/collect/informatica/archives
/HASH0152.dir/doc.pdf
[10]

También podría gustarte