Coordinación de CPUs

Avatar de Usuario
WhatIsAMan
Mensajes: 51
Registrado: 10 Dic 2017 17:06
Ubicación: El castillo invertido
Agradecido : 15 veces
Agradecimiento recibido: 13 veces

Coordinación de CPUs

Mensajepor WhatIsAMan » 16 Feb 2018 12:55

Hola!

Hacía tiempo que no escribía. Querría romper el silencio exponiendo una pregunta.
He visto que hay ordenadores con múltiples CPUs con distinta arquitectura (por ejemplo el CBM-9000 o el C128). Me gustaría conocer un circuito sencillo para coordinar una 68K y una Z80 al estilo Megadrive. He estado revisando Megadrive y Neo-Geo, porque ambas usan estos dos procesadores, pero parece ser que su coordinación está "oculta" por componentes propietarios.

Gracias!

BlackHole
Mensajes: 814
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 5 veces
Agradecimiento recibido: 66 veces

Re: Coordinación de CPUs

Mensajepor BlackHole » 16 Feb 2018 15:01

¿A qué llamas "coordinar"? Justamente los circuitos que acompañan a un procesador nunca han sido sencillos, por la multitud de señales que gestionan.
En el caso de la Megadrive, se dedican a cosas diferentes: el Z80 gestiona el código del sonido y de los juegos SMS, mientras que el del programa principal lo lleva el 68000.
En el C-128, los dos procesadores no pueden funcionar simultáneamente: o activas uno u otro.

Avatar de Usuario
Chema
Mensajes: 1801
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 793 veces
Agradecimiento recibido: 285 veces
Contactar:

Re: Coordinación de CPUs

Mensajepor Chema » 16 Feb 2018 15:17

Eso mismo iba a preguntar yo. Lo más simple que se me ocurre es que ambos gestionen espacios de memoria separados y que se use algún método para que se comuniquen. Por ejemplo mediante una zona de memoria pequeña compartida, pero hay que asegurarse de que ambos no acceden a la vez. Creo que el 68000 tenía chips compañeros que ayudaban (igual que el 6502 con las VIA) y el Z80 supongo que también.

Avatar de Usuario
minter
Mensajes: 1686
Registrado: 22 Jul 2014 18:51
Agradecido : 944 veces
Agradecimiento recibido: 431 veces

Re: Coordinación de CPUs

Mensajepor minter » 16 Feb 2018 17:32

Chema escribió:Eso mismo iba a preguntar yo. Lo más simple que se me ocurre es que ambos gestionen espacios de memoria separados y que se use algún método para que se comuniquen. Por ejemplo mediante una zona de memoria pequeña compartida, pero hay que asegurarse de que ambos no acceden a la vez. Creo que el 68000 tenía chips compañeros que ayudaban (igual que el 6502 con las VIA) y el Z80 supongo que también.


Exactamente como funciona el Fujitsu FM-7. Con los dos 6809 y una ventana de comunicación en una zona de memoria. -drinks

Avatar de Usuario
WhatIsAMan
Mensajes: 51
Registrado: 10 Dic 2017 17:06
Ubicación: El castillo invertido
Agradecido : 15 veces
Agradecimiento recibido: 13 veces

Re: Coordinación de CPUs

Mensajepor WhatIsAMan » 16 Feb 2018 17:58

Gracias por estas respuestas tan rápidas!

Tenía en mente dos mapas de memoria separados con una zona común. Lo que me intriga seria el "árbitro" de bus.

Avatar de Usuario
Jinks
Mensajes: 1227
Registrado: 09 Oct 2013 16:47
Agradecido : 51 veces
Agradecimiento recibido: 106 veces
Contactar:

Re: Coordinación de CPUs

Mensajepor Jinks » 16 Feb 2018 19:11

¿Y no sería más sencillo que se comuniquen mediante puertos de E/S?

Cada uno con su memoria sin compartir nada, así evitas árbitros o contiendas. Por ejemplo con dos puertos, A y B, el 68000 puede leer el A y escribir en el B, y el Z80 al revés.

Claro, eso para coordinarse, para enviarse señales, si tuvieran que compartir muchos datos entonces no creo que fuera práctico.

Avatar de Usuario
WhatIsAMan
Mensajes: 51
Registrado: 10 Dic 2017 17:06
Ubicación: El castillo invertido
Agradecido : 15 veces
Agradecimiento recibido: 13 veces

Re: Coordinación de CPUs

Mensajepor WhatIsAMan » 16 Feb 2018 19:29

Ok.

Gracias!

Avatar de Usuario
ron
Mensajes: 17681
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 761 veces
Agradecimiento recibido: 807 veces

Re: Coordinación de CPUs

Mensajepor ron » 16 Feb 2018 19:34

Creo que blackhole lo explicó bastante bien en el caso del C128, y hay algo sobre la softcard en un Apple ][-

En principio comparten los datos y el bus de direcciones del C128, por lo que solo pueden ejecutarse de forma exclusiva en un momento determinado. El bus de direcciones aparentemente está conectado directamente, el bus de datos del Z80 a través de un conjunto de enganches al bus de datos del resto del sistema.

Es decir, en modo CP/M, el 8502 maneja el teclado, la pantalla, la impresora, y los puertos seriales, mientras que el Z80 "ejecuta los programas". Mientras una CPU se está ejecutando, la otra necesita estar en HALT.


Volver a “General”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado