NO885742L - PROCESS FOR AA EXCHANGE OF DATA BETWEEN THE CENTRAL PROCESSOR IN A HOST COMPUTER SYSTEM AND THE CENTRAL PROCESSOR IN A COProcessor COMPUTER SYSTEM. - Google Patents
PROCESS FOR AA EXCHANGE OF DATA BETWEEN THE CENTRAL PROCESSOR IN A HOST COMPUTER SYSTEM AND THE CENTRAL PROCESSOR IN A COProcessor COMPUTER SYSTEM.Info
- Publication number
- NO885742L NO885742L NO885742A NO885742A NO885742L NO 885742 L NO885742 L NO 885742L NO 885742 A NO885742 A NO 885742A NO 885742 A NO885742 A NO 885742A NO 885742 L NO885742 L NO 885742L
- Authority
- NO
- Norway
- Prior art keywords
- data
- computer system
- port memory
- computer systems
- coprocessor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 33
- 230000008569 process Effects 0.000 title description 3
- 230000015654 memory Effects 0.000 claims description 52
- 230000006870 function Effects 0.000 claims description 51
- 238000012546 transfer Methods 0.000 claims description 24
- 230000009977 dual effect Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 13
- 238000012790 confirmation Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 239000013256 coordination polymer Substances 0.000 claims 1
- HEUVRFNVTLGKMZ-SANMLTNESA-N 4-[(2s)-2-(4-cyanophenyl)-2-hydroxy-2-(3-methylimidazol-4-yl)ethoxy]-3-[4-(trifluoromethoxy)phenyl]benzonitrile Chemical compound CN1C=NC=C1[C@@](O)(C=1C=CC(=CC=1)C#N)COC1=CC=C(C#N)C=C1C1=CC=C(OC(F)(F)F)C=C1 HEUVRFNVTLGKMZ-SANMLTNESA-N 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000006854 communication Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 240000007643 Phytolacca americana Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 241001470502 Auzakia danava Species 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
Den foreliggende oppfinnelse angår generelt mikroprosessor-styrte videospill og personlige datamaskiner, og mer spesielt kommunikasjon mellom sentralprosessoren ("CPU") i en vertsdatamaskin og den i et datamaskinsystem med koprosessor for å skaffe kompatibilitet mellom applikasjonsprogramvare. The present invention relates generally to microprocessor controlled video games and personal computers, and more particularly to communication between the central processing unit ("CPU") of a host computer and that of a coprocessor computer system to provide compatibility between application software.
Et stort antall personlige datamaskiner kan i dag fås på markedet. Typisk er hver av de pérsonlige datamaskiner begrenset med hensyn på bruk til applikasjonsprogramvare utført spesielt for det spesielle datamaskinsystem. Typisk også inneholder ikke biblioteket av tilgjengelig applikasjonsprogramvare for et spesielt datamaskinsystem alle programmene som finnes i applikasjonsprogramvarebiblioteket for andre datamaskinsystemer. Når applikasjonsprogramvaren ikke er tilgjengelig for et spesielt datamaskinsystem, ville det være mest fordelaktig å være i stand til å utnytte den forskjellige, men ikke kompatible applikasjonsprogramvare for et annet datamaskinsystem. A large number of personal computers are available in the market today. Typically, each personal computer is limited in its use of application software designed specifically for that particular computer system. Also, typically the library of available application software for a particular computer system does not contain all of the programs found in the application software library for other computer systems. When the application software is not available for a particular computer system, it would be most advantageous to be able to utilize the different but not compatible application software for another computer system.
Dessuten kan et spesielt datamaskinsystem ha overlegen arbeidshastighet, forbedret grafikk, forbedret lyd og/eller andre høyytelsesmuligheter som ikke finnes i datamaskinsystemet som har glede av et stort eller variert bibliotek av applikasjonsprogramvare. I denne situasjon ville det være nyttig om den ikke-kompatible applikasjonsprogramvare kunne benyttes i datamaskinsystemet med høyeste yteevne slik at de bedre behandlingsmuligheter som skaffes av den høyere yteevne, kunne benyttes med den ikke-kompatible programvare. Also, a particular computer system may have superior operating speed, enhanced graphics, enhanced sound, and/or other high performance capabilities not found in the computer system that enjoys a large or varied library of application software. In this situation, it would be useful if the non-compatible application software could be used in the computer system with the highest performance so that the better processing capabilities provided by the higher performance could be used with the non-compatible software.
Et spesielt eksempel er vist ved Amiga-datamaskinsysternet som er fremstilt og markedsført av Commodore Business Machines, Inc., West Chester, Pennsylvania. Amiga-systemet er en billig datamaskin med høy ytelse og avanserte grafikkegenskaper, lyd-egenskaper og stor hastighet. Imidlertid er ikke Amiga-systemet IBM-PC/XT ("PC")-kompatibelt og kan derfor ikke benytte biblioteket av PC-applikasjonsprogramvare som er lett tilgjengelig på markedet. A particular example is shown by the Amiga computer system manufactured and marketed by Commodore Business Machines, Inc., West Chester, Pennsylvania. The Amiga system is an inexpensive computer with high performance and advanced graphics capabilities, sound capabilities and great speed. However, the Amiga system is not IBM-PC/XT ("PC") compatible and therefore cannot utilize the library of PC application software readily available on the market.
Slik det vil fremgå av det nedenstående er fremstillingen fokusert på Amiga-datamaskinen og en fremgangsmåte for å gjøre den PC-kompatibel. Den viste og påståtte oppfinnelse er imidlertid ikke begrenset til et Amiga/PC-miljø. Dette miljø er bare presentert som et bestemt, foretrukket ett av hensyn til forklaringen. As will be apparent from the following, the presentation is focused on the Amiga computer and a method of making it PC compatible. However, the shown and claimed invention is not limited to an Amiga/PC environment. This environment is only presented as a specific, preferred one for the sake of explanation.
Den personlige datamaskin Amiga har et billig, høyytelses-grafikk- og lydsystem for dagens videospill og personlige datamaskinapplikasjoner. Systemet omfatter tre integrerte spesialkretser styrt av en Motorola 68000 16-32/-bits mikro-prosessor som CPU. Disse spesialbrikkene betegnet Agnus, Denise og Paula skaffer ekstraordinær fargegrafikk på et standard fjernsyn eller fargevideomonitor med samme oppløs-ningskvalitet og dybde som i spillehaller for å vise videospill, tegneserier, fotografier med lav oppløsning og inntil 80 tekstkarakterer på skjermen. I tillegg kan lydkretsene gjengi komplekse bølgeformer på hver av fire kanaler og således være på høyde med kommersielle syntetisatorer i kvalitet. Dessuten kan Amiga-datamaskinsystemet kjøre flere oppgaver samtidig, dvs. det kan utføre mer enn ett program samtidig og er avbruddsdrevet. The Amiga personal computer provides an inexpensive, high-performance graphics and sound system for today's video games and personal computer applications. The system comprises three integrated special circuits controlled by a Motorola 68000 16-32/-bit micro-processor as CPU. These special chips named Agnus, Denise and Paula provide extraordinary color graphics on a standard television or color video monitor with the same resolution quality and depth as in arcades to display video games, cartoons, low resolution photographs and up to 80 characters of text on the screen. In addition, the sound circuits can reproduce complex waveforms on each of four channels and thus be on par with commercial synthesizers in quality. Also, the Amiga computer system is multitasking, i.e. it can execute more than one program at a time and is interrupt driven.
En detaljert beskrivelse av maskinvaren og virkemåte for Amiga-datamaskinsystemet finnes i de følgende samtidige søknader som det her skal henvises til: 1. "Video Game and Personal Computer", løpenr. 756 910, søkt 19. juli 1985, 2. "Display Generator Circuitry for Personal Computer System", løpenr. 886 796, søkt 18. juli 1986, 3. "Peripheral Control Circuit for Personal Computer", løpenr. 886 614, søkt 18. juli 1986, og 4. "Data Input Circuit With Digital Phase Locked Loop", løpenr. 886 615, søkt 18. juli 1986. A detailed description of the hardware and operation of the Amiga computer system can be found in the following concurrent applications to which reference should be made here: 1. "Video Game and Personal Computer", serial no. 756,910, filed July 19, 1985, 2. "Display Generator Circuitry for Personal Computer System", serial no. 886,796, filed July 18, 1986, 3. "Peripheral Control Circuit for Personal Computer", serial no. 886,614, filed July 18, 1986, and 4. "Data Input Circuit With Digital Phase Locked Loop", serial no. 886,615, filed July 18, 1986.
For tiden er Amiga-datamaskinsystemet tilgjengelig som datamaskinen Amiga 1000 og Amiga 2000. For fremstillingens formål er forskjellene mellom de to Amiga-datamaskinsystemer ikke relevante og henvisning vil gjøres til Amiga 2000 datamaskinsystemet for enkelhelts skyld. Maskinvaren til en Amiga 2000 er vist på blokkdiagramform på fig. 1. Fig. 2 viser på en forenklet blokkdiagramform likhetene og forskjellene mellom maskinvaren til Amiga 1000 datamaskinsystemet betegnet element 8 og Amiga 2000 datamaskinsystemet betegnet element 10, med hensyn til datatrafikk. Spesielt vist på fig. 1 er Amiga datamaskinsystemets maskinvare og busser, kollektivt betegnet som element 10. Maskinvaren omfatter Motorola 68000 CPU 12, de tre spesialbrikkene (dvs. Agnus 14, Denise 16 og Paula 18) og de 100 bens Amiga-buss-ekspansjonsslisser 20. Også portene for periferiutstyret til datamaskinsystemet 10 såsom tastatur-porten 22, parallellporten 24, seriellporten 26 og videoporten 28 er vist. I tillegg er en 86 bens lokalt CPU buss-ekspan-sjonssliss 30 og forbundne data-, adresse- og kontrollbusser vist. Currently, the Amiga computer system is available as the Amiga 1000 computer and the Amiga 2000 computer. For the purposes of this presentation, the differences between the two Amiga computer systems are not relevant and reference will be made to the Amiga 2000 computer system for simplicity. The hardware of an Amiga 2000 is shown in block diagram form in fig. 1. Fig. 2 shows in simplified block diagram form the similarities and differences between the hardware of the Amiga 1000 computer system designated item 8 and the Amiga 2000 computer system designated item 10, with respect to data traffic. Specifically shown in fig. 1 is the Amiga computer system hardware and buses, collectively referred to as item 10. The hardware comprises the Motorola 68000 CPU 12, the three special purpose chips (ie Agnus 14, Denise 16 and Paula 18) and the 100 pin Amiga bus expansion slots 20. Also the ports for the peripherals of the computer system 10 such as the keyboard port 22, the parallel port 24, the serial port 26 and the video port 28 are shown. Additionally, an 86 pin local CPU bus expansion slot 30 and associated data, address and control buses are shown.
Hele det avbruddsdrevne Amiga-datamaskinsystem 34 er med sin programvare vist skjematisk på fig. 3. Programvaren omfatter et Kickstart- og Workbench-operativsystem 36 og forskjellige tilgjengelige Amiga-applikasjonsprogramvare-pakker 38, 40, 42, 44 som skal kjøres på fleroppgavesystemet 34. Også vist er tastaturet 46, skriveren 48 og videomonitoren 50 forbundet til passende porter 22, 24 og 28. The entire interrupt driven Amiga computer system 34 with its software is shown schematically in fig. 3. The software comprises a Kickstart and Workbench operating system 36 and various available Amiga application software packages 38, 40, 42, 44 to be run on the multitasking system 34. Also shown are the keyboard 46, printer 48 and video monitor 50 connected to appropriate ports 22 , 24 and 28.
På fig. 4 er et PC-kompatibelt datamaskinsystem 52 vist skjematisk og omfatter PC-maskinvare 53 med en Intel 8088 CPU 54, et PC-operativsystem 56 (dvs. BIOS og MS-DOS) og en valgt PC-applikasjonsprogramvarepakke 5 8 såsom IBM's "Flight Simulator"-program. Da PC-systemet i seg selv ikke kan kjøre flere oppgaver samtidig, kan bare ett applikasjonsprogram kjøres på systemet på én gang. I likhet med Amiga-systemet er PC-systemet avbruddsdrevet. Også de forskjellige periferienheter for PC-kompatibelt system 52 såsom et tastatur 60, en skriver 62 og videomonitor 64 er vist. In fig. 4, a PC compatible computer system 52 is shown schematically and includes PC hardware 53 with an Intel 8088 CPU 54, a PC operating system 56 (ie, BIOS and MS-DOS) and a selected PC application software package 58 such as IBM's "Flight Simulator "-program. As the PC system itself cannot run multiple tasks at the same time, only one application program can be run on the system at a time. Like the Amiga system, the PC system is interrupt driven. Also shown are the various peripherals for PC compatible system 52 such as a keyboard 60, a printer 62 and video monitor 64.
En gjennomgang av informasjonen som finnes i de samtidige søknader og figurer omtalt ovenfor vil gi en ordinær fagmann tilstrekkelig informasjon om Amiga-datamaskinsystemet til å forstå systemets struktur og virkemåte. Derfor vil kjennskap til den detaljerte informasjon være forutsatt for den foreliggende beskrivelses formål og vil således ikke gjentas her. På samme måte forutsettes kjennskap til maskinvare og virkemåte av et PC-datamaskinsystem. A review of the information contained in the concurrent applications and figures discussed above will provide one of ordinary skill in the art with sufficient information about the Amiga computer system to understand the structure and operation of the system. Therefore, knowledge of the detailed information will be assumed for the purpose of the present description and will thus not be repeated here. In the same way, knowledge of hardware and how a PC computer system works is required.
Mens Amiga-datamaskinsystemet har høyytelsesmuligheter, herunder overlegen grafikk og høy behandlingshastighet, kan det ikke frittstående kjøre PC-applikasjonsprogramvare. Ved å utvide Amiga-datamaskinsystemet til å bli kompatibelt med PC-applikasjonsprogramvare, kan ikke bare ekstraprogrammer kjøres på Amiga-datamaskinsystemet, men den høye behandlingsyteevne til Amiga-datamaskinsystemet kan også forbedre PC-appli-kasj onsprogramvaren. While the Amiga computer system has high performance capabilities, including superior graphics and high processing speed, it cannot stand-alone run PC application software. By extending the Amiga computer system to be compatible with PC application software, not only can additional programs run on the Amiga computer system, but the high processing power of the Amiga computer system can also enhance the PC application software.
Fra den ovenstående beskrivelse er det innlysende at det er et stort behov for en fremgangsmåte som gjør at applikasjonsprogramvare fra et normalt ikke-kompatibelt datamaskinsystem kan kjøres på et vertsdatamaskinsystem. From the above description, it is apparent that there is a great need for a method that allows application software from a normally non-compatible computer system to run on a host computer system.
Det er således et formål med oppfinnelsen å skaffe en fremgangsmåte for å tillate normalt ikke-kompatibel applikasjonsprogramvare å utnyttes av et vertsdatamaskinsystem. It is thus an object of the invention to provide a method for allowing normally non-compatible application software to be utilized by a host computer system.
En annen hensikt med oppfinnelsen er å skaffe en fremgangsmåte til høyhastighetskommunikasjon av data mellom den sentrale CPU i et vertsdatamaskinsystem og CPU-en til et datamaskinsystem med en koprosessor og som behandler applikasjonsprogramvare som ikke er kompatibel med vertsdatamaskinsystemet. Another object of the invention is to provide a method for high-speed communication of data between the central CPU of a host computer system and the CPU of a computer system with a coprocessor and which processes application software that is not compatible with the host computer system.
Enda en annen hensikt med oppfinnelsen er å skaffe en fremgangsmåte for å oppnå datakommunikasjon mellom en vertsdatamaskin og et datamaskinsystem med koprosessor på en slik måte at kommunikasjonsprosessen er gjennomsiktig både for vertsdatamaskinsystem-brukeren og datamaskinsystemet med koprosessor. Nok en hensikt med oppfinnelsen er å skaffe en fremgangsmåte til å skape et PC-miljø i et datamaskinsystem med koprosessor for å kjøre PC-applikasjonsprogramvare for bruk i et vertsdatamaskinsystem som normalt ikke er PC-kompatibelt. Yet another purpose of the invention is to provide a method for achieving data communication between a host computer and a computer system with a coprocessor in such a way that the communication process is transparent both to the host computer system user and the computer system with a coprocessor. Another object of the invention is to provide a method for creating a PC environment in a coprocessor computer system for running PC application software for use in a host computer system that is not normally PC compatible.
Andre hensikter og trekk ved oppfinnelsen vil dessuten fremgå med henvisning til den ledsagende tegning og den detaljerte beskrivelse av oppfinnelsen eller kan læres ved å utøve oppfinnelsen. Other purposes and features of the invention will also appear with reference to the accompanying drawing and the detailed description of the invention or can be learned by practicing the invention.
For å oppnå de ovenstående hensikter og i samsvar med oppfinnelsens formål som inneholdt og bredt omtalt heri, skaffes en fremgangsmåte til å utveksle data mellom sentralprosessoren (CPU) i et vertsdatamaskinsystem og sentralprosessoren i et datamaskinsystem med en koprosessor, idet fremgangsmåten benytter en dobbeltport-hukommelse forbundet med data- og adressebussene til CPU-en. Fremgangsmåten omfatter krav om at en av en rekke funksjoner skal utføres i et av de to datamaskinsystemer: å generere med bruk av det anmodede datamaskinsystem parameterdata som representerer den anmodende funksjon, å overføre med bruk av det anmodende datamaskinsystem parameterdataene til dobbeltporthukommelsen, å lagre parameterdataene i dobbeltporthukommelsen og å utstede ved bruk av det anmodende datamaskinsystem et avbrudd til det andre av de to datamaskinsystemer, idet avbruddet angir til det andre av de to datamaskinsystemer den anmodede type funksjon, samt å aksessere med bruk av det andre av de to datamaskinsystemer, parameterdataene i dobbeltporthukommelsen basert på det mottatte avbrudd for å utføre den anmodede funksjon. In order to achieve the above purposes and in accordance with the purposes of the invention as contained and broadly discussed herein, there is provided a method of exchanging data between the central processing unit (CPU) of a host computer system and the central processing unit of a computer system with a coprocessor, the method utilizing a dual-port memory connected to the data and address buses of the CPU. The method includes requiring one of a number of functions to be performed in one of the two computer systems: to generate using the requesting computer system parameter data representing the requesting function, to transfer using the requesting computer system the parameter data to the dual port memory, to store the parameter data in the dual port memory and to issue, using the requesting computer system, an interrupt to the other of the two computer systems, the interrupt indicating to the other of the two computer systems the requested type of function, and to access, using the second of the two computer systems, the parameter data in the dual port memory based on the received interrupt to perform the requested function.
Fremgangsmåten omfatter også trinn for til det anmodende datamaskinsystem ved fullføringen av den anmodede funksjon, å utstede en bekreftelse på den fullførte anmodede funksjon med bruk av det andre av de to datamaskinsystemer og å slette de lagrede data fra dobbeltporthukommelsen ved bruk av det andre av de to datamaskinsystemer. The method also includes the steps of issuing to the requesting computer system upon completion of the requested function an acknowledgment of the completed requested function using the second of the two computer systems and deleting the stored data from the dual port memory using the second of the two computer systems.
Fremgangsmåten omfatter dessuten et trinn for å behandle anmodninger om aksess til dobbeltporthukommelsen gjort av CPU-ene én etter én på en først kommet-, først betjent-basis. I tillegg omfatter fremgangsmåten et trinn for å oversette overføringsdataene utstedt av et av de to datamaskinsystemer til et dataformat som kan benyttes av det annet datamaskinsystem før overføringsdataene lagres i dobbeltporthukommelsen. The method further includes a step of processing requests for access to the dual-ported memory made by the CPUs one by one on a first-come, first-served basis. In addition, the method comprises a step for translating the transfer data issued by one of the two computer systems into a data format that can be used by the other computer system before the transfer data is stored in the dual port memory.
Den ledsagende tegning, som er innbefattet i og utgjør en del av beskrivelsen, viser fremgangsmåten i henhold til oppfinnelsen og tjener sammen med beskrivelsen til å forklare oppfinnelsens hovedtrekk. The accompanying drawing, which is included in and forms part of the description, shows the method according to the invention and serves together with the description to explain the main features of the invention.
Fig. 1 viser et blokkdiagram av maskinvaren til datamaskinen Fig. 1 shows a block diagram of the hardware of the computer
Amiga 2000.Amiga 2000.
Fig. 2 viser et blokkdiagram som illustrerer forskjeller og likheter mellom datatrafikken i maskinvaren til data-maskinene Amiga 1000 og Amiga 2000. Fig. 3 er et systemdiagram for datamaskinen Amiga 2000 inn befattet dens programvare. Fig. 4 er et systemdiagram av en PC-kompatibel datamaskin Fig. 2 shows a block diagram illustrating the differences and similarities between the data traffic in the hardware of the computers Amiga 1000 and Amiga 2000. Fig. 3 is a system diagram for the computer Amiga 2000 in contained its software. Fig. 4 is a system diagram of a PC-compatible computer
innbefattet programvare.included software.
Fig. 5 er et systemdiagram som kan være til hjelp for å Fig. 5 is a system diagram which can be of help to
forklare fremgangsmåten i henhold til oppfinnelsen. explain the method according to the invention.
Fig. 6 er et annet systemdiagram som kan være til hjelp for Fig. 6 is another system diagram which may be of assistance
å forklare fremgangsmåten i henhold til oppfinnelsen. to explain the method according to the invention.
Fig. 7 er et blokkdiagram av fig. 2, som viser det PC-kom patible system på plass. Fig. 8 er et diagram som viser de forskjellige partier av en dobbeltport-RAM benyttet i en foretrukket utførelse av oppfinnelsen. Fig. 9 er et blokkdiagram av detaljene for grensesnitt-maskinvaren vist på fig. 5. Fig. 7 is a block diagram of Fig. 2, which shows the PC com patible system in place. Fig. 8 is a diagram showing the various parts of a dual port RAM used in a preferred embodiment of the invention. Fig. 9 is a block diagram of the details of the interface hardware shown in Fig. 5.
Den foretrukne fremgangsmåte i henhold til oppfinnelsen skal nå beskrives i detalj. The preferred method according to the invention will now be described in detail.
Idet det igjen henvises til tegningen, hvor de samme henvis-ningskarakterer betegner like eller tilsvarende deler på samtlige figurer, viser fig. 5 en oversikt over systemet til å forbedre et vertsdatamaskinsystem for å tillate vertssystemet å være kompatibelt med PC-applikasjonsprogramvare. I det foretrukne system vist på fig. 5 omfatter vertsdatamaskin-systernet 66 grunnversjonen av datamaskinsystemet Amiga vist på fig. 3, dvs. system 34. Forbedringen omfatter utvidelse av Amiga-operativsystemet 68, et koprosessor-datamaskinsystem 70 og grensesnitt-maskinvare 7 2 som skaffer forbindelse mellom prosessorene mellom CPU 12 i vertssystemet (Motorola 68000) og CPU 54 i koprosessor-systemet (Intel 8088). Referring again to the drawing, where the same reference characters denote equal or corresponding parts in all the figures, fig. 5 an overview of the system for enhancing a host computer system to allow the host system to be compatible with PC application software. In the preferred system shown in fig. 5, the host computer system 66 comprises the basic version of the Amiga computer system shown in FIG. 3, i.e. system 34. The improvement includes expansion of the Amiga operating system 68, a co-processor computer system 70 and interface hardware 7 2 which provides inter-processor connectivity between CPU 12 in the host system (Motorola 68000) and CPU 54 in the co-processor system (Intel 8088).
Koprosessorsystemet 7 0 på fig. 5 omfatter maskinvare og programvare som er nødvendig for å frembringe et PC-miljø og omfatter også PC-applikasjonsprogramvare for å kjøres i dette miljø. Spesielt er koprosessor-datamaskinsystemet 70 et avbruddsdrevet datamaskinsystem av PC-typen med en 8088 CPU 54, RAM, ROM og støttebrikker bortsett fra periferienheter og omfatter en PC operativsystemutvidelse 74 omtalt nedenfor. Monokrome og fargegrafikkadaptere er også inkludert i koprosessor-datamaskinsystemet. Resten av koprosessorsystemet er emulert på vertssys.temsiden av grensesnitt-maskinvaren. For spesielt å kjøre et PC-applikasjonsprogram rekonfigurerer Amiga-systemet dataene som genereres ved innmating på tastaturet 46 slik at de fremkommer som PC-tastaturdata for bruk i PC-systemet. Amiga-systemet emulerer også en PC-skriverport på sin egen parallelle port slik at PC-systemet kan benytte skriveren 48 og viser PC-videoutgangssignalene både i svart/hvitt og farge på videomonitoren 50. The coprocessor system 70 in fig. 5 includes hardware and software necessary to create a PC environment and also includes PC application software to run in this environment. In particular, the coprocessor computer system 70 is a PC-type interrupt driven computer system with an 8088 CPU 54, RAM, ROM and support chips other than peripherals and includes a PC operating system extension 74 discussed below. Monochrome and color graphics adapters are also included in the coprocessor computer system. The rest of the coprocessor system is emulated on the host system side by the interface hardware. In particular, to run a PC application program, the Amiga system reconfigures the data generated by input on the keyboard 46 so that it appears as PC keyboard data for use in the PC system. The Amiga system also emulates a PC printer port on its own parallel port so that the PC system can use the printer 48 and display the PC video output signals in both black and white and color on the video monitor 50.
For å lette PC-applikasjonsprogramvarekompatibilitet i verts-datamaskinsysternet 66 benyttes grensesnittmaskinvare 7 2 mellom vertsdatamaskinsystemet og koprosessordatamaskinsystemet. Operativsystemutvidelsene 68 og 74 administrerer og benytter grensesnittmaskinvare 72 for å tillate hurtig interprosessorkommunikasjon mellom CPU 12 i vertsdatamaskinsystemet 66 og CPU 54 i koprosessordatamaskinsystemet 70. Hovedkomponentene av grensesnittmaskinvaren 72 er en dobbeltport-random-aksesshukommelse 7 6 (DPRAM) forbundet med data- og adressebussene til de to CPU-er 12, 54. Hukommelsen er delt på begge CPU-er for å oppnå forbindelse mellom CPU-ene. Andre hukom-melser kan naturligvis benyttes så lenge som aksess kan gjøres fra mer enn en port. En slik hukommelse er for denne beskrivelses formål kalt en dobbeltporthukommelse. Med de to operativsystemutvidelser 68, 74 styres grensesnittmaskinvaren for å gjøre maskinvaren gjennomsiktig for brukeren av vertsdatamaskinsystemet 66 og også gjennomsiktig fra kopro-sessordatamaskinsystemets side av grensesnitt-maskinvaren. To facilitate PC application software compatibility in the host computer system 66, interface hardware 72 is used between the host computer system and the coprocessor computer system. The operating system extensions 68 and 74 manage and utilize interface hardware 72 to allow high-speed interprocessor communication between CPU 12 of the host computer system 66 and CPU 54 of the coprocessor computer system 70. The main components of the interface hardware 72 are a dual port random access memory 76 (DPRAM) connected to the data and address buses of the two CPUs 12, 54. The memory is shared on both CPUs to achieve connection between the CPUs. Other memories can of course be used as long as access can be made from more than one port. Such a memory is, for the purposes of this description, called a dual-port memory. With the two operating system extensions 68, 74, the interface hardware is controlled to make the hardware transparent to the user of the host computer system 66 and also transparent from the side of the co-processor computer system by the interface hardware.
I drift synes hele systemet fra de to CPU-er som et enkelt koprosessorsystem vist på fig. 6. I dette system kan en oppgave anmodet i et av systemene 66 eller 70 naturligvis kommunisere direkte med dets respektive operativsystemer 36, 56. I tillegg kan enhver oppgave anmodet i et operativsystem kommunisere med operativsystemet i det andre datamaskinsystem og anmode om at dette prosessystemet utfører den anmodede oppgave. For eksempel, hvis en spesiell oppgave blir anmodet i vertsdatamaskinens operativsystem 36 og ber om at PC-operativ-systernet 5 6 eksekverer en spesiell funksjon, kan operativsystemet kommunisere med grensesnittmaskinvaren 7 2 via en operativsystemutvidelse 68 og stille opp parameterdata i et spesifisert område av DPRAM i grensesnittmaskinvaren for å utføre den anmodede funksjon. Operativsystemet 3 6 gjør at et avbrudd kan overføres til koprosessorsystemet 70 som angir den anmodede type funksjon til koprosessorsystemet. Det avbruddsdrevne koprosessordatamaskinsystem aksepterer funksjons-anmodningen og utfører det nødvendige program basert på det mottatte avbrudd for å eksekverer funksjonen, herunder aksessering av parameterdataene i DPRAM som er inkludert i grensesnittmaskinvaren 72. Ved fullførelse av eksekveringen returnerer datamaskinsystemet 7 0 en bekreftelse gjennom dets operativsystemutvidelse 74 og grensesnittmaskinvare 7 2 for å levere et avbrudd til operativsystemet 36. Denne bekreftelse underretter operativsystemet 36 om at den anmodede funksjon er fullført. Tilsvarende kan det fra koprosessordatamaskin- systemets side kjøres et PC-applikasjonsprogram, f.eks. utgangsdata som skal vises på en videomonitor. Som omtalt senere blir disse data da plassert på et passende DPRAM-sted, spesielt i video-RAM-delen av DPRAM. Denne virkning av koprosessorsystemet gjør at et avbrudd utstedes til vertsdatamaskinsystemet 66 som gjenkjenner det som et videohukom-melsesavbrudd. I samsvar med det utstedte avbrudd aksesserer deretter vertsdatamaskinsystemet det passende sted i DPRAM 7 6 og overfører videohukommelsen til vertsdatamaskinsystemets videomonitor 50. In operation, the entire system from the two CPUs appears as a single coprocessor system shown in fig. 6. In this system, a task requested in either system 66 or 70 may, of course, communicate directly with its respective operating systems 36, 56. In addition, any task requested in one operating system may communicate with the operating system of the other computer system and request that this processing system perform the requested task. For example, if a particular task is requested in the host computer operating system 36 and requests that the PC operating system 56 execute a particular function, the operating system can communicate with the interface hardware 72 via an operating system extension 68 and set up parameter data in a specified area of DPRAM in the interface hardware to perform the requested function. The operating system 3 6 enables an interruption to be transmitted to the co-processor system 70 which indicates the requested type of function to the co-processor system. The interrupt-driven coprocessor computer system accepts the function request and executes the necessary program based on the received interrupt to execute the function, including accessing the parameter data in the DPRAM included in the interface hardware 72. Upon completion of the execution, the computer system 70 returns an acknowledgment through its operating system extension 74 and interface hardware 7 2 to deliver an interrupt to the operating system 36. This acknowledgment notifies the operating system 36 that the requested function has been completed. Correspondingly, a PC application program can be run from the side of the co-processor computer system, e.g. output data to be displayed on a video monitor. As discussed later, this data is then placed in an appropriate DPRAM location, specifically in the video RAM portion of the DPRAM. This action of the coprocessor system causes an interrupt to be issued to the host computer system 66 which recognizes it as a video memory interrupt. In accordance with the issued interrupt, the host computer system then accesses the appropriate location in DPRAM 7 6 and transfers the video memory to the host computer system's video monitor 50.
Grensesnittet mellom vertsdatamaskinsystemet 66 og koprosessordatamaskinsystemet 7 0 som skaffes av grensesnittmaskinvaren 72, er avbruddsdrevet. Alle funksjoner i datamaskinsystemene blir beordret av avbrudd. Maskinvare i grensesnittmaskinvaren 72 utsteder automatisk maskinvareavbrudd til verts-CPU-en 12 eller koprosessordatamaskinsystemet 70 eller vertsdatamaskinsystemet 66, resp. Dessuten kan programvareapplikasjoner definere nye klasser av hendelser som tillater et av datamaskinsystemene å benytte fasiliteten til det annet og skaper derved et utvidet multiprosessormiljø. The interface between the host computer system 66 and the coprocessor computer system 70 provided by the interface hardware 72 is interrupt driven. All functions of the computer systems are ordered by interrupts. Hardware in the interface hardware 72 automatically issues hardware interrupts to the host CPU 12 or coprocessor computer system 70 or host computer system 66, resp. Also, software applications may define new classes of events that allow one of the computer systems to utilize the facility of the other, thereby creating an extended multiprocessor environment.
Når data skal utveksles mellom de to datamaskinsystemer overføres de via DPRAM 76. Ved å benytte avbrudd og et "låsbyte"-system beskrevet nedenfor for å håndtere kommunika-sjonene kan begge datamaskinsystemene arbeide fullstendig uavhengig av hverandre uten at det går utover ytelsen. When data is to be exchanged between the two computer systems, it is transferred via DPRAM 76. By using interrupts and a "lock byte" system described below to handle the communications, both computer systems can work completely independently of each other without affecting performance.
I en foretrukket utførelse vil forhåndsdefinerte hendelser som finner sted i koprosessordatamaskinsystemet 70 som genererer maskinvareavbrudd som skal behandles av vertsdatamaskinsystemet, omfatte anmodninger fra koprosessordatamaskinsystemet om å aksessere fargevideohukommelsen i DPRAM 76, aksessere svart/hvitt-videodelen av DPRAM, aksessere mono-CRT-registeret, aksessere farge-CRT-registeret, aksessere linjeskriverregisteret, aksessere det serielle dataregister og lese tastaturregisteret. Forhåndsdefinerte hendelser fra vertsdatamaskinsystemet som tvinger avbrudd på koprosessor- datamaskinsystemet, kan i det foretrukne miljø omfatte aksessering av tastaturregisteret, aksessering av det serielle dataregister og aksessering av linjeskriverregisteret. In a preferred embodiment, predefined events occurring in the coprocessor computer system 70 that generate hardware interrupts to be processed by the host computer system will include requests from the coprocessor computer system to access the color video memory in the DPRAM 76, access the black and white video portion of the DPRAM, access the mono CRT register, access the color CRT register, access the line printer register, access the serial data register and read the keyboard register. Predefined events from the host computer system that force an interrupt on the coprocessor computer system may, in the preferred environment, include accessing the keyboard register, accessing the serial data register, and accessing the line printer register.
Hva angår avbruddshendelser definert av spesialprogramvare kan de tilføyes for å tillate programmene på begge sider av grensesnittmaskinvaren 7 2 å kommunisere på enhver ønsket måte. Dette kunne f.eks. innbefatte kode-eksekvering av en av CPU-ene, herunder full aksess til alle systemfunksjonene i hvert operativsystem. CPU-en i koprosessordatamaskinsystemet kunne f.eks. frembringe en oppgave i vertsdatamaskinsystemets fleroppgavemiljø og deretter be oppgaven om å eksekvere bibliotekskall i vertsdatamaskinsystemet. Vertsdatamaskinsystemet kan i sin tur anmode om programvareavbrudd på koprosessordatamaskinsystemet . As for interrupt events defined by special software, they can be added to allow the programs on both sides of the interface hardware 7 2 to communicate in any desired manner. This could e.g. include code execution by one of the CPUs, including full access to all system functions in each operating system. The CPU in the coprocessor computer system could e.g. spawn a task in the host computer system's multitasking environment and then request the task to execute library calls in the host computer system. The host computer system may in turn request a software interrupt on the coprocessor computer system.
Om grunnen til et avbrudd ikke er en av de forhåndsdefinerte hendelser som er omtalt ovenfor, må datamaskinsystemet som kalles opp av det annet datamaskinsystem for å tre i virksom-het, gis informasjon om den riktige funksjon som skal foretas. Disse ikke-forhåndsdefinerte hendelser eller logiske hendelser krever bruk av parameterblokker som omtalt nedenfor. If the reason for an interruption is not one of the predefined events discussed above, the computer system that is called up by the other computer system in order to enter into operation must be given information about the correct function to be performed. These non-predefined events or logical events require the use of parameter blocks as discussed below.
Det skal bemerkes at i de ovenfor beskrevne operasjoner kommer alle funksjonsavbrudd i par, dvs. at det er et initialt avbrudd når en funksjon beordres av en av CPU-ene og et bekreftelsesavbrudd fra den annen når anmodningen er til-fredsstillende. Således kan hver CPU utstede en funksjons-anmodning og deretter fortsette med annen behandling inntil den beordrede funksjon bekreftes. Dette tillater fullstendig asynkron drift av begge systemene. It should be noted that in the operations described above, all function interrupts come in pairs, i.e. there is an initial interrupt when a function is ordered by one of the CPUs and a confirmation interrupt from the other when the request is satisfactory. Thus, each CPU can issue a function request and then continue with other processing until the ordered function is confirmed. This allows completely asynchronous operation of both systems.
Interprosessorkommunikasjon mellom CPU 12 i vertsdatamaskinsystemet 66 og CPU 54 i koprosessordatamaskinsystemet 7 0 lettes av DPRAM forbundet med CPU-bussene i CPU-ene i både vertsdatamaskin- og koprosessordatamaskinsystemene. Plasser-ingen av DPRAM med hensyn til vertsdatamaskinsystemet og koprosessordatamaskinsystemet er vist på fig. 7. Fig. 7 er identisk med fig. 2 bortsett fra at DPRAM 7 6 og koprosessor-systemet 7 0 er forbundet med vertsdatamaskinsystemet 66 som PC-kompatibilitetssystem 78. Spesielt er DPRAM 76 forbundet både med Amiga-bussen og CPU-bussen i koprosessorsystemet. Interprocessor communication between CPU 12 of the host computer system 66 and CPU 54 of the coprocessor computer system 70 is facilitated by DPRAM connected to the CPU buses of the CPUs in both the host computer and coprocessor computer systems. The location of the DPRAM with respect to the host computer system and the coprocessor computer system is shown in FIG. 7. Fig. 7 is identical to fig. 2 except that DPRAM 76 and coprocessor system 70 are connected to host computer system 66 as PC compatibility system 78. In particular, DPRAM 76 is connected to both the Amiga bus and the CPU bus of the coprocessor system.
(Ikke all maskinvare i koprosessorsystemet 70 er vist på fig. 7) . (Not all hardware in the coprocessor system 70 is shown in Fig. 7).
På fig. 8 er detaljer for DPRAM 76 vist sammen med dets forbindelse med verts- og koprosessordatamaskinsystemene og deres CPU-busser. Som vist på fig. 8 omfatter Amiga-bussen en 68000-adressebuss 80 og en 68000-databuss 82, og koprosessorbussen omfatter 8088-adressebussen 84 og 8088-databussen 86. DPRAM 76 er i den foretrukne utførelse en 128K byte hukommelse hvortil data overføres fra et av datamaskinsystemene for bruk i det andre datamaskinsystem. In fig. 8, details of the DPRAM 76 are shown along with its connection to the host and coprocessor computer systems and their CPU buses. As shown in fig. 8, the Amiga bus comprises a 68000 address bus 80 and a 68000 data bus 82, and the coprocessor bus comprises the 8088 address bus 84 and the 8088 data bus 86. In the preferred embodiment, DPRAM 76 is a 128K byte memory into which data is transferred from one of the computer systems for use in the second computer system.
Som også vist på fig. 8 er forskjellige deler av DPRAM reser-vert for bestemte brukstyper. Et generelt RAM-område 88 er et 64K byte-område som benyttes som en generell buffer, fargevideo-RAM 90 er 32K byte-område benyttes for PC-fargevideo-hukommelse og monokromvideo-RAM 9 2 er et 8K byte-område for svart/hvitt PC-videohukommelse. As also shown in fig. 8, different parts of the DPRAM are reserved for certain types of use. A general RAM area 88 is a 64K byte area used as a general buffer, color video RAM 90 is a 32K byte area used for PC color video memory and monochrome video RAM 9 2 is an 8K byte area for black/ white PC video memory.
I DPRAM 76 er et 16K bytes område betegnet som en parameter-RAM 94. Parameter-RAM 94 skaffer to funksjoner. Først benytter både vertsdatamaskinen 7 6 og koprosessordatamaskinen 7 0 en byte av parameter-RAM 94 for å hjelpe de to systemer til vel-lykket å dele DPRAM. Spesielt er byten en "låsbyte" benyttet av hvert av datamaskinsystemene for å signalisere at et nytt parti av den generelle RAM 88 er allokert eller frigitt. En sjekk av denne låsbyte ved et av datamaskinsystemene angir hvorvidt det annet datamaskinsystem allokerer data til et parti av hukommelsen eller frigir et parti av hukommelsen. Hvis dette er tilfellet, vil datamaskinen som forsøker å allokere eller frigi et parti av hukommelsen, vente inntil det andre system har fullført sin allokering eller frigivelse og har således angitt fullførelsen ved å konfigurere låsbyten til den "ubrukte" status. In the DPRAM 76, a 16K byte area is designated as a parameter RAM 94. The parameter RAM 94 provides two functions. First, both the host computer 76 and the coprocessor computer 70 use one byte of parameter RAM 94 to help the two systems successfully share DPRAM. In particular, the byte is a "lock byte" used by each of the computer systems to signal that a new portion of the general purpose RAM 88 has been allocated or released. A check of this lock byte by one of the computer systems indicates whether the other computer system is allocating data to a portion of memory or freeing a portion of memory. If this is the case, the computer attempting to allocate or free a portion of the memory will wait until the other system has completed its allocation or free and thus has indicated its completion by configuring the lock byte to the "unused" state.
Den annen funksjon til parameter RAM 94 er å holde blokker av parametre satt av en datamaskin og som den annen datamaskin leser. F.eks. når vertsdatamaskinsystemet 66 ønsker en handling som ikke er en av de foretrukne hendelser diskutert ovenfor og som automatisk genererer det passende maskinvareavbrudd, f.eks. overføringen av en blokk av data til koprosessorsystemet 70, leses de overførte data inn i og holdes av en generell RAM 88 i DPRAM 7 6 inntil disse data leses ut av denne adressen av koprosessorsystemet 70. Parameter-RAM 94 holder informasjon nødvendig for å utføre overføringen, f.eks. lengde og plassering av dataene som skal overføres og det ønskede bestemmelsessted for disse data i koprosessorsystemet, hvilken informasjon er blitt gitt av datamaskinen som beordrer overføringen, i dette tilfelle vertsdatamaskinen 66. The other function of parameter RAM 94 is to hold blocks of parameters set by one computer and read by the other computer. E.g. when the host computer system 66 desires an action which is not one of the preferred events discussed above and which automatically generates the appropriate hardware interrupt, e.g. the transfer of a block of data to the coprocessor system 70, the transferred data is read into and held by a general RAM 88 in the DPRAM 76 until this data is read out of this address by the coprocessor system 70. Parameter RAM 94 holds information necessary to perform the transfer , e.g. length and location of the data to be transferred and the desired destination of that data in the coprocessor system, which information has been provided by the computer ordering the transfer, in this case the host computer 66.
I DPRAM 7 6 er også innbefattet et endelig 8K byte område betegnet I/O-side-RAM 96. Den benyttes til å utføre forskjellige tjenester som avbilder visse adresseområder i vertsdatamaskinsystemsiden av grensesnittmaskinvaren. På koprosessorsystemsiden av maskinvaren inneholder I/O-side-RAM-området et standardsett av I/O-registersteder for koprosessor-systemet, og som benyttes til å styre de serielle og parallelle porter og PC svart/hvitt og farge CRT-kontroller. Also included in DPRAM 7 6 is a final 8K byte area designated I/O side RAM 96. It is used to perform various services that map to certain address areas in the host computer system side of the interface hardware. On the coprocessor system side of the hardware, the I/O side RAM area contains a standard set of I/O register locations for the coprocessor system, which are used to control the serial and parallel ports and PC black and white and color CRT controls.
I det foretrukne system omtalt her vedrørende et Amiga-datamaskinsystem som et vertsdatamaskinsystem 66 og koprosessor-systemet 7 0 som frembringer et PC-miljø for å kjøre PC-applikasjonsprogramvare, er det anordnet to støttebrikker for å hjelpe til ved interprosessor-kommunikasjonen som oppnås ved deling av DPRAM 76. Detaljene til disse brikkene i grensesnitt-maskinvaren 7 2 er vist på fig. 9. De to brikker, kalt databuss-oversetter ("DBT") 98 og adressebussoversetter ("ABT") 100 er vist på blokkskjemaform forbundet med CPU-bussene og kontrollbussene til både vertsdatamaskinsystemet 66 og det PC-kompatible koprosessordatamaskinsystem 70. In the preferred system discussed herein regarding an Amiga computer system as a host computer system 66 and the coprocessor system 70 which provides a PC environment for running PC application software, two support chips are provided to assist in the interprocessor communication achieved by division of DPRAM 76. The details of these chips in the interface hardware 72 are shown in fig. 9. The two chips, called data bus translator ("DBT") 98 and address bus translator ("ABT") 100 are shown in block diagram form connected to the CPU buses and control buses of both the host computer system 66 and the PC compatible coprocessor computer system 70.
DBT 98 virker som en databuss-sender/mottager for 68000 databussen 82 og for 8088-databussen 86 for å forbinde disse databussene med DPRAM 76. Mer spesielt rommer DBT 98 dataoversetteren 102 som tjener til å forbinde 68000 CPU 12 i vertsdatamaskinsystemet med DPRAM. Spesielt skaffer dataoversetteren tre overføringsmekanismer. For det første skaffes en ordoverføringsoperasjon ved å omordne bytes i samsvar med individuelle prosessorkrav for verts- og koprosessorsystemene. Verts-CPU 12 lagrer den mest signifikante byte ved lavordens-adressene mens koprosessoren CPU 54 lagrer den mest signifikante byte ved en adresse med høyere orden. Dataoversetteren 102 skaffer denne ordoverføringsmekanisme for å gjøre omjus-teringen automatisk hver gang data skrives over grensesnitt-maskinvaren 72..Det vil si at denne omjustering plasserer data i et av datamaskinsystemene i et format som kan benyttet av det andre system. The DBT 98 acts as a data bus transceiver for the 68000 data bus 82 and for the 8088 data bus 86 to connect these data buses to the DPRAM 76. More specifically, the DBT 98 houses the data translator 102 which serves to connect the 68000 CPU 12 in the host computer system to the DPRAM. In particular, the data translator provides three transfer mechanisms. First, a word transfer operation is provided by rearranging the bytes according to individual processor requirements of the host and coprocessor systems. Host CPU 12 stores the most significant byte at the low order addresses while the coprocessor CPU 54 stores the most significant byte at a higher order address. The data translator 102 provides this word transfer mechanism to make the readjustment automatic every time data is written over the interface hardware 72. That is, this readjustment places data in one of the computer systems in a format that can be used by the other system.
For det annet skaffer dataoversetteren 102 byteoverførings-operasjoner som overfører data tvers over grensesnittmaskinvaren uten bytebyttet som skjer i den ovenfor omtalte ord-overf øring. For det tredje kan dataoversetteren 102 også skaffe en grafikkoverføringsmekanisme som benyttes til å skille PC-grafikkdata i diskrete bitplan som beordres av vertsdatamaskinsystemet. Grafikkoverføringsmekanismen redu-serer i betydelig grad mengden av ekstra programvare som er nødvendig for å vise PC-grafikk på videomonitoren 50. Et spesifikt eksempel på grafikkoverføringsmekanismen er vist og omtalt i en artikkel med tittel "The Commodore A2000" på sidene 84-98 i mars 1987-utgaven av tidsskriftet BYTE. Second, the data translator provides 102 byte transfer operations that transfer data across the interface hardware without the byte swapping that occurs in the above-mentioned word transfer. Third, the data translator 102 may also provide a graphics transfer mechanism used to separate PC graphics data into discrete bit planes commanded by the host computer system. The graphics transfer mechanism greatly reduces the amount of additional software required to display PC graphics on the video monitor 50. A specific example of the graphics transfer mechanism is shown and discussed in an article entitled "The Commodore A2000" on pages 84-98 of the March The 1987 edition of the journal BYTE.
Sender/mottageren 104 i DBT 98 virker som en høyhastighets data-sender/mottager. Den benyttes til å styre toveis data-overføringer fra den 8-bits 80 88 databuss 86 til den 16-bits DPRAM-grensesnittdatabuss 106. Auto config 108 på DBT 98 skaffer en selvkonfigurasjonsprotokoll som benyttes til å sikre at periferikortene er installert i systemet ved oppstarting. Auto config 108 konfigurerer automatisk koprosessorsystemet 70 i vertsdatamaskinsystemets 66 lagerliste under systemoppstarting. Endelig virker kontrollen 110 i DBT 98 for å skaffe kontrollsignaler for å drive de forskjellige funksjoner utført i DBT 98. Kontrollen 110 inneholder baseadressekomparatoren, adressedekoderne og andre kretser som støtter grensesnittmaskinvareoperasj onen. The transmitter/receiver 104 in the DBT 98 acts as a high-speed data transmitter/receiver. It is used to control bidirectional data transfers from the 8-bit 80 88 data bus 86 to the 16-bit DPRAM interface data bus 106. Auto config 108 on the DBT 98 provides a self-configuration protocol that is used to ensure that the peripheral cards are installed in the system at boot time . Auto config 108 automatically configures the coprocessor system 70 in the host computer system 66 inventory during system startup. Finally, controller 110 functions in DBT 98 to provide control signals to drive the various functions performed in DBT 98. Controller 110 contains the base address comparator, address decoders, and other circuitry that supports interface hardware operation.
Den annen brikke i grensesnittmaskinvaren 72 er ABT 100. Den skaffer PC-adresseoversettelse, DPRAM-megling, avbrudds-kontrollogikk og tastaturemulering. Vedrørende adresseoversettelse oversetter ABT 100 koprosessorsystemhukommelse- og I/O-adresser til passende steder i lagerlisten for DPRAM 76 vist på fig. 8. Enhver I/O-anmodning gjenkjent av ABT 100 som en I/O-innretning emulert av vertsdatamaskinsystemet 66 utløser oversettelsesfunksjonen. Hvis f.eks. vertsdatamaskinsystemet 66 i den parallelle portemulering og koprosessor-systemet 7 0 forsøker å skrive til skriverdataporten, vil ABT 100 generere adressen for skriverdataportens sted i DPRAM 76. ABT 100 avbilder også forskjellige koprosessorsystemhukommelse s anmodninger til DPRAM 76, f.eks. videohukommelsesaksesser til svart/hvitt video-RAM 92 eller farge video-RAM 90 i DPRAM vist på fig. 8. The other chip in the interface hardware 72 is the ABT 100. It provides PC address translation, DPRAM mediation, interrupt control logic, and keyboard emulation. Regarding address translation, the ABT 100 translates coprocessor system memory and I/O addresses into appropriate locations in the storage list for DPRAM 76 shown in FIG. 8. Any I/O request recognized by the ABT 100 as an I/O device emulated by the host computer system 66 triggers the translation function. If e.g. host computer system 66 in the parallel port emulation and coprocessor system 70 attempts to write to the printer data port, the ABT 100 will generate the address for the printer data port location in the DPRAM 76. The ABT 100 also maps various coprocessor system memory requests to the DPRAM 76, e.g. video memory accesses to black and white video RAM 92 or color video RAM 90 in the DPRAM shown in FIG. 8.
Vedrørende DPRAM-meglingen megler ABT 100 aksessanmodninger til DPRAM 76 mellom vertsdatamaskinsystemet 66 og koprosessor-systemet 70. De to datamaskinsystemer benytter uavhengig genererte klokker, slik at DPRAM-anmodninger må være synkroni-sert for å hindre konflikt. Normalt er disse anmodninger betjent på en først kommet-, først betjent-basis som omtalt ovenfor. ABT 100 skaffer også DPRAM-tidsstyresignaler og DPRAM-oppfriskningssignaler etter som det er nødvendig. Regarding the DPRAM mediation, the ABT 100 mediates access requests to the DPRAM 76 between the host computer system 66 and the coprocessor system 70. The two computer systems use independently generated clocks, so that DPRAM requests must be synchronized to prevent conflict. Normally, these requests are served on a first-come, first-served basis as discussed above. The ABT 100 also provides DPRAM timing signals and DPRAM refresh signals as needed.
Med hensyn til avbruddskontrollogikkfunksjonen til ABT 100 vil ABT 100 når et av datamaskinsystemene plasserer informasjon i DPRAM 7 6 som en forhåndsdefinert hendelse, generere et avbrudd til den andre av datamaskinsystemene etter som det er nødvendig. I skriverporteksempelet beskrevet ovenfor vil et avbrudd til vertsdatamaskinsystemet 66 skje for å informere dette system ved dets lesing av et register i ABT 100 om at skriverdata er blitt oppdatert slik at vertsdatamaskinsystemet 66 vil foreta en passende behandling på disse data. With respect to the interrupt control logic function of the ABT 100, when one of the computer systems places information in the DPRAM 7 6 as a predefined event, the ABT 100 will generate an interrupt to the other of the computer systems as needed. In the printer port example described above, an interrupt to the host computer system 66 will occur to inform this system upon its reading of a register in ABT 100 that printer data has been updated so that the host computer system 66 will perform appropriate processing on this data.
Den siste funksjon til ABT 100 angår tastaturemulering. Da systemet som er omtalt her benytter tastaturet 46 i vertsdatamaskinsystemet for datainnmating til koprosessorsystemet 70, må tastatur-inndataene fra tastaturet 46 oversettes til et tastaturekvivalent for å laste DPRAM 7 6 slik at koprosessorsystemet 7 6 kan benytte denne informasjon. Således er en annen funksjon i ABT 10 0 å serialisere tastaturdataene mottatt fra vertsdatamaskinsystemet 66 til bruk i koprosessorsystemet 70. Spesielt laster Amiga-vertssystemet et ABT-register med en byte av tastaturdata fra tastaturet 46. Således koder ABT dataene serielt for bruk i koprosessorsystemet. The last feature of the ABT 100 concerns keyboard emulation. Since the system discussed here uses the keyboard 46 in the host computer system for data input to the coprocessor system 70, the keyboard input from the keyboard 46 must be translated into a keyboard equivalent to load the DPRAM 76 so that the coprocessor system 76 can use this information. Thus, another function of the ABT 100 is to serialize the keyboard data received from the host computer system 66 for use in the coprocessor system 70. Specifically, the Amiga host system loads an ABT register with one byte of keyboard data from the keyboard 46. Thus, the ABT serially encodes the data for use in the coprocessor system.
PC-kompatibilitetssystemet 7 8 er blitt beskrevet i forbindelse med fig. 9 for vertsdatamaskinsystemet 34. Systemet er forbundet med CPU-bussen i vertsdatamaskinsystemet og tillater at sanne PC-visninger kan blandes med alle visninger som er tilgjengelige på vertsdatamaskinsystemet selv. PC-video-informasjonen kan vises i standardvinduer i fleroppgave-vertsdatamaskinsystemet. I tillegg kan alle PC-video-moder fås, dvs. svart/hvitt og fargetekst og fargegrafikk, som kan vises samtidig i forskjellige vinduer på vertsvideomonitoren 50. The PC compatibility system 78 has been described in connection with fig. 9 for the host computer system 34. The system is connected to the CPU bus of the host computer system and allows true PC displays to be mixed with any displays available on the host computer system itself. The PC video information can be displayed in standard windows in the multitasking host computer system. In addition, all PC video modes are available, i.e. black and white and color text and color graphics, which can be displayed simultaneously in different windows on the host video monitor 50.
I det ovenfor beskrevne system avbildes videodelen av kopro-sessorsystemhukommelsen direkte på monokrom video-RAM 92 eller fargevideo-RAM 9 0 i DPRAM 76. Denne skriving er en forutbe-stemt hendelse og utføres av koprosessorsystemet BIOS skjerm-I/O-rutiner. Således bevirker koprosessorsystemets handling overføringen av et maskinvaregenerert avbruddssignal til vertsdatamaskinsystemet som informerer datamaskinsystemet om at det har vært aktivitet i videohukommelsespartiet, dvs. partiet 90 eller 92 i DPRAM 76, og vertssystemet virker følgelig på disse data. Da denne avbildning er gjennomsiktig for koprosessorsystemet 70, er videodisplayet fullstendig kompatibelt både med applikasjoner som benytter ROM BIOS i koprosessorsystemet og applikasjoner som arbeider direkte med videohukommelsen i dette system. Imens kan programvare som kjøres på vertssystemet 66, benytte videodataene som er avbildet direkte inn i DPRAM 7 6 for å frembringe vinduer på Amiga-videomonitoren 50 som trofast emulerer video generert i koprosessorsystemet 70. Ved å benytte to forskjellige partier av DPRAM til videohukommelse, dvs. monokrom video-RAM 92 og fargevideo-RAM 90, kan både svart/hvitt- og fargegrafikk emuleres samtidig og vises på videomonitoren. In the system described above, the video portion of the coprocessor system memory is mapped directly to monochrome video RAM 92 or color video RAM 90 in DPRAM 76. This writing is a predetermined event and is performed by the coprocessor system BIOS display I/O routines. Thus, the action of the coprocessor system causes the transmission of a hardware-generated interrupt signal to the host computer system which informs the computer system that there has been activity in the video memory lot, i.e., lot 90 or 92 of the DPRAM 76, and the host system accordingly acts on this data. Since this mapping is transparent to the coprocessor system 70, the video display is fully compatible both with applications that use the ROM BIOS in the coprocessor system and applications that work directly with the video memory in this system. Meanwhile, software running on the host system 66 can use the video data mapped directly into DPRAM 7 6 to produce windows on the Amiga video monitor 50 that faithfully emulate video generated in the coprocessor system 70. By using two different lots of DPRAM for video memory, ie .monochrome video RAM 92 and color video RAM 90, both black and white and color graphics can be emulated simultaneously and displayed on the video monitor.
I tillegg til videodisplayforbedringen som skaffes av systemet på grunn av grensesnittmaskinvaren og støtteprogramvaren, kan vertssystemets tastatur 46 og serielle og parallelle porter 24, 26 benyttes av PC koprosessorsystemet som omtalt ovenfor. In addition to the video display enhancement provided by the system due to the interface hardware and supporting software, the host system keyboard 46 and serial and parallel ports 24, 26 can be used by the PC coprocessor system as discussed above.
For ytterligere å assistere ved forklaring av fremgangsmåtenTo further assist in explaining the procedure
i henhold til den foreliggende oppfinnelsen skal det gis to spesifikke eksempler på typiske utvekslinger mellom CPU-ene til verts- og koprosessorsystemene. De er bare gitt for å illustrere og skal ikke anses å begrense den påståtte oppfinnelse . in accordance with the present invention, two specific examples of typical exchanges between the CPUs of the host and coprocessor systems shall be provided. They are provided for illustration purposes only and shall not be construed as limiting the claimed invention.
I det første eksempel er fremgangsmåten til å utveksle et svart/hvitt- eller fargedisplay fra koprosessorsystemet 70 til videomonitoren 50 på Amiga-vertssystemet 66 omtalt. I dette eksempel kjøres et PC-"Flight Simulator"-program på koprosessorsystemet og som skal vises i videomonitoren på vertssystemet. Når "Flight Simulator"-programmet leverer data som skal leses på en videomonitor, skriver koprosessorsystemet ved bruk av sine BIOS-skjerm-I/O-rutiner som omtalt ovenfor, informasjonen inn i den monokrome videohukommelse 92 eller inn i fargevideohukommelsen 90 i DPRAM 76 som bestemt av de spesifikke utgangsdata. In the first example, the method of exchanging a black and white or color display from the coprocessor system 70 to the video monitor 50 on the Amiga host system 66 is discussed. In this example, a PC "Flight Simulator" program is running on the coprocessor system and is to be displayed in the video monitor on the host system. When the "Flight Simulator" program supplies data to be read on a video monitor, the coprocessor system, using its BIOS display I/O routines as discussed above, writes the information into the monochrome video memory 92 or into the color video memory 90 of the DPRAM 76 as determined by the specific output data.
Datamaskinsystemet som beordrer denne operasjon, dvs. koprosessorsystemet 70, har derfor anmodet en funksjon om å utføres og har overført dataene til DPRAM. Da funksjonen ønsket av den anmodede datamaskin er en av de forhåndsbestemte hendelser, utstedes et maskinvareavbrudd til det annet av de to datamaskinsystemer, dvs. vertsdatamaskinsystemet 66 i dette eksempel. Dette avbrudd angir for vertsdatamaskinsystemet den anmodede funksjonstype, dvs. en videohukommelsesanmodning. På dette tidspunkt aksesserer vertsdatamaskinsystemet som virker på de informative avbrudd, dataene i det passende video-RAM-parti i DPRAM 7 6 og virker på dataene inneholdt i dette. For eksempel oppdaterer vertssystemet PC-videodisplayet vist på vertsdatamaskinsystemets videomonitor 50. Vertssystemet vil ved fullføring av den anmodede funksjon informere det anmodede datamaskinsystem (i dette tilfelle koprosessorsystemet 70) ved å bekrefte at den ønskede funksjon er fullført. Denne bekreftelse initierer slettingen av dataene som midlertidig er lagret på DPRAM. The computer system ordering this operation, i.e. the coprocessor system 70, has therefore requested a function to be performed and has transferred the data to the DPRAM. Since the function desired by the requested computer is one of the predetermined events, a hardware interrupt is issued to the other of the two computer systems, i.e., the host computer system 66 in this example. This interrupt indicates to the host computer system the requested function type, i.e. a video memory request. At this time, the host computer system acting on the informative interrupts accesses the data in the appropriate video RAM portion of DPRAM 7 6 and acts on the data contained therein. For example, the host system updates the PC video display shown on the host computer system's video monitor 50. Upon completion of the requested function, the host system will inform the requested computer system (in this case, the coprocessor system 70) by confirming that the requested function has been completed. This confirmation initiates the deletion of the data temporarily stored on DPRAM.
Et eksempel på interprosessorkommunikasjon ved bruk av parameter-RAM 94 i DPRAM 7 6 er som følger. I dette eksempel er det anmodede datamaskinsystem vertsdatamaskinsystemet som ønsker å skrive en blokk av data til det spesifikke område av hukommelsen i koprosessorsystemet 70. Også i dette tilfelle er den spesifikke funksjon en "peek/poke"-hukommelsesfunksjon. Når peek/poke-funksjonen beordres i vertsdatamaskinsystemet 66, genererer vertsdatamaskinsystemet data som representerer den ønskede funksjon og ville i dette tilfelle beordre allokering av hukommelse i parameter-RAM 94 og i den generelle RAM 88 i DPRAM 76. Deretter leverer vertssystemet data for hvordan funksjonen skal utføres til DPRAM 76. Spesielt ville dataene omfatte den adresse i koprosessorsystemet som skal skrives, hvor mange databyter som skal overføres, og hvor i det generelle RAM de aktuelle data lagres. De aktuelle data blir deretter overført fra vertssystemet til det angitte parti av den generelle RAM 88. Disse data blir temporært lagret i An example of interprocessor communication using parameter RAM 94 in DPRAM 7 6 is as follows. In this example, the requested computer system is the host computer system that wishes to write a block of data to the specific area of memory in the coprocessor system 70. Also in this case, the specific function is a "peek/poke" memory function. When the peek/poke function is commanded in the host computer system 66, the host computer system generates data representing the desired function and in this case would command the allocation of memory in the parameter RAM 94 and in the general purpose RAM 88 in the DPRAM 76. The host system then provides data for how the function is to be executed to DPRAM 76. In particular, the data would include the address in the coprocessor system to be written, how many data bytes are to be transferred, and where in the general RAM the data in question is stored. The relevant data is then transferred from the host system to the indicated portion of the general RAM 88. This data is temporarily stored in
DPRAM.DPRAM.
På dette tidspunkt kaller vertssystemet peek/poke-hukommelses-funksjonen og utsteder et avbrudd til det avbruddsdrevne koprosessorsystem 70. Når avbruddet mottas av koprosessor-systemet, vil systemet informeres om at vertssystemet ønsker overføring av data til koprosessorsystemet, og koprosessor-systemet trer derfor i funksjon for å undersøke parameter-RAM 94 med hensyn på data om den spesifikke funksjon som ønskes. Ved bruk av disse data finner koprosessorsystemet data i og overfører dem fra den generelle RAM 88 til det bestemte endelige sted i koprosessorsystemet. Etter at dataene er blitt overført, genererer og overfører koprosessoren en bekreftelse av fullføringen til vertssystemet. På dette tidspunkt blir hukommelsen i DPRAM 7 6 allokert for den spesifikke funksjon slettet, slik at hukommelsen vil være tilgjengelig for andre oppgaver. At this point, the host system calls the peek/poke memory function and issues an interrupt to the interrupt-driven coprocessor system 70. When the interrupt is received by the coprocessor system, the system will be informed that the host system wishes to transfer data to the coprocessor system, and the coprocessor system will therefore step into function to examine parameter RAM 94 for data about the specific function desired. Using this data, the coprocessor system finds data in and transfers it from the general RAM 88 to the specified final location in the coprocessor system. After the data has been transferred, the coprocessor generates and transmits a confirmation of completion to the host system. At this point, the memory in DPRAM 7 6 allocated for the specific function is deleted, so that the memory will be available for other tasks.
I det ovenfor beskrevne system skaffes en fremgangsmåte til å tillate vertsdatamaskinsystemet med høy ytelse å benytte PC-applikasjonsprogramvare etter ønske. Således kan brukeren av vertssystemet nyte det tilgjengelige bibliotek av PC-applika-sjonsprogrammer som ellers ville være utilgjengelig. Dessuten kan benytteren behandle PC-programmene i et fleroppgavemiljø ved bruk av forbedret grafikk som er muliggjort av vertssystemet . In the above-described system, a method is provided for allowing the host computer system with high performance to use PC application software as desired. Thus, the user of the host system can enjoy the available library of PC application programs that would otherwise be unavailable. In addition, the user can process the PC programs in a multitasking environment using enhanced graphics enabled by the host system.
Det vil være innlysende for fagfolk at forskjellige modifikasjoner og variasjoner kan gjøres i fremgangsmåten for å utveksle data mellom CPU i vertsdatamaskinsystemet og CPU i et datamaskinsystem med koprosessor i henhold til den foreliggende oppfinnelse uten å avvike fra rammen eller ånden for oppfinnelsen. Det er således ment at den foreliggende oppfinnelse dekker modifikasjoner og variasjoner av denne oppfinnelse, gitt at de faller innenfor rammen av de til-siktede krav og deres ekvivalenter. It will be apparent to those skilled in the art that various modifications and variations can be made in the method of exchanging data between the CPU of the host computer system and the CPU of a computer system with coprocessor according to the present invention without departing from the scope or spirit of the invention. It is thus intended that the present invention covers modifications and variations of this invention, given that they fall within the scope of the intended claims and their equivalents.
Claims (9)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4153387A | 1987-04-23 | 1987-04-23 | |
PCT/US1988/001166 WO1988008564A1 (en) | 1987-04-23 | 1988-04-12 | A method of communicating data between the cpu of a host computer system and the cpu of a co-processor computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
NO885742D0 NO885742D0 (en) | 1988-12-23 |
NO885742L true NO885742L (en) | 1988-12-23 |
Family
ID=26718249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO885742A NO885742L (en) | 1987-04-23 | 1988-12-23 | PROCESS FOR AA EXCHANGE OF DATA BETWEEN THE CENTRAL PROCESSOR IN A HOST COMPUTER SYSTEM AND THE CENTRAL PROCESSOR IN A COProcessor COMPUTER SYSTEM. |
Country Status (1)
Country | Link |
---|---|
NO (1) | NO885742L (en) |
-
1988
- 1988-12-23 NO NO885742A patent/NO885742L/en unknown
Also Published As
Publication number | Publication date |
---|---|
NO885742D0 (en) | 1988-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2010591C (en) | Kernels, description tables and device drivers | |
US5918039A (en) | Method and apparatus for display of windowing application programs on a terminal | |
US8079021B2 (en) | Method and apparatus for display of windowing application programs on a terminal | |
US4920481A (en) | Emulation with display update trapping | |
CN103034524B (en) | Half virtualized virtual GPU | |
US5935228A (en) | Method for automatically enabling peripheral devices and a storage medium for storing automatic enable program for peripheral devices | |
CA1116260A (en) | Method and means for path independent device reservation and reconnection in a multi-cpu and shared device access system | |
JP3659062B2 (en) | Computer system | |
US6836885B1 (en) | Method and apparatus for display of windowing application programs on a terminal | |
EP0752646B1 (en) | Data access implementation of device driver interface | |
US5987565A (en) | Method and apparatus for virtual disk simulation | |
US20080077917A1 (en) | Virtual machine system and a method for sharing a graphics card amongst virtual machines | |
US5062042A (en) | System for managing data which is accessible by file address or disk address via a disk track map | |
JPH07122863B2 (en) | Data processing system including device driver having general-purpose operating system interface | |
JPH09179812A (en) | Information processing system and its control method | |
US5146605A (en) | Direct control facility for multiprocessor network | |
EP0205943A2 (en) | Composite data-processing system using multiple standalone processing systems | |
JPH05257657A (en) | Power-on time sequence device | |
WO1988008564A1 (en) | A method of communicating data between the cpu of a host computer system and the cpu of a co-processor computer system | |
US6295587B1 (en) | Method and apparatus for multiple disk drive access in a multi-processor/multi-disk drive system | |
NO885742L (en) | PROCESS FOR AA EXCHANGE OF DATA BETWEEN THE CENTRAL PROCESSOR IN A HOST COMPUTER SYSTEM AND THE CENTRAL PROCESSOR IN A COProcessor COMPUTER SYSTEM. | |
EP2345967B1 (en) | Displaying windowing application programs on a terminal | |
EP0316251B1 (en) | Direct control facility for multiprocessor network | |
US20240176640A1 (en) | Method and apparatus for managing memory | |
JPS6336012B2 (en) |