Hoy (15 de enero 2008) luego de una gran espera se dio a conocer en la MacWorld Expo de San Francisco lo que Steve Jobs nos tenia preparado y no decepciono a los presentes.
Se trata de la Macbook Air el portatil mas delgado del mundo con dimensiones desde 0.4 a 1.94 cms de ancho, pantalla de 13 pulgadas, camara incorporada iSight, teclado retroiluminado y trackpad.
Ademas tiene como caracteristicas de poseer 2 gb de memoria, procesadores Intel Core 2 duo de 1.6Ghz y 1.8Ghz especialmente hechos para las dimensiones del equipo y tambien conexion wireless 802.11n, que estaran a la venta en las proximas semanas (se puede reservar desde su pagina http://www.apple.com/macbookair/) y que tendra precios de 1799 y 3098 dolares.
Tambien se dio a conocer nuevas funcionalidades del Iphone a traves de una actualizacion y un sistema de arriendo de peliculas a traves del sistema iTunes en calidad HD y con el respaldo de las principales cinematograficas.
miércoles, 16 de enero de 2008
Steve Jobs presento Mac book Air
Publicado por
Darkrandor
en
0:22
0
comentarios
Etiquetas: itunes, macbook air, mackbook delgado, steve jobs
martes, 15 de enero de 2008
Mapa de Registros Maquina Sparc
Los procesadores SPARC realizan un “sistema de ventanas”. Cada ventana son 24 registros (a los cuales se le suman 8 más que son globales, o sea, accesibles por todas las ventanas; la suma de 32 registros es visible en todo momento) que pertenecen a un procedimiento o subprograma. A medida que se van creando nuevas ventanas los registros de salida de la ventana actual se solapan sobre los de entrada de la ventana siguiente. Los CPU registros locales y de salida de la ventana actual son diferentes a los registros locales y de salida de la ventana siguiente. Esta figura lo muestra esquemáticamente:
En la figura, CWP es el índice de la ventana actual. El comando SAVE y las TRAPS decrementan dicho índice, y RESTORE y RETT lo incrementan.
Para verificar si un número de ventana es válido se utiliza el registro WIN (Window
Invalid Mask) de 32 bits. Si el bit i-ésimo está en 1 indica que esa ventana inválida y si se intenta acceder esta, segenera un error (TRAP “window_overflow”).
El registro G0 está fijo por medio del hardware con el valor 0. En él, los almacenamientos no alteran su valor. Los registros G1 a G7 son globales y pueden contener variables enteras, apuntadores a tablas u otros datos importantes. Los registros de salida son de O0 a O7 y son usados por los procedimientos para pasar parámetros a los procedimientos que llaman. El primer parámetro va al registro O0, el siguiente al O1 y así sucesivamente. El registro O6 (AE) se utiliza como apuntados a la pila de memoria. La pila se usa para los parámetros que exceden los registros, espacio de asignación dinámica de la pila, ventanas apiladas en memoria, así como para salvar registros de punto flotante, apuntadores a buffers en donde los procedimientos llamados pueden enviar
estructuras y arreglos de datos, etc. La instrucción CALL (llamada) deposita la dirección de retorno en el registro O7. Los 8 registros para variables locales L0 a L7, se pueden usar en la forma que el programador o el compilador considere más conveniente. Las 8 variables de entrada I0 a I7 son los parámetros que son pasados al procedimiento actual por el que le llama: Los registros no utilizados pueden contener variables locales adicionales. I6 (FP) es el apuntador de marco que se usa para direccionar variables en el marco de pila. A diferencia de SP que solo puede cambiar mientras el procedimiento se ejecuta, FP apunta la misma palabra en memoria durante toda la ejecución del procedimiento, siendo más apropiado para la indexación que el SP. La dirección de retorno del procedimiento se encuentra contenida en el registro I7.
Por lo tanto y en general, existen 4 grupos de registros diferentes:
Registros Globales : G0-G1
Registros de Salida: O0-O7
Registros Locales: L0-L7
Registros de Entrada: I0-I7
Publicado por
Darkrandor
en
17:58
0
comentarios
Etiquetas: mapa registros sparc, sparc, sun
Set de Intrucciones Maquina Sparc
Aqui va otra info sobre maquinas sparcs, lo hago por que por lo general cuesta encontrar informacion al respecto, espero que les sirva.
op1, op2 y op3 pueden ser un registro, dirección de memoria, desplazamiento
Instrucciones aritméticas
ADD[cc]: Suma op1 a op2 y almacena el resultado en op3.
ADDX[cc]: Suma op1 a op2 y el carry y almacena el resultado en op3.
SUB[cc]: Resta op2 a op1 y almacena el resultado en op3
SUBX[cc]: Resta op2 y el carry a op1 y almacena el resultado en op3
Instrucciones lógicas
AND[cc]: Realiza el "and" bit a bit entre op1 y op2 y almacena el resultado en op3.
OR[cc]: Realiza el "or" bit a bit entre op1 y op2 y almacena el resultado en op3.
XOR[cc]: Realiza el "xor" bit a bit entre op1 y op2 y almacena el resultado en op3.
Instrucciones de desplazamiento
SLL: Realiza un shift a la izquierda de los bits de op1, op2 lugares y almacena el
resultado en op3. Sólo considera los 5 bits más significativos de op2 para determinar el valor del contador. Rellena con ceros.
SRL: Realiza un shift a la derecha de los bits de op1, op2 lugares y almacena el
resultado en op3. Sólo considera los 5 bits más significativos de op2 para determinar el valor del contador. Rellena con ceros.
SRA: Realiza un shift a la derecha de los bits de op1, op2 lugares y almacena el
resultado en op3. Sólo considera los 5 bits menos significativos de op2 para determinar el valor del contador. Realiza expansión de signo, es decir, rellena con el bit más significativo de op1.
Instrucciones de memoria
LDSB: Carga en op2 el valor del byte almacenado en la dirección de memoria op1.
realiza expansión de signo.
LDSH: Carga en op2 el valor de la media palabra (2 bytes) almacenada a partir de
la dirección de memoria op1. Realiza expansión de signo.
LDUB: Carga en op2 el valor del byte almacenado en la dirección de memoria op1 .
no realiza expansión de signo. Rellena con ceros.
LDUH: Carga en op2 el valor de la media palabra (2 bytes) almacenada a partir de la dirección de memoria op1. No realiza expansión de signo. Rellena con
ceros.
LD: Carga en op2 el valor de la palabra (4 bytes) almacenada a partir de la
dirección de memoria op1.
STB: Guarda en el byte ubicado en la dirección de memoria op2 los 8 bits menos
significativos de op1.
STH: Guarda en la media palabra (2 bytes) ubicada a partir de la dirección de
memoria op2 los 16 bits menos significativos de op1.
ST: Guarda en la palabra (4 bytes) ubicada en la dirección de memoria op2 el
valor de op1.
SWAP: Intercambia los valores entre la palabra ( 4 bytes ) almacenada en la
dirección op1 en el registro op2 .
SETHI: Coloca en los 22 bits más significativos de op2 el valor op1.
Instrucciones de bifurcación incondicional
CALL: Coloca en el registro %15 el valor actual del PC (es decir de la instrucción
que contiene el CALL) y realiza un salto incondicional a la dirección
PC+4*desp30
JMPL: Coloca en el registro op2 el valor actual del PC (es decir de la instrucción
que contiene el JMPL) y realiza un salto incondicional a la dirección op1.
RETT: Es usada para retornar de un servicio a interrupción. Verifica que el retorno
sea válido y en caso de serlo transfiere el control a la dirección op1.
Instrucciones para manejo de ventanas
SAVE: Guarda la ventana del procedimiento llamador.
coloca en el registro op3 de la nueva ventana el valor op1 + op2 calculado
a partir de los valores de los registros de la ventana vieja.
RESTORE: Guarda la ventana del procedimiento llamador.
coloca en el registro op3 de la nueva ventana el valor op1 + op2
calculado a partir de los valores de los registros de la ventana vieja.
Instrucciones de bifurcación condicional
BA: Esta instrucción es en realidad un salto incondicional pero es equivalente en
formato a todas las demás que realizan saltos condicionales en el sentido de
realizar un salto a la dirección PC+4*op1 considerando el signo de op1.
BNE: En caso que la flag de Zero sea 0 realiza un salto a la dirección PC+4*op1
considerando el signo de op1.
BE: En caso que la flag de Zero sea 0 realiza un salto a la dirección PC+4*op1
considerando el signo de op1.
BG: Si la condición anterior se cumple entonces implica que en caso de haber sido
realizada una resta (una comparación) A-B de dos números A y B codificando
enteros en complemento a 2 entonces AB y AB entonces A > B y se
realiza un salto a la dirección PC+4*op1 considerando el signo de op1.
BLE: La condición es la negación del caso anterior ( ver BG) es decir que el salto
se realiza si A B considerando el signo.
BGE: La condición se cumple si N = V y por lo tanto es verdadera cuando A B
considerando el signo (ver BG) y en ese caso se realiza el salto.
BL: La condición es la negación del caso anterior (ver BGE)
se produce si A < B (ver BG) considerando el signo.
BGU: Si la condición anterior se cumple entonces implica que en caso de haber
sido realizada una resta (una comparación) C-D de dos números C y D
codificando enteros sin signo entonces C D y C D entonces C > D y se
realiza un salto a la dirección PC+4*op1 considerando el signo de op1.
BLEU: Es la negación de la condición anterior es decir que se realiza el salto si
C D (ver BGU) sin considerar el signo de C y D.
BCC: En caso que la flag de Carry sea 0 realiza un salto a la dirección PC+4*op1
considerando el signo de op1. Es equivalente a C D (ver BGU).
BCS: En caso que la flag de Carry sea 1 se realiza un salto a la dirección
PC+4*op1 considerando el signo de op1. Es equivalente a C < D (ver BGU).
BPOS: En caso que la flag Negative sea 0 realiza un salto a la dirección PC+4*op1
considerando el signo de op1.
BNEG: En caso que la flag Negative sea 1 realiza un salto a la dirección PC+4*op1
considerando el signo de op1.
BVC: En caso que la flag de Overflow sea 0 realiza un salto a la dirección
PC+4*op1 considerando el signo de op1.
BVS: En caso que la flag de Overflow sea 1 realiza un salto a la dirección
PC+4*op1 considerando el signo de op1.
Manejo especial del registro PSR(Program Satutus Register)
n Z v C
23 22 21 20
Los bits del 20 al 23 del PSR almacenan las banderas de la IU. Estos bits son
modificados por las instrucciones con cc (por ejemplo ANDcc) y por la instrucción WRPSR.
RDPSR: Copia el PSR a op1.
WRPSR: Coloca en PSR el valor op1 op2 1 2 Å .
RDWIM: Copia el WIM ( Window Invalid Mask ) a op1.
WRWIM: Coloca en WIM el valor op1 op2.
RDTBR: Copia el TBR ( Trap Base Register ) a op1.
WRTBR: Coloca en TBR el valor op1 op2.
Publicado por
Darkrandor
en
1:29
0
comentarios
Etiquetas: instrucciones, instrucciones sparc, sparcstation