02 Acceso Hardware 2en1
UNIVERSIDAD DE CANTABRIA
Tema 1. Introducción
Tema 2. Recursos de acceso al hardware
Tema 3. Interrupciones
Tema 4. Puertas básicas de entrada/salida (I)
Tema 5. Recursos de temporización de bajo nivel
Tema 6. Multitarea en Ada
Tema 7. Puertas básicas de entrada/salida (II)
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA YCOMPUTADORES
2/Mar/06
1
Mapas de memoria y mapas de
entrada/salida
UNIVERSIDAD DE CANTABRIA
El acceso a la memoria y a los dispositivos de E/S se realiza
mediante los buses de datos, direcciones y control:
RAM
...
Bus de datos
Bus de direcciones
Bus de control
D0
...
D31
A0
...
...
A31
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
BUSY...
M/IO
...
LOCK
2
Mapas de memoria y mapas de
entrada/salida
(cont.)
UNIVERSIDAD DE CANTABRIA
En algunas arquitecturas no hay diferencia entre registros de
E/S y registros de memoria (p.e. familia 68K de Motorola)
• los registros de E/S se $000000
$080000
Memoria RAM
Teclado
encuentran
(256 Kb)
$080004
"mapeados" en
No utilizado
$03FFFF
$080008
posiciones de memoria
Puerta Serie
Noutilizado
$08000F
$080000
Dispositivos de E/S
• se accede a ellos
(256 bytes)
utilizando las mismas
$0800FF
No utilizado
instrucciones que para
No utilizado
acceder a la memoria
$FF8000
$0800F0
Memoria ROM
(32 Kb)
$FFFEFF
$FFFF00
$FFFFFF
Vect. Interrupción
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
Temporizador
$0800F8
$0800FF
Mapas dememoria y mapas de
entrada/salida
(cont.)
No utilizado
3
UNIVERSIDAD DE CANTABRIA
En otras arquitecturas los mapas de memoria y de E/S son
independientes (p.e. familia x86 de Intel)
• se utilizan
Mapa de Memoria
Mapa de E/S
instrucciones
$0000
$000000
Teclado
Memoria RAM
diferentes para acceder
$0004
(256 Kb)
No utilizado
a la memoria (MOV, XCHG,
$0008
$03FFFF
Puerta Serie
etc.) o a los registros$000F
de E/S (IN, OUT, etc.)
No utilizado
• con la línea MEM/IO del
No utilizado
bus de control se
$00F0
selecciona el mapa
$FF8000
Memoria ROM
(32 Kb)
$FFFEFF
$FFFF00
$FFFFFF
Temporizador
$00F8
$00FF
No utilizado
Vect. Interrupción
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
4
Mapas de memoria y mapas de
entrada/salida
(cont.)$FFFF
$02FF
$03FF
COM 2
$02F8
$03F8
$03F7
UNIVERSIDAD DE CANTABRIA
Área de
expansión
de E/S
COM 1
Disquete
$03F0
Mapa de E/S
de un PC
$0063
$0060
8255
(PPI)
$03DF
$03D0
$0043
Timer
$037F
$0040
$0023
$0020
$0000
LPT 1
$0378
Controlador de
Interrupciones
$032F
$0320
$000F
Adaptador
CGA
Disco
duro
Controlador de
DMA
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea RivasDPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
Instanciación física de variables
Text
(Código)
Data
(Datos)
Heap
(Montículo)
Disponible
Stack
(Pila)
Estructura
de un programa
en memoria
procedure Ejemplo_Memoria is
type Int_10 is range 1 .. 10;
D1 : Int_10;
D2 : Float := 1.0;
D3 : access all Integer;
5
UNIVERSIDAD DE CANTABRIA
no tiene
representación
en memoria
procedure Un_Proc is
S :Integer;
begin
...;
end Un_Proc;
begin
D3 := new Integer;
D1 := 2 * Int_10 (D2);
...;
end Ejemplo_Memoria;
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
6
Acceso a direcciones de memoria
física
UNIVERSIDAD DE CANTABRIA
En ocasiones es necesario acceder a una posición
determinada del mapa memoria para acceder a los
dispositivos de E/S:
•También en la arquitectura Intel x86
- dispositivos PCI mapeados en memoria
- acceso directo a memoria de video
Para ubicar una variable en una posición de memoria:
N : Integer;
for N’address use 16#EF5A01#;
GRUPO DE COMPUTADORES Y TIEMPO REAL
© Mario Aldea Rivas
DPTO. DE ELECTRÓNICA Y COMPUTADORES
2/Mar/06
Acceso a direcciones de memoria
física
(cont.)
7
UNIVERSIDAD DE CANTABRIA
Para...
Regístrate para leer el documento completo.