NL8502642A - Raster-beeld-processor. - Google Patents

Raster-beeld-processor. Download PDF

Info

Publication number
NL8502642A
NL8502642A NL8502642A NL8502642A NL8502642A NL 8502642 A NL8502642 A NL 8502642A NL 8502642 A NL8502642 A NL 8502642A NL 8502642 A NL8502642 A NL 8502642A NL 8502642 A NL8502642 A NL 8502642A
Authority
NL
Netherlands
Prior art keywords
raster image
bit
bus
interface
raster
Prior art date
Application number
NL8502642A
Other languages
English (en)
Original Assignee
Oce Nederland Bv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oce Nederland Bv filed Critical Oce Nederland Bv
Priority to NL8502642A priority Critical patent/NL8502642A/nl
Publication of NL8502642A publication Critical patent/NL8502642A/nl
Priority to DE8686201581T priority patent/DE3680433D1/de
Priority to AT86201581T priority patent/ATE65626T1/de
Priority to EP86201581A priority patent/EP0217448B1/en
Priority to US06/912,544 priority patent/US4891768A/en
Priority to JP61227924A priority patent/JPS6274665A/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster

Description

r i i
Uitvinders: T.H.M. Willems F.H.J. Tunnissen
Océ-Nederland B.V., te Venlo Raster-beeld-processor
De uitvinding betreft een raster-beeld-processor voor het vullen en uitlezen van een raster-beeld-geheugen volgens de aanhef van conclusie 1.
Dergelijke systemen zijn bekend en worden toegepast bij printers welke met serieel aangeboden data lijnsgewijs een volledige pagina kun-5 nen afdrukken. Een typische vertegenwoordiger van dit soort printers is een laserprinter, waarbij een lichtstraal beeldmatig wordt gemoduleerd en waarbij deze gemoduleerde lichtstraal met behulp van een poly-goonspiegel lijnsgewijs wordt afgebogen over een lichtgevoelig oppervlak, zoals een zinkoxide-binderlaag welke op een flexibele band 10 is aangebracht. Op bekende wijze kan hierop een latent beeld worden geschreven met behulp van de gemoduleerde lichtstraal. Dit latente beeld kan op bekende wijze worden ontwikkeld en overgedragen op een ontvangstmateriaal zoals een blad papier.
De grafische data kunnen bijvoorbeeld verkregen zijn door met 15 behulp van een scaninrichting een beeld af te tasten en de gegevens, al of niet via een coderingssysteem, op te slaan in een geheugen.
De gegevens voor een af te drukken pagina worden eerst, bijvoorbeeld met behulp van een grafisch werkstation, bewerkt tot een uiteindelijk gewenste lay-out welke tekst- en grafische data kan bevatten.
20 Wanneer een dergelijke samengestelde pagina moet worden afgedrukt, worden de al of niet gedecodeerde grafische informatie en de gecodeerde font-data, aan een front-end systeem toegevoerd met informatie omtrent hoogte, breedte en uiteindelijk gewenste plaats. Bovendien wordt aan het front-end de bit-map informatie van de af te drukken karaktertekens 25 toegevoerd.
Nadat in het front-end al deze data in een geheugen zijn opgeslagen is het de taak van de raster-beeld-processor deze data op de juiste plaats in een pagina-groot geheugen (bit-map geheugen) te zetten, en vervolgens dit pagina-geheugen serieel uit te lezen en de data aan de 30 modulator van een laserprinter toe te voeren.
Omdat de huidige laserprinters in staat zijn om met grote snelheid en een hoog oplossend vermogen pagina's af te drukken, zal de raster- ©502 642 2 • i * beeld-processor in staat moeten zijn de data voor deze pagina's met grote snelheid te verwerken en aan de printer aan te bieden.
Het doel van de uitvinding is dan ook om een raster-beeld-prooessor te verschaffen die deze gegevens met grote snelheid kan verwerken.
5 Dit doel wordt volgens de uitvinding bereikt in een raster-beeld- processor volgens de aanhef door het kenmerkende gedeelte van conclusie 1.
Hiermee wordt bereikt dat het vullen en het uitlezen van het raster-beeld-geheugen real time kan geschieden.
10 Deze en andere voordelen zullen duidelijk worden gemaakt aan de hand van de hierna volgende beschrijving en met behulp van figuren, waarvan
Fig. 1 een schematische weergave van een front-end systeem met een raster-beeld processor volgens de uitvinding is, 15 Fig. 2 de processen weergeeft die door de raster-beeld-processor kunnen worden uitgevoerd,
Fig. 3 een schematische weergave van een raster-beeld-processor is,
Fig. 4 een schematische weergave van een VME-bus interface is,
Fig. 5 een schematische weergave van een laser scan module interface is, 20 Fig. 6 een schematische weergave van een Central Processing Unit van de raster-beeld-processor is,
Fig. 7 een schematische weergave van een raster-beeld-bus interface is, Fig. 8 een schematische weergave van een VME-master interface van het VME-bus interface is, 25 Fig. 9 de plaatsing van een karakter in het bit-map geheugen voorstelt, Fig. 10 de resultaten van een aantal mogelijke bewerkingen in het bitmap geheugen weergeeft, en
Fig. 11 een schematische weergave van een raster-beeld-geheugen is.
8502 642 i fc 3
Fig. 1 is een schematische weergave van een front-end systeem.
Hierin is een front-end controller 10 (FEC) met een bedieningsconsole 19 verbonden en tevens met het besturingssysteem van een printer 20.
Printer 20 is een raster output scanner, waarbij een lichtstraal 5 beeldmatig wordt gemoduleerd en lijnsgewijs over het oppervlak van een lichtgevoelig element wordt afgebogen. Het lichtgevoelig element wordt loodrecht op de afbuigriehting van de lichtstraal voortbewogen teneinde een totaal beeld rastervormig te kunnen schrijven. Een voorbeeld van een rasteroutput scanner is een laserprinter, waarbij een 10 gemoduleerde laserstraal met behulp van een roterende meervlaksspiegel over het oppervlak van een opgeladen fotogeleider wordt voortbewogen.
De fotogeleider wordt hierbij beeldmatig uitbelicht, en het verkregen ladingsbeeld kan op bekende wijze met toner worden ontwikkeld, vervolgens overgedragen op een ontvangstblad en met warmte gefixeerd. De 15 front-end controller 10 bevat een 16-bits microprocessorsysteem met een 68000 microprocessor van Motorola en fungeert in samenwerking met lokale ROM en een deel van een random-acces-geheugen 12 (RAM) als besturingssyteem voor het front-end. In een font-leesgeheugen 13 zijn de bitpatronen van een aantal lettertypen opgeslagen. Het front-end 20 kan via een I/O processor 11, welke eveneens een 16-bits microprocessorsysteem met een 68000 microprocessor van Motorola bevat, met een schijfgeheugen, werkstation, computer en/of clustercontroller worden verbonden. De FEC 10, 1/0 processor 11, RAM 12 en font-geheugen 13 zijn met elkaar verbonden via een standaard VME-bus 14. Het font-25 geheugen 13 kan ook als RAM worden uitgevoerd of deel uitmaken van RAM12. Vanuit een schijvengeheugen of floppy-diskgeheugen worden de bitpatronen van de fonts dan in dit RAM geladen.
Een raster image processor 15 (RIP) is eveneens met de VME-bus 14 verbonden. Bovendien is de raster image processor 15 via een raster 30 image bus 17 (RI-bus) met een pagina-groot bit-map geheugen 16, ook raster image memory genoemd (RIM), verbonden. De RIP 15 dient voor het beeldmatig vullen van het bit-map geheugen 16 (RIM) met lettertekens die uit het font-geheugen 13 worden opgehaald en op de juiste plaats ' in het bit-map geheugen 16 worden weggezet. Bovendien kan de RIP 15 35 grafische informatie uit geheugen 12 ophalen en eveneens op de gewenste plaatsen in het bit-map geheugen 16 wegzetten. Indien het bit-map geheugen 16 is gevuld kan dit weer via de RIP 15 worden uitge 8502 642 " i « 4 lezen, waarbij de uitgelezen gegevens als een seriële pixel-bit stroom via lijn 18 aan de modulator van de laserprinter worden toegevoerd.
Het beeld dat op de fotogeleider wordt geschreven wordt opgebouwd uit pixels van 0,05 x 0,05 mm, zodat voor het afdrukken van een A4 5 formaat zwart/wit beeld circa 4000 x 6000 pixels nodig zijn. Dientengevolge is bit-map geheugen 16 circa 24 Megabit of 3 Megabyte groot. Bij het uitlezen van het bit-map geheugen 16 is de pixel-bit-rate naar de modulator van de laserprinter via lijn 18, circa 25 Megapixels/sec., zodat een pagina van A4 formaat in circa 1 sec. kan 10 worden geprint.
Alle gegevens omtrent een af te drukken pagina worden via de 1/0 processor 11 vanaf bijvoorbeeld een werkstation en onder besturing van de FEC 10, in het RAM 12 opgeslagen.
Hiertoe staan verschillende mogelijkheden ter beschikking.
15 Uitgaande van bijvoorbeeld een A4 pagina die in de "portretmode" moet worden geprint, worden circa 4000 deeltabellen gemaakt, overeenkomende met de circa 4000 scanlijnen die nodig zijn om een pagina te schrijven. In elke deeltabel worden lettercodes van die lettertekens of grafische tekens opgeslagen die op een bepaalde scanlijn hun startpunt 20 hebben. Elke lettercode bevat bovendien gegevens omtrent de X-positie welke het teken op de scanlijn inneemt, gegevens omtrent het font-type alsmede gegevens omtrent de hoogte en de breedte van een bepaald teken. Ook bevat de lettercode gegevens omtrent een basisadres in het font-geheugen 13, waar de bit-representatie van dit teken in 16-bits 25 woorden is opgeslagen. De verzameling van de aldus gevormde lijsten wordt de lijst der primitieven genoemd.
Zijn de gegevens omtrent een af te drukken pagina aldus in het RAM 12 opgeslagen, dan kan gestart worden met het vullen van het bitmap geheugen 16. Daartoe worden de lettercodes uit het RAM 12 één voor 30 een door de RIP 15 opgehaald, en met de bijbehorende bit-representatie uit het font-geheugen 13, geëxpandeerd en op de juiste X en ï-positie in het bit-map geheugen 16 weggezet. Op overeenkomstige wijze worden alle tekens een voor een afgewerkt totdat het bit-map geheugen 16 geheel is gevuld met de pixel-representatie van de af te drukken 35 pagina.
Het is niet noodzakelijk deze deellijsten te vormen. De gegevens omtrent een af te drukken pagina kunnen ook in een willekeurige 8502 64 2 * * 5 volgorde in het RAM 12 worden opgeslagen. Bij het vullen van het bit-mapgeheugen 16 wordt het RAM 12, waarin de primitieven in een willekeurige volgorde zijn geplaatst, achter elkaar uitgelezen, geëxpandeerd en op de bijbehorende plaatsen in het bit-map geheugen 16 geplaatst.
5 Volgens weer een andere mogelijkheid worden alle op een pagina voorkomende tekens slechts één keer opgeslagen en voorzien van gegevens omtrent de verschillende posities die elk teken op de pagina inneemt.
Zo worden de gegevens omtrent een veel voorkomend teken, zoals bijvoorbeeld de letter e, slechts één keer opgeslagen in het RAM12 en 10 alle posities die deze letter op de pagina inneemt worden in een aparte tabel toegevoegd.
Gewoonlijk worden eerst de grafische tekens die in het RAM12 of font-geheugen 13 zijn opgeslagen in het bit-map geheugen 16 gezet en daarna pas de lettertekens.
15 De Raster Image Processor
In Fig. 2 zijn de processen weergegeven die door de RIP 15 kunnen worden uitgevoerd. Na het opstarten van het systeem (stap 24) wordt de RIP 15 ge'initialiseerd (stap 25)(lNIT-commando) door een systeemreset of een INIT-commando van de front-end controller 10, waarna het 20 "zelftest** proces (stap 26) wordt gestart. Deze "zelftest" omvat het testen van verschillende RIP functies en bit-map geheugen (RIM) functies. De RIP 15 mag geen toegang tot de VME-bus 14 hebben gedurende de zelftestprocedure, want de FEC 10 heeft de VME-bus 14 nodig voor het testen van het RAM 12 en font-geheugen 13. Wanneer de RIP 15 het 25 "zelftest" programma met succes heeft uitgevoerd, wordt een interrupt signaal aan de FEC 10 doorgegeven, en de RIP 15 gaat in de wachtstand (stap 27). Wanneer het zelftestprogramma een fout heeft gedetecteerd gaat de RIP 15 ook in de wachtstand (stand 27), maar er wordt geen interrupt naar de FEC 10 gegenereerd. Op deze wijze weet de front-end 30 controller 10 dat er een fout in de RIP 15 "zelftest" is geconstateerd. Een fout wordt tevens door het oplichten van een LED aan de bedienaar gesignaleerd.
Op een "RIP-diagnose" commando van de FEC 10 naar de RIP 15, start het RIP-diagnose proces. De RIP 15 voert een aantal interne 35 testen uit en ook een aantal testen op het RIM 16. De resultaten van deze testen worden opgeslagen in het RAM 12 en kunnen worden doorgegeven aan, en zichtbaar gemaakt op bedieningsconsole 19« Het RIP- 8502 64 2 * $ ί 6 diagnose proces test ook de VME-interfaces. Het RIP-diagnose proces heeft een meer uitgebreid karakter, terwijl het zelftest proces een meer functionele hardwaretest uitvoert. Na het beëindigen van het RIP-diagnose proces, slaat de RIP 15 status informatie op in het RAM 12, 5 genereert een interrupt naar de FEC 10 en geeft de VME-bus 14 vrij.
Nadat de RIP 15 een "vul bitmap" commando ontvangt van de FEC 10, controleert de RIP 15 het datatransport op de VME-bus 14. De RIP 15 krijgt zo toegang tot het RAM 12, welke de primitieven bevat van de pagina die geprint moet worden.
10 De RIP 15 expandeert de primitievenlijst met behulp van de pixelrepresentaties van de fonts en zet deze weg in het bit-map geheugen 16 (RIM). De RIP 15 heeft toegang tot het RIM 16 via de RI-bus 17. Het RIM 16 bevat bovendien modificatie logica, welke de RIP 15 ondersteunt bij het uitvoeren van verschillende rekenkundige 15 bewerkingen op data voor het bit-map geheugen 16, zoals bijvoorbeeld AND-, OR- en INVERT-operaties. Na het vullen van de bit-map (stap 28), slaat de RIP 15 status informatie op in het RAM 12, genereert een interrupt naar de FEC 10 en geeft de VME-bus 14 vrij.
De FEC 10 genereert vervolgens een "lees bitmap"-commando en de 20 RIP 15 zal wachten op een pagina-synchronisatie signaal dat van de laserprinter afkomstig is via een besturingsinterface. Na deze pagina-synchronisatie start de RIP 15 met het uitlezen van het RIM 16 (stap 29) en genereert een seriële pixel-bit-stroom welke via een video interface aan de modulator van de laserprinter wordt toegevoerd. Na 25 het beëindigen van het bit-map leesproces (stap 29) slaat de RIP 15 weer status gegevens op in het RAM 12, genereert een interrupt naar de FEC 10 en geeft vervolgens de VME-bus 14 vrij.
De RIP 15 (Fig. 3) is opgebouwd rond een intern bussysteem, de raster image processor bus 46 (RIP-bus), welke een synchrone bus is 30 en ingericht om uitsluitend 16-bits woorden te transporteren. De RIP-bus 46 bevat datalijnen 47, adres- en controlelijnen 48 en con-ditielijnen 49. Via een VME-bus interface 41 is de RIP-bus met de VME-bus 14 verbonden en via een RI-bus interface 45 met de RI-bus 17« Deze RI-bus 17 bevat onder andere data-en adreslijnen 58, een busy-35 lijn 57» een RI-bus-address-available lijn 56, een klok-lijn 54 en modificatielijnen. Bovendien is de RIP-bus 46 verbonden met een laserscanmodule interface 44 (LSM-interface) en de eigenlijke Central 850 2 642 • * 7
Processing Unit 43 (CPU) van de RIP 15· Het laserscanmodule LSM-interface 44 is verbonden met lijnen afkomstig van de printer, zoals een "start of scan" lijn 52 (SOS), waarover een synchronisatie signaal wordt aangevoerd om het begin van een te printen lijn aan te geven, 5 een burst-lijn 53» waarover een signaal dat overeenkomt met de gewenste pixelfrequentie wordt toegevoerd en een videolijn 18, waarover de seriële pixel-bit-stroom bij het uitlezen van het bit-map geheugen 16 aan de modulator van de laserprinter wordt toegevoerd. De adres- en controlelijnen 48 en de conditielijnen 49 zijn ook nog met 10 een pagina-synchronisatie interface 42 verbonden. Over lijn 50 wordt een "page-available" signaal (PAV) aan de besturingsinrichting van de printer toegevoerd, dat aangeeft dat een pagina in het bit-map geheugen 16 volledig is geformateerd en dat de RIP 15 met een "start-of-page" (SOP) via lijn 51» afkomstig van de 15 besturingsinrichting van de printer, aan de uitlezing van het bit-map geheugen 16 kan beginnen.
VME-bus interface
In Fig. 4 is de VME-bus interface 41 schematisch nader weergegeven. Een master-interface 100, een slave-interface 101 en een 20 interruptor 102 zijn met de VME-bus 14 verbonden. De datalijnen 47 van de RIP-bus 46 zijn met het master-interface 100 verbonden. De adresen controlelijnen 48, evenals de conditielijnen 49 van de RIP-bus 46 zijn aangesloten op het master-interface 100, het slave-interface 101 en de interruptor 102. De VME-bus interface 41 heeft als taak om 25 de RIP 15 af te schermen van de a-synchrone VME-bus 14. Het VME- master-interface 100 (VME-MI) bevat een intern besturingssysteem waarmee de aanwezig buffers en registers worden gestuurd en via deze interface kunnen accesscycles op de VME-bus 14 worden uitgevoerd. In de besturing is programmeerbare logica toegepast. Ook het slave-30 interface 101 en de interruptor 102 zijn voor de besturing van programmeerbare logica voorzien.
Het VME-MI 100 (Fig. 8) omvat ook data-transfer functies zoals data base-master (DTB master) en data base requestor (DTB requestor).
Om de gewenste snelheid in het data transport te bereiken zijn in dit 35 VME-MI 100 enkele extra functies toegevoegd.
De eerste functie is een adres up/down teller, gevormd door een 8502 642 * % 8 adrea-hoog teller 132 en adres-laag teller 133· Bij het laden van het RIM 16 met de bit representaties van de verschillende lettertekens of grafische tekens die elk afzonderlijk met opeenvolgende adressen in het font-geheugen 13 of het RAM 12 zijn opgeslagen, worden de tellers 5 132 en 133 voor elk teken vóóringesteld met het basisadres van dat teken in bijvoorbeeld het RAM 12. Via buffer 13^ en de VME-adresbus 141 van VME-bus 14 wordt dit basisadres aan het RAM 12 toegevoerd, en het eerste 16-bits woord op die betreffende geheugenplaats wordt via de VME-databus 142 van de VME-bus 14 aan een bi-directionele buffer 10 135 toegevoerd en vervolgens op de juiste plaats in het RIM 16 geplaatst. Het volgende adres voor het RAM 12 wordt gegenereerd door de teller 133 met één te verhogen en het tweede 16-bits woord wordt via het VME-MI 100 aan het RIM 16 toegevoerd. Op overeenkomstige wijze worden alle bij een bepaald teken behorende adressen gegenereerd, net 15 zo lang tot het teken volledig in het RIM 16 is geschreven.
Op deze wijze wordt bereikt dat de CPU 43 per teken slechts één keer een basisadres hoeft te genereren, zodat tijdens het laden andere functies uitgevoerd kunnen worden, bijvoorbeeld pixel bewerkingen, RIM-adres bepaling, enz.
20 Nadat een teken is afgewerkt, wordt een nieuw basisadres voor een volgend teken aan de tellers 132 en 133 toegevoerd en de bovenbeschreven cyclus wordt herhaald.
De tweede functie, de spiegelfunctie, wordt uitgevoerd met een spiegelschakeling 136, welke is opgebouwd met programmeerbare logica, 25 zoals FPLA's of PAL’s, en welke kan worden toegepast wanneer tekens 180° geroteerd in het RIM 16 moeten worden gezet. De spiegelschakeling 136 verwisselt van een 16-bits woord bit-0 met bit-15, bit-1 met bit-14, bit-2 met bit-13» enz.
De CPU 43 genereert nu niet het basisadres, maar berekent uit 30 gegevens omtrent lengte en breedte en het basisadres van een teken het hoogst voorkomende adres voor dat bepaalde teken in het RAM 12. Dit hoogste adres wordt in de tellers 132 en 133 geladen terwijl de tellers tevens door VME-MI controller 130 worden omgeschakeld tot down-tellers. Na elk geheugen access van RAM 12 wordt de inhoud van de 35 teller 133 met één verlaagd en de 16-bits woorden uit RAM 12 worden in spiegelschakeling 136 gespiegeld en via het data-in register 137 in 85 0 2 6 4 2 9 het RIM 16 geplaatst. Deze cycli worden voortgezet totdat het oorspronkelijke basisadres van het teken is bereikt.
In het VME-MI 100 is ook een data-uit register 138 via datalijnen 47 met de RIP-bus 46 verbonden, om aldus data naar bijvoorbeeld de FEC 5 10 of naar RAM 12 te voeren.
De VME-MI controller 130 is via controlelijnen 48 en conditielijnen 49 met de RIP-bus 46 verbonden en bovendien via een buffer 131 met adres-, data-, en controlelijnen 139 en bus-arbitragelijnen 140 van de VME-bus 14.
10 De CPU 43 kan verschillende toestanden in het VME-MI 100 aanroepen, zoals "release-bus", "multiple access", "single access" en "change". Voordat de VME-MI 100 in de single-of multiple access toestand kan overgaan, moeten eerst nog de volgende gegevens worden gespecificeerd: lezen of schrijven, normaal of gespiegeld, het 15 gewenste adres en de te verwerken data. Deze specificaties kunnen alleen veranderd worden tijdens de "release-bus" toestand en tijdens "change" toestand. De te verwerken data kan echter steeds worden gewijzigd. Dit wordt ook aangegeven door een "CHANGE ACKNOWLEDGE" lijn. Het register dat de gelezen data van de VME-bus 14 bevat kan 20 steeds worden uitgelezen wanneer een "REGISTER FULL"-lijn actief is.
Na het aanroepen van een "release-bus" toestand zal de VME-MI 100 de VME-bus 14 vrijgeven. Dit betekent dat de VME-bus drivers gedisabled worden en een BBSY-signaal van de VME-bus inactief wordt gemaakt. Het vrijgeven van de VME-bus 14 kan slechts dan geschieden 25 wanneer de laatste access cycle volledig is afgewerkt. Een "CHANGE ACKNOWLEDGE"-signaal geeft aan dat de "release-bus" toestand is ingetreden. In deze toestand van het interface kan geen access op de VME-bus 14 plaatsvinden. Na een "change" aanvrage wordt het VME-MI 100 geïnstrueerd bezit te nemen van VME-bus 14, indien dit nog 30 niet het geval was. Dit wordt gerealiseerd met de bus-arbitrage lijnen 140. Via de "CHANGE ACKN0WLEDGE"-lijn wordt aangegeven dat de "change" toestand is bereikt. Een access op de VME-bus 14 kan dan plaatsvinden. Ook tijdens de "change" toestand kunnen de inhouden van de adres- en dataregisters worden veranderd. Met "change" wordt een mogelijkheid 35 gegeven om accesses op de VME-bus tijdelijk te stoppen zonder dat de VME-bus wordt vrijgegeven. Een single access op de VME-bus kan gestart 3302642 10 worden door het aanroepen van een "single cycle" toestand. Wanneer de voorgaande toestand een "release-bus" toestand was, wordt pas bezit genomen van de VME-bus via een overeenkomstig actief signaal van de arbritrage logica. Hierna kan pas een woord access worden uitgevoerd 5 op de VME-bus.
Een lees/schrijf indicator beslist of een lees- of een schrijf-oyclus moet worden uitgevoerd.
Een leescyclus betekent dat data van de VME-bus 14 worden ingeklokt in het data-in register 137 via de spiegelschakeling 136, 10 welke laatste geactiveerd kan worden met behulp van een normaal/gespiegeld indicator. Wanneer data in het data-in register 137 worden ingeklokt, wordt een REGISTER-FULL vlag gezet om aan CPU 43 te signaleren dat de transfer van data is afgelopen en dat de data zijn binnengekomen in het genoemde register. De REGISTER-FULL vlag wordt 15 gezet op het moment dat de data in het data-in register 137 worden gelezen en na deze access wordt de inhoud van de adresteller met één verhoogd. In het geval van een enabled spiegelfunctie, wordt de inhoud van de adresteller met één verlaagd. Wanneer de REGISTER-FULL vlag nog is geactiveerd en data worden gelezen van de VME-bus, wordt de normale 20 VME-cyclus verlengd totdat het data-in register 137 geheel is uitgelezen en nieuwe data in het data-in register 137 zijn ingelezen.
Een sehrijfcyclus is in principe hetzelfde als een leescyclus. Het enige verschil is de richting van de datastroom. In een schrijf-cyclus worden de data, welke zich in het data-uit register 138 bevin-25 den, getransporteerd naar de VME-bus 14. De spiegelschakeling 136 verandert niets aan de geschreven data. Het data-in register 137 moet al reeds gelezen zijn om de REGISTER-FULL vlag te kunnen clearen.
De "multiple access" toestand vertoont veel overeenkomsten met de "single access" toestand. Een "single-access" is bedoeld voor het 30 lezen en schrijven van commando's van, en status informatie naar de FEC. Een "multiple access" is vooral bedoeld voor het lezen van grafische- en font-data, waarbij door het VME-MI 100 automatisch een volgende access wordt gestart. Het nieuwe adres, wordt gegenereerd door de adresteller. De enige actie die hierbij uitgevoerd moet worden is 35 het lezen van het data-in register 137.
De hiervoor beschreven verschillende toestanden worden geselecteerd met de VME-MODE lijnen welke verbonden zijn met enkele 85 0 2 64 2 11 signaallijnen van de CPU 43. De lees/schrijfselector en de normaal/gespiegeld selector zijn eveneens verbonden met dergelijke signaallijnen. De CHANGE-ACKNOWLEDGE en VME-Register-Full signalen zijn afkomstig van de WAIT-lijnen van de CPU 43. Het VME adres wordt 5 opgeslagen in 24-bit tellers132 en 133» de input- en output-data in twee 16-bit registers 137 en 138. "Adres-hoogn- en Badres-laagn van tellers 132 en 133 en het data-out register 138 worden geladen met behulp van register-kloklijnen. Het data-in register 137 kan gelezen worden met behulp van een register enable lijn afkomstig van de CPU 10 43.
Het LSM-interface
In Fig. 5 is het LSM-interface 44 nader schematisch weergegeven. Bij het uitlezen van het RIM 16 haalt de RIP 15 een 16-bits woord uit dit geheugen op en geeft dit via datalijnen 47 van de RIP-bus 46 door 15 aan register 111. Het besturingsblok 110 geeft over lijn 115 een
BloadB-signaal af aan schuifregister 112 en de inhoud van register 111 wordt parallel in het schuifregister 112 geladen. De laserprinter geeft burst-pulsen af met een frequentie van circa 24 MHz, die over lijn 53 en via I/O buffer 113 aan het schuifregister 112 en het 20 besturingsblok 110 worden toegevoerd. Met deze pulsen wordt de inhoud van het schuifregister 112 serieel uitgeschoven en via I/O buffer 113 over lijn 18 aan de modulator van de ROS toegevoerd.
De burst-pulsen worden in het besturingsblok 110 aan een 16-teller toegevoerd en wanneer 15 pulsen zijn geteld of tijdens de 25 16e telpuls, wordt een inmiddels nieuw in register 111 gezet woord, parallel aan schuifregister 112 doorgegeven en uitgeschoven. Vóór de uitschuifoperatie van dit 16-bits woord start, wordt het register 111 geladen met een nieuw 16-bits woord. Er wordt een BEMPTYn-vlag gezet wanneer data in het schuifregister 112 zijn gezet en nieuwe data in 30 het register 111 mogen worden geschreven. De "EMPTYn-vlag is aangesloten op een "wachtlijn" van de CPU 43 van de RIP 15. Op deze wijze, wordt achtereenvolgens een hele scanlijn aan de ROS doorgegeven. Het besturingsblok 110 geeft conditiesignalen af aan de CPU 43 over con-ditielijnen 49 van de RIP-bus 46. Nadat een scanlijn is afgewerkt en 35 vóór een SOS-signaal via lijn 52 vanaf de ROS aan het besturingsblok 110 wordt toegevoerd, wordt het ophalen van data uit het RIM 16 door 8502 642
* * V
12 de RIP 15 even gestaakt (wait-conditie). Gedurende deze tijd wordt het register 111 gecleared via lijn 114. Op het SOS-signaal wordt de eerder beschreven cyclus van vullen van register 111, doorgeven aan schuifregister 112, uitschuiven enz., weer voor een volgende scanlijn 5 herhaald. Na het laden van een woord in register 111 wordt de "full" status eveneens via conditielijnen 49 aan de CPU 43 doorgegeven, waarbij deze met het ophalen van een nieuw woord wacht totdat de inhoud van het register 111 weer in het schuifregister 112 geladen is. Met behulp van een teller in de CPU 43 wordt na een PAV-signaal het 10 aantal SOS-pulsen geteld, en hiermee kan worden vastgesteld wanneer een pagina volledig aan de ROS is doorgegeven.
De Central Processing Unit
In Fig. 6 is de CPU 43 van de RIP 15 nader schematisch weergegeven. Deze CPU is opgebouwd rond een microprogrammeerbare micropro-15 cessor, processor 74, type Am2911ö, en een bijbehorende address sequencer 70, type 2910A, beide van Advanced Micro Devices.
Op elke klokcyclus wordt de microinstructie die moet worden uitgevoerd in het micro-instructieregister 72 gezet. Deze microinstructie is afkomstig van de micro-PROM 71 en deze wordt weer 20 geadresseerd met behulp van de address sequencer 70. Elke functie in de processor 74 wordt bestuurd door een deel van de micro-instructie-bits. Deze micro-instructies kunnen worden verdeeld in bits voor de address sequencer 70, de processor 74, de sprong-adres besturingseenheid 79, de conditieselector 75, de wachtselector 77 en de enables 25 78.
De volgorde' van uitvoering van de micro-instructies die zijn opgeslagen in de micro-PROM 71» wordt eveneens gestuurd door de address sequencer 70. Naast de mogelijkheid van opeenvolgende toegang tot de adressen, kunnen ook conditionele spronginstructies naar elke 30 micro-instructie in het 4096 grote mioro-woordbereik van de micro-PROM 71 worden uitgevoerd. Een LIFO-stack voorziet in een micro-subroutine-return-koppeling en inlusmogelijkheden. De stack is negen stappen diep. Voor elke micro-instructie voorziet de address sequencer 70 in een 12-bits adres dat wordt geïnitieerd vanuit een van de vier 35 navolgende bronnen: - het miero-programma-adresregister (PC), welk gewoonlijk een adres 85 0 2 64 2 * · 13 aangeeft met een adresverhoging van één, ten opzichte van het in behandeling zijnde adres. Echter, wanneer een "wacht" toestand wordt gegenereerd door wacht-selector 77, wordt de PC niet verhoogd.
- een externe ingang, aangesloten op lijnen 92, die zijn data krijgt 5 van het sprong-adres besturingseenheid 79.
- een negen stappen diepe LIFO-stack, welke tijdens een voorafgaande micro-instructie wordt geladen met de inhoud van het micro-programma-adresregister (PC).
- een register/teller, welke de data die gedurende een voorafgaande 10 micro-instructie vanaf een externe ingang zijn geladen, vasthoudt.
De processor 74 is een microprogrammeerbare 16-bit microprocessor, type Am 29116, met een instructieset die geoptimaliseerd is voor grafische toepassingen. De instructieset voor de processor 74 omvat met name single and double operand, rotate-n-bits en rotate 4 15 merge.
De processor 74 ontvangt zijn instructies voor het uitvoeren van een operatie van het micro-instructieregister 72 via bus 83 en een instructie-modificatieschakeling 73·
De instructie-ingang wordt ook als data-ingang toegepast voor 20 "immediaten-instructies. Wanneer de "instructie-enable" (IEN) ingang van de processor 74 via lijn 94 wordt geactiveerd, worden de resultaten van de uitgevoerde instructie in de accumulator en het status-register in de processor 74 vastgehouden. Wanneer een "output enable" (0E) via lijn 95 wordt geactiveerd, worden de datalijnen van de CPU 43 25 geschakeld als uitgangen en ze bevatten de inhoud van de ALU van processor 74. Omgekeerd, wanneer via lijn 95 de "output enable" inactief wordt gemaakt, fungeert de databus van de CPU 43 als 16-bits ingang, en kunnen gegevens welke op de RIP-bus aanwezig zijn via datalijnen 47 aan de processor 74 worden toegevoerd. Deze gegevens kunnen dan in een 30 intern register worden vastgehouden. De databus van de processor 74 is rechtstreeks met de datalijnen 47 van de RIP-bus verbonden.
Op de "status bus" 87 van de processor 74 is tijdens elke cyclus de status van de ALU beschikbaar (bijvoorbeeld carry, negatief, nul, overflow). De instructie-modificatieschakeling 73 maakt het mogelijk 35 om de in de miero-PROM 71 vastgelegde instructies aan te passen om bij instructies, zoals bijvoorbeeld "rotate n-bits", het aantal bits aan 8502 54 2 « 14 te geven waarmee moet worden geroteerd. Dit aantal bits wordt dan gespecificeerd via een aantal lijnen (91) van de processor-datalijnen 47.
Wanneer een IEN signaal op de lijn 94 de instructie input van de 5 processor 74 inactief maakt, kunnen dezelfde processor-instructie-bits die op bus 83 aan de processor 74 worden toegevoerd, via bus 84 ook aan de sprong-adres besturingseenheid 79 worden toegevoerd, en zo worden gebruikt om de address sequencer 70 naar een willekeurig ander adres te laten springen. Normaliter ontvangt de eenheid 79 zijn 10 sprongadres uit de inhoud van een register dat via bus 90 met data van datalijnen 47 is gevuld.
De conditieselector 75 bevat een één-uit-acht multiplexer, en de uitgang hiervan is via lijn 89 met de address sequencer 70 verbonden. Eén van de acht mogelijke condities, welke van de conditielijnen 49 15 van de RIP-bus, of van de processor-status lijnen 87, via status buffer 76 en lijnen 88 aan de ingang van de conditieselector 75 worden aangelegd, kan worden gekozen. De geselecteerde conditie wordt gebruikt door de adress sequencer 70 om de gewenste conditionele instructie uit te voeren. Eventuele nieuwe condities kunnen in de 20 statusbuffer 76 worden geladen door een seleotie-enable signaal (SLE) via lijnen 85 aan de status buffer 76 toe te voeren.
De "wachtselector" 77 bevat eveneens een één-uit-acht multiplexer, welke in actieve toestand één van de acht "wacht"-lijnen 97 via lijn 93 met de address sequencer 70 verbindt. Een nul-niveau op 25 een wachtlijn stopt de programmateller van het programma-adres- register. De wachtlijnen zijn verbonden met de conditielijnen van de V.
RIP-bus.
Het enable blok 78 heeft verschillende functies en genereert bovendien alle signalen die nodig zijn voor de besturingslijnen op de 30 RIP-bus. Het voert drie verschillende functies uit: A. Het genereren van "enables".
De enable signalen bepalen welke van de data registers die met hun uitgangen aan de RIP-bus zijn verbonden moeten worden geactiveerd. Voor elk register is één enable lijn voorhanden.
35 B. Het opwekken van registerklokken.
De kloklijnen bepalen welke dataregisters die met hun ingangen aan 33 0 2 64 2 15 de RIP-bus zijn aangesloten, data moeten inklokken. Er is voor elk register één kloklijn aanwezig.
C. Het opwekken van andere signalen.
De signalen op de signaallijnen worden gebruikt als flags en func-5 tieselectoren op de interface modulen die met de RIP-bus zijn verbonden.
Raster Image bus interface
De verbinding tussen de RIP-bus 46 en de RI-bus 17 wordt gevormd door het RI-bus interface 45 (Fig. 7)· Deze interface buffert de bi-10 directionele data, de aan te roepen adressen en de modificatiecode.
Het bufferen wordt uitgevoerd met behulp van registers. De registers "data-uit" 120, "adres-laag" 122, "adres-hoog" 123 en het modifica-tieregister 124 kunnen geladen worden vanuit de RIP-bus 46. Het laden gebeurt onder besturing van adres- en controlelijnen 48 van het enable 15 blok 78 van de CPU 43. Het "data-in" register 121 kan uitgelezen worden onder invloed van besturing met een enable lijn van het enable blok 78. Het "adres-hoog" register 123 bevat de meest significante bits van het adres. Het "adres-laag" register 122 bevat de minst significante bits. Na het laden van het "adres-hoog" register 123 20 wordt de RI-bus lees/schrijfcyclus automatisch gestart. Dit betekent dat de volgende processen door de controller 125 worden uitgevoerd: cyclus 1- zet een adres op de RI-bus en activeert RAV, cyclus 2- zet data-uit op de RI-bus en inactiveert RAV, cyclus 3- leest de data op de RI-bus in het "data-in" register 121.
25 Vóór het starten van een RI-bus cyclus, moet de CPU 43 testen of de RI-bus-busy-lijn 57 inactief is. Deze busy-lijn 57 is verbonden met een van de wachtlijnen van de CPU 43.
De Raster Image bus (RI-bus)
De RI-bus 17 verbindt de RIP 15 met het bit-map geheugen 16 30 (RIM) en is opgebouwd uit 64 lijnen. Het omvat een 32-bits brede gemultiplexte adres/data-bus. Op de RI-bus 17 fungeert de RIP 15 als master. Het RIM 16, dat een of meer RIM borden omvat neemt zelf geen initiatief op de bus. Verder kunnen op de RI-bus 17 nog RI-bus-DMA devices aangesloten worden, die bij de RIP 15 een verzoek in kunnen 35 dienen om beschikking te krijgen over de bus.
De RI-bus 17 is een synchrone bus. Door de RIP 15 wordt een s 33 0 2 64 2 * * 16 kloksignaal (BCLK) aan de RI-bus aangeboden. Alle acties op de bus worden op de flanken van de bifase klok uitgevoerd. Zo vinden alle akties van de RIP op de opgaande flank, en alle akties van het RIM op de neergaande flank van het kloksignaal (BCLK) plaats. De overige 5 toestanden op de RI-bus 17 kunnen beschreven worden met behulp van drie signaalniveau's, hoog, laag en hoog-impedant (tri-state). Alle veranderingen in signaalniveau’s vinden plaats nadat ze zijn ingeleid door een actieve flank van de bifase klok. Er zijn aldus drie groepen signalen: de kloksignalen, de adres/data signalen en de overige signa-10 len.
De signalen die op de bus voorkomen zijn hierna gedefinieerd: - BCLK: dit is een symmetrische klok, die door de RIP op de RI-bus wordt aangeboden.
- RAD 00 .. RAD 31 (RIP adres/data lijnen): dit is een gemultiplexed 15 adres/data pad, dat door alle bus-devices aangestuurd wordt met tri-state drivers. Alle lijnen zijn "hoog" actief.
- RMC 0 .. RMC 3 (RIM modify code): op deze lijnen wordt door de RIP of een DMA device een code aangeboden aan het RIM bord. Deze code specificeert de "modify11 functie die plaats vindt tijdens de 20 logische operatie die op het RIM bord wordt uitgevoerd op de inhoud van het geadresseerde geheugenwoord. Ook deze signalen zijn tri-state uitgevoerd.
- RRÖFF (RI-bus refresh-off): met dit signaal wordt aangegeven dat de RIM borden de refresh uit kunnen schakelen om een minimale 25 cyclustijd te kunnen halen. Om verlies van data te voorkomen wordt een speciale adresseringsvolgorde tussen de RIM borden en de RIP aangehouden.
- RBR 0, RBR 1 (RI-bus bus-request): met deze open collector signalen kunnen twee DMA devices aan de bus-arbiter om toegang tot de bus 30 vragen. De devices hebben een verschillende prioriteit.
- RBG (RI-bus bus-grant): met deze lijn geeft de bus-arbiter. aan dat de bus beschikbaar is voor het aanvragend device met de hoogste prioriteit.
- RBUSY (RI-bus bus-busy): met dit open collector signaal kan een 35 geadresseerd RIM bord aangegeven, dat het bord gedurende een bepaalde tijd niet in staat is om een nieuwe buscyclus te verwerken.
8502 642 17 - RAV (RI-bus address valid): dit tri-state signaal dat laag actief is, geeft aan dat op de RI-bus een geldig adres staat.
De RI-bus is uitgevoerd met een 32 bits breed data- en adres-pad dat gemultiplexed wordt op RAD 00 .. RAD 31. De toewijzing van deze 5 lijnen is als volgt: A 24 - D 16 : in deze situatie worden de adreslijnen RA00 .. RA23 gebruikt. De lijnen RAD 24 .. RAD 31 zijn dan don’t care. Voor de datalijnen wordt RAD00 .. RAD15 gebruikt. De lijnen RAD16 .. RAD31 zijn op dat moment don’t care. Datatransport vindt zo op basis van 10 16-bits woorden plaats en de adressen zijn 24-bits breed.
Een andere mogelijkheid om de 32 data- en adreslijnen te gebruiken is: A24 - D16 - D16: Deze situatie is hetzelfde als de A24 - D16 situatie voor wat betreft de adreslijnen. Door het toevoegen van een tweede 15 bord in dezelfde adresruimte, waarbij de data via de lijnen RAD16 .. RAD31 over de bus lopen, kan met twee borden die intern 16-bits breed zijn, een 32-bits brede databus gecreëerd worden. Op een RIM-bord kan ingesteld worden over welk gedeelte van de adres/databus de data getransporteerd worden.
20 Met behulp van de signalen RBRO, RBR1 en RBG wordt de toegang tot de RI-bus geregeld tussen de RIP en eventuele DMA devices. Deze arbitrage gaat volledig buiten het RIM 16 om.
Iedere cyclus op de bus bestaat uit een WRITE/READ cyclus. Indien de bus vrij is (RBUSY niet actief) kan de RIP een adres (ADR[nJ) op de 25 bus op lijnen (RAD00 .. RAD23) zetten. Dit gebeurt samen met het aanbieden van een RAV-signaal en een RI-bus modify code (RMcode) via lijnen RMC00 .. RMC03. Na het adres biedt de RIP zijn data (DATAO £nj) aan op de bus op lijnen (RAD00 .. RAD15).
Het door ADRfnJ geadresseerde RIM-bord maakt het RBUSY signaal actief.
30 Vervolgens gaat de RIP van de RI-bus af om het door ADR£n-1J
geadresseerde RIMbord de mogelijkheid te geven DATAlCn-13 op de bus te zetten, zodat de RIP deze data kan inlezen. Twee opeenvolgende WRITE/READ cycli worden hierdoor als het ware in elkaar geschoven. Dit wordt nog verder geoptimaliseerd door de tijd, die de RIP nodig heeft 35 om te beslissen of RBUSY inactief is geworden, samen te laten vallen met de laatste verwerkingsfase van het door ADR £nj geadresseerde RIMbord in de lopende cyclus. Dit is gerealiseerd doordat het RIMbord 8302 64 2 18 RBUSY al inactief maakt, voordat het RIMbord al helemaal gereed is maar waarbij al zeker vast staat dat dit gereed zal zijn wanneer de RIP dit geconstateerd kan hebben. De eerste cyclus bevat dus ongeldige data en er is tevens een extra cyclus nodig om de laatste data uit het 5 RIM op te halen.
Op bovenbeschreven wijze wordt een minimale cyclustijd op de bus gehaald. Met de minimale cyclustijd wordt bedoeld die timing volgorde van bustoestanden, waardoor een maximale transfer rate op de bus verkregen wordt.
10 Door de refresh van het RIM kan het voorkomen, dat een RIMbord niet in staat is de minimale cyclustijd te halen. De RIMborden maken dit kenbaar met behulp van het RBUSY signaal. Door dit RBUSY signaal met een bepaald aantal klokperiodes (BCLK) te verlengen, stelt de RIP zijn volgende access op het geheugen uit met een geheel aantal klok-15 periodes.
Eenzelfde situatie kan optreden indien de RIP nog niet klaar is met een bepaalde taak. De RIP geeft dit aan op de bus door het RAVsignaal een geheel aantal klokperiodes uit te stellen.
Raster image memory 20 Het RIM 16 (Fig. 11) omvat een 24 Mbit dynamisch geheugen 220, georganiseerd in 16-bits woorden en wordt als een paginagroot bitmap geheugen gebruikt. Elke geheugenplaats in het geheugen 220 stemt overeen met één exacte plaats op de uiteindelijke afgedrukte pagina. Het RIM 16 is via de RI-bus 17 met de RIP 15 verbonden en wordt door 25 de RIP 15 gevuld met geëxpandeerde font-data en grafische data. Een belangrijk proces dat in het RIM 16 plaatsvindt is het modify proces, welk wordt uitgevoerd op een geadresseerd woord. Het modify proces omvat 16 verschillende logische operaties welke kunnen worden toegepast op de inkomende data en de alreeds op een bepaald adres aan-30 wezige data. Eén bepaalde modify functie wordt geselecteerd door een RIM modify code op de lijnen RMC0 ... RMC3 223 van de RI-bus 17 aan te bieden.
Deze modify code wordt in het RMG register 222 gezet en toegevoerd aan de logische rekeneenheid 223 (ALU) die is opgebouwd met 35 programmeerbare logica. De nieuwe data (NT) wordt via het DATA0 register 227 over datalijnen 225 aan de ALU 223 toegevoerd, terwijl de oude, reeds in het geheugen 220 aanwezige data (0D) via data out- 850 2 64 2 19 putlijnen 226 aan de ALU 223 wordt toegevoerd. Het resultaat van de bewerking (MD) in de ALU 223 wordt via lijnen 224 in het geheugen 220 geschreven.
In onderstaande tabel zijn enkele modify functies met de erbij 5 behorende RM codes en de overeenkomstige logische functies weergegeven.
Modify RMC Logische functie functie 3210 10 _
WRITE 0 0 0 0 ND
PAINT 0001 ND.OR.OD
MASK 0 0 10 ND.AND.OD
15 ERASE ' 0011 ifB.AND.0D
INVERT 0 10 0 SS
INV.PAINT 0101 ND.EXOR.OD
NOP 0 110 0D
CLEAR 0111 ZERO
20 SET 1 X X X ONE
ND = nieuwe data OD = oude data 25 Omdat de RI-bus 17 een gemultiplexte bus is, moeten de afzon derlijke adressen en de data in registers worden ingeklokt. De RI-bus 17 is daartoe met een address/data busbuffer 228 verbonden en bij het aanbieden van een adres op de RI-bus 17 wordt dit adres via buffer 228 aan het address register 229 toegevoerd. Bij de aanbieding van data 30 (een klokperiode later), worden deze data via buffers 228 in het DATO register 227 opgeslagen. Het data-in register 230 ("in" voor de RIP maar "uit" voor het RIM) is toegevoegd om de uit het geheugen 220 afkomstige data, welke behoren bij het vorig aangeboden adres, op de RI-bus 17 te kunnen zetten.
35 De besturing van de RIM 16 wordt verzorgd door het geheugen- besturingscircuit 231. Het geheugen besturingscircuit 231 bevat een bus state sequencer om op een RAV signaal een aantal akties te starten, welk bestaan uit het inklokken van een adres, het inklokken van 8502 642 20 erbij behorende data, het inklokken van de modify code en het op de RI-bus 17 zetten van data behorende bij het voorgaande adres. Bovendien bevat het geheugenbesturingscircuit 231 een memory state sequencer, welke gesynchroniseerd is met de bus state sequencer. De 5 memory state sequencer kan worden geïnitieerd door een refresh request of door een buscyclus voor een geheugen access. Wanneer een refresh cyclus wordt uitgevoerd, moet de eerstvolgende buscyclus worden opgeschort. Het circuit 231 is met programmeerbare logica geïmplementeerd .
10 Het geheugen 220 is opgebouwd met 256 K dynamische geheugen chips en is georganiseerd in zes "banks" van 256 K woorden van 16 bits. Bank selectie vindt plaats door middel van decodering van de adreslijnen A18, A19 en A20 in de address multiplexer 232. Het adresseren van ( een geheugenplaats in één bank vindt plaats met behulp van adreslijnen 15 AO - A7 en A16 en het genereren van een row-address strobe (RAS) vanuit het besturingscircuit 231, en vervolgens worden adreslijnen A8, A15 en A17 aan de geheugenadreslijnen via de address multiplexer 232 toegevoerd, en een column address strobe (CAS) wordt tevens door het besturingscircuit 231 gegenereerd.
20 Omdat dynamische geheugens zijn toegepast moeten alle geheugenplaatsen van het geheugen 220 tenminste één keer per 4 msec, een refresh ondergaan. Dit geschiedt door periodiek een "RAS-only" cyclus toe te voegen. Tijdens deze cyclus wordt aan alle banken een row-address aangeboden. Het refresh address in een rij wordt afgeleid met 25 behulp van een 9-bit teller welke na elke refresh cyclus met één wordt verhoogd.
Door activering van de RROFF-lijn van RI-bus 17 wordt de normale refresh cyclus onderbroken en de RIP 15 zorgt ervoor dat er aan de minimale cyclustijd van de eerstvolgende cyclus wordt voldaan.
30 Niet-geadresseerde banks van het geheugen gebruiken dan het adres op de RI-bus 17 om een refresh uit te voeren. Op de geadresseerde bank vindt refresh plaats door een access op het geselecteerde adres.
Bij het uitlezen van het RIM 16 zal, indien slechts één afdruk van een pagina moet worden gemaakt, op de RI-bus 17 de "CLEAR" modify 35 code worden gezet omdat het RIM 16 na uitlezen geheel met nullen moet zijn gevuld. Indien de pagina moet worden bewaard om nog eens te worden geprint, zal op de RI-bus 17 de "NOP" modify code worden gezet.
8502 64 2 ρ· 21
Grafische instructies
De bitmap vuiler 28 (Fig. 2) is ingericht om verschillende teksten grafische instructies uit te voeren, zoals CHAR, MCHAR, VLINE, HLINE, BLOCK FILL, AREAFILL, LINE en CIRCLE.
5 Al deze instructies, welke zijn opgeslagen in de micro-PROM 71 (Fig.6), zijn uitgevoerd als micro-instructies voor de CPU 43.
De algorithmen voor deze instructies zijn zodanig geïmplementeerd dat een zo groot mogelijke bitmap vulsnelheid wordt verkregen.
CHAR: is een instructie voor het plaatsen van een teken op de 10 juiste plaats in het bit-map geheugen 16. Aangezien de woordgrenzen van een teken meestal niet overeenkomen met de woordgrenzen van het bit-map geheugen is een verplaatsing nodig (zie Fig. 9). In het font-geheugen 13 is de bitmap representatie 200 van een teken 201 in J
16-bits woorden opgeslagen. Een teken omvat gewoonlijk een aantal 15 16-bits woorden, waarvan enkele zijn aangegeven met 203, 204 en 205·
Het hoekpunt 202 van het teken 201 wordt hier als voorbeeld als referentiepunt aangenomen, en het eerste 16-bits woord 203 bevat 16-bits waarvan het eerste bit met n0" is aangegeven, en het laatste bit met "F". De bit representatie van het eerste woord is aldus: 20 0000 0000 0001 1111.
Bij het plaatsen van dit teken 201 op de gewenste y-positie in het bit-map geheugen 16 zal de woordgrens 207 van het bit-mapgeheugen over het algemeen slechts zelden met de woordgrens 0’ van het teken 201 overeenkomen. De uit te voeren operatie zal due overeenkomen met 25 het verschuiven van de bitmap representatie van het teken 201 over een aantal (n)bits, in de figuur aangegeven met Δ y.
Op micro-instructie niveau zijn hiervoor de volgende stappen uit te voeren: rotate: van bit 0 tot bit F over Δ y (n: = A y) 30 merge : mask = 1 rotate mask = 0 non-rotate MCHAR: is een instructie voor het plaatsen van een teken in het bitmap geheugen 16 in gespiegelde vorm. Het uitlezen van de bit-map representatie van het teken door de VME-bus interface gebeurt in omge-35 keerde volgorde. Het verplaatsen van de woordgrenzen van het teken in het bit-map geheugen 16 geschiedt op identieke wijze als beschreven 8502 64 2
<* V
22 bij CHAR. De schakeling voor het spiegelen is eveneens in de VME-bus interface ondergebracht.
Voor het schrijven van tekens in het bit-map geheugen 16 bezit het front-end een aantal overlay mogelijkheden (Fig. 10). Aan de hand 5 van een letter V (210) zijn in Fig.10 deze mogelijkheden schematisch weergegeven. Een arcering 211 betekent dat de inhoud van het RIM 16 onveranderd is. Aangenomen wordt dat een "0" in het RIM "wit” oplevert en een "1" in het RIM "zwart" oplevert.
WRITE! de bestaande inhoud van het RIM 16 wordt "0" gemaakt en de 10 bit- map representatie van een teken wordt met enen geschreven (212).
INVERT: de bestaande inhoud van het RIM wordt "1" gemaakt en de bit-map representatie van een teken wordt met nullen hierin geschreven (216).
PAINT; de inhoud van het RIM wordt niet gewist en de enen van het 15 teken ondergaan met de inhoud van het RIM een "0R" functie (213)· MASK: de inhoud van het RIM wordt "0" gemaakt op die plaatsen waar het teken nullen bevat, en daar waar het teken enen bevat blijft de inhoud van het RIM gehandhaafd (214).
ERASE: de inhoud van het RIM wordt "0" gemaakt op die plaatsen 20 waar het teken enen bevat, en daar waar het teken nullen bevat blijft de inhoud van het RIM gehandhaafd (215).
INVERTING-PAINT: de inhoud van het RIM blijft gehandhaafd waar het teken een "0" bevat en waar het teken een "1" bevat wordt de inhoud van het RIM geïnverteerd.
25 Een volgende instructie die het front-end uit kan voeren is: BLOCK-FILL: het vullen van een vooraf bepaald gebied met een regelmatig patroon zoals blokken, arceringen, enz. De patronen zijn periodiek en de te vullen hoogte wordt uitgedrukt in hele woorden, terwijl ze voortzetbaar zijn in de X- en Y-richting.
30 AREA-FILLï het opvullen van een door lijnen omgeven gebied, met een repeterend patroon. Er zijn twee mogelijkheden, nl. uitgaande van grenzen die in vier richtingen zijn gesloten of grenzen die in acht richtingen zijn gesloten. Door vooraf de begrenzing van het gebied in het RIM in te lezen, en door de speciale acties die nader bij het RIM 35 zijn beschreven, kan AREA-FILL op elk gebied worden uitgevoerd, ook indien de begrenzingen niet met de woordgrenzen overeenstemmen.
Voor het maken van lijnen, cirkels en cirkelbogen wordt gebruik 35 0 2 64 2 - «*' 23 gemaakt van de meet- en pegelmethoden, gebaseerd op het algorithms van Bresenham. Hierbij wordt uitgegaan van het theoretisch verloop van de lijnen en voor elke scanlijn wordt dat punt gekozen, dat deze gewenste lijn het dichtst benaderd. Het bekende algorithme, is bijvoorbeeld 5 beschreven in ACM Transactions on Graphics, Vol. 1, no. 4, oct.
1972, p. 259-279 door Robert F. Sproull, met als titel "Using programm transformations to derive line-drawing algorithms".
Voor het printen van open of gesloten lijnen of lijnstukken welke een breedte hebben groter dan één pixel is een speciaal 10 algorithme toegepast. Er wordt steeds uitgegaan van lijnstukken welke van ronde aansluitpunten worden voorzien, waarmee een ideale aanpassing aan andere lijnstukken ontstaat. Uitgaande van het cirkel-algorithme van Bresenham kan een ronde "plotterpunt" worden gegenereerd met een gewenste dikte die overeenstemt met een oneven 15 aantal rasterpunten. De pixel representatie van deze "plotterpunt" wordt in het RAM 12 opgeslagen en kan verder als een karakter worden behandeld. De bit-map van een punt wordt evenals de bit-map van een letterteken gekenmerkt met hoogte- en breedte informatie van de omhullende rechthoek terwijl een hoekpunt van deze rechthoek het 20 referentiepunt vormt dat gebruikt wordt om deze punt op de juiste plaats in het RIM 16 te plaatsen.
Het beginpunt van een lijnstuk moet het centrumpunt van de "plotterpunt" vormen en plaatsing in het RIM 16 geschiedt door op de positie van het centrumpunt een verschuiving over de halve breedte en 25 ook over de halve hoogte van de "plotterpunt" toe te passen, waarmee het startpunt en dus ook het referentiepunt van de "plotterpunt" wordt verkregen.
Door nu met behulp van het Bresenham lijnalgorithme steeds het nieuwe centrumpunt voor de "plotterpunt" te berekenen en de bij de 30 positie van dit centrumpunt behorende plotterpunt in het RIM 16 in te vullen kan een lijnstuk met een bepaalde dikte worden verkregen.
De uitvinding is niet beperkt tot de beschreven uitvoeringsvorm en vele wijzigingen zijn voor een vakman denkbaar. Echter al deze uitvoeringsvormen zullen vallen onder de hierna volgende conclusies.
8502 642

Claims (6)

1. Raster-beeld processor (15) (RIP) voor het vullen van een paginagroot raster-beeld geheugen (16) met de bit representatie van grafische tekens en lettertekens, waarbij de bit representatie van elk teken in de vorm van n-bits woorden in opeenvolgende adressen in een geheugen (12, 5 13) is opgeslagen en via een a-synchroon bussysteem (14) aan de raster-beeld processor (15) kan worden toegevoerd, en voor het omzetten van de in het raster-beeld-geheugen (16) opgeslagen data in een seriële pixel-bit-stroom voor een raster-output-scanner teneinde een afgedrukte pagina te verkrijgen, met het kenmerk, dat de raster-beeld 10 processor (15) en het raster-beeld geheugen (16) via een synchroon raster-beeld-bussysteem (17) met elkaar zijn verbonden, en dat de raster-beeld processor (15) omvat: - een microprogrammeerbare Central Processing Unit (43) (CPU), - een raster-image-bus-interface (45) welke met het synchrone raster- 15 beeld-bussysteem (17) is verbonden, - een raster-output-scanner interface (42,44) welke met een raster output scanner is verbonden, - een interface (41) welke met het a-synchrone bussysteem (14) i3 verbonden, en 20. een synchroon raster-image-processor-bussysteem (46) welke de microprogrammeerbare CPU (43) verbindt met het raster-image-bus-interface (45), met het raster-output-scanner interface (42,44) en met het interface (41) welke met het a-synchrone bussysteem (14) is verbonden.
2. Raster-beeld processor volgens conclusie 1, met het kenmerk, dat het interface (41) welk met het a-synchrone bussysteem (14) is verbonden een master-interface (100), een slave interface (101) en een interruptor-interface (102) omvat .
3. Raster-beeld processor volgens conclusie 2, met het kenmerk, dat 30 het master-interface (100) omvat - een adresteller (132,133) welke door de microprogrammeerbare CPU (43) kan worden geladen met het beginadres of eindadres van een teken in het geheugen (12, 13), - een buffer (135) welke de bij dat adres behorende n-bits woorden 35 vanuit het geheugen (12, 13) kan ontvangen en aan de raster-image- 8502 642 * * 25 processorbus (46) kan doorgeven, en - een instelbare up/down teller welke de adresteller met één verhoogt of verlaagt na elke doorgave van een n-bits woord, waarbij de teller wordt ingesteld met de gegevens omtrent het aantal n-bits woorden dat 5 het teken in het geheugen (12, 13) omvat.
4. Raster-beeld processor volgens conclusie 3, met het kenmerk, dat tussen de buffer (135) en de raster-image-processor-bus (46) een spiegelschakeling (136) is aangebracht welke de afzonderlijke bits in de n-bits woorden spiegelt volgens; bit 0 met bit n, bit 1 met bit n-1, bit 2 10 met bit n-2, enz., en waarbij een besturingsschakeling (130) de inhoud van de adresteller (132,133) steeds met één laat afnemen.
5. Raster-beeld processor volgens een der voorgaande conclusies, met het kenmerk, dat het raster-output-scanner interface (42,44) omvat: - een n-bits parallel-in-serieel-uit schuifregister (112), waarvan de 15 uitgang met de video ingang van de raster-output-scanner is verbon den en waarvan de ijsgangen zijn verbonden met de uitgangen van een register (111), en - een besturingsschakeling (110), verbonden met beide registers (111 en 112) en met de raster-output-scanner (ROS) die burstpulsen aan 20 de besturingsschakeling (110) afgeeft, waarbij de besturingsscha keling (110) een n-bits teller omvat.
6. Werkwijze voor het toevoeren van een seriële pixel-bit stroom aan een raster-output-scanner in een raster-beeld-processor volgens conclusie 5, gekenmerkt door de volgende stappen: 25. het laden van een n-bits woord uit het raster-beeld-geheugen (16) in het schuif register (112) en het laden van het register (111) met een nieuw woord, - •w - het met elke burst-puls uitschuiven van één videopixel uit het schuifregister (112) en het toevoeren hiervan aan de video-ingang 30 van de raster-output-scanner, terwijl de tellerstand van de n-bits teller met één wordt verhoogd,en - het tijdens de n-de telpuls doorschuiven van het nieuwe woord uit het register (111) naar het schuifregister (112), en het tegelijkertijd resetten van de n-bits teller en het laden van een volgend 35 woord uit het raster-beeld-geheugen (16) in het register (111). 8502 64 2 ----
NL8502642A 1985-09-27 1985-09-27 Raster-beeld-processor. NL8502642A (nl)

Priority Applications (6)

Application Number Priority Date Filing Date Title
NL8502642A NL8502642A (nl) 1985-09-27 1985-09-27 Raster-beeld-processor.
DE8686201581T DE3680433D1 (de) 1985-09-27 1986-09-15 Rasterbildprozessor.
AT86201581T ATE65626T1 (de) 1985-09-27 1986-09-15 Rasterbildprozessor.
EP86201581A EP0217448B1 (en) 1985-09-27 1986-09-15 Raster image processor
US06/912,544 US4891768A (en) 1985-09-27 1986-09-26 Raster image processor
JP61227924A JPS6274665A (ja) 1985-09-27 1986-09-26 ラスタイメ−ジプロセツサ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL8502642 1985-09-27
NL8502642A NL8502642A (nl) 1985-09-27 1985-09-27 Raster-beeld-processor.

Publications (1)

Publication Number Publication Date
NL8502642A true NL8502642A (nl) 1986-04-01

Family

ID=19846625

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8502642A NL8502642A (nl) 1985-09-27 1985-09-27 Raster-beeld-processor.

Country Status (6)

Country Link
US (1) US4891768A (nl)
EP (1) EP0217448B1 (nl)
JP (1) JPS6274665A (nl)
AT (1) ATE65626T1 (nl)
DE (1) DE3680433D1 (nl)
NL (1) NL8502642A (nl)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992956A (en) * 1987-10-08 1991-02-12 Advanced Micro Devices, Inc. Apparatus for assembling data for supply to a scanning output device
JPH01196096A (ja) * 1988-02-01 1989-08-07 Canon Inc 出力装置
US5287452A (en) * 1990-03-23 1994-02-15 Eastman Kodak Company Bus caching computer display system
US5237655A (en) * 1990-07-05 1993-08-17 Eastman Kodak Company Raster image processor for all points addressable printer
US5265216A (en) * 1991-06-28 1993-11-23 Digital Equipment Corporation High performance asynchronous bus interface
US5274761A (en) * 1991-11-14 1993-12-28 Gerber Systems Corporation Imaging system with image buffer for exposing film on a substrate
JPH05324546A (ja) * 1992-05-18 1993-12-07 Canon Inc 情報処理システム
US5490283A (en) * 1992-09-16 1996-02-06 Ultima Electronics Corporation Adapter with FIFO and buffers for interfacing a handheld scanner to the parallel printer port of a portable computer
US5657482A (en) * 1993-08-24 1997-08-12 Micron Electronics, Inc. Automatic clock speed sensing system for determining the number of states needed for a time-dependent operation by sensing clock frequency
US5581793A (en) * 1993-08-24 1996-12-03 Micron Electronics, Inc. System for bypassing setup states in a bus operation
JP2887572B2 (ja) * 1995-04-07 1999-04-26 富士ゼロックス株式会社 画像出力装置および画像処理方法
US6952801B2 (en) * 1995-06-07 2005-10-04 R.R. Donnelley Book assembly process and apparatus for variable imaging system
JP4501167B2 (ja) * 1998-11-09 2010-07-14 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム
US7002700B1 (en) 2000-09-14 2006-02-21 Electronics For Imaging, Inc. Method and system for merging scan files into a color workflow
US6990904B2 (en) * 2000-10-31 2006-01-31 International Imaging Materials, Inc Thermal transfer assembly for ceramic imaging
US7876977B2 (en) * 2006-02-15 2011-01-25 Conexant Systems, Inc. Image processor and method of image rotation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR245836A1 (es) * 1974-11-11 1994-02-28 Ibm Un dispositivo impresor rapido.
JPS53503A (en) * 1976-06-25 1978-01-06 Bridgestone Corp Puncture-proof pueumatic tyre
US4300206A (en) * 1977-06-30 1981-11-10 International Business Machines Corporation Flexible text and image generator for a raster printer
US4246578A (en) * 1978-02-08 1981-01-20 Matsushita Electric Industrial Co., Ltd. Pattern generation display system
US4379327A (en) * 1980-07-21 1983-04-05 Motorola, Inc. Universal interface circuit for synchronous and asynchronous buses
JPS5776649A (en) * 1980-10-31 1982-05-13 Toshiba Corp Picture information display device
US4396989A (en) * 1981-05-19 1983-08-02 Bell Telephone Laboratories, Incorporated Method and apparatus for providing a video display of concatenated lines and filled polygons
US4454593A (en) * 1981-05-19 1984-06-12 Bell Telephone Laboratories, Incorporated Pictorial information processing technique
US4504828A (en) * 1982-08-09 1985-03-12 Pitney Bowes Inc. External attribute logic for use in a word processing system
IT1161467B (it) * 1983-01-21 1987-03-18 Cselt Centro Studi Lab Telecom Interfaccia di tipo parallelo per la gestione del colloquio tra un bus asincrono e un bus sincrono collegato a piu terminali dotati ognuno di un proprio segnale di sincronizzazione
US4615017A (en) * 1983-09-19 1986-09-30 International Business Machines Corporation Memory controller with synchronous or asynchronous interface
JPS6073671A (ja) * 1983-09-30 1985-04-25 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション パタ−ン処理装置
US4646259A (en) * 1983-11-14 1987-02-24 Minolta Camera Kabushiki Kaisha Strip map memory controller
CA1231186A (en) * 1983-12-20 1988-01-05 Takatoshi Ishii Display control system
US4722064A (en) * 1984-11-27 1988-01-26 Fuji Xerox Co., Ltd. Drawing output unit
US4755956A (en) * 1985-11-01 1988-07-05 Allied-Signal Inc. Freeze frame apparatus for moving map display system

Also Published As

Publication number Publication date
US4891768A (en) 1990-01-02
EP0217448A1 (en) 1987-04-08
EP0217448B1 (en) 1991-07-24
DE3680433D1 (de) 1991-08-29
ATE65626T1 (de) 1991-08-15
JPS6274665A (ja) 1987-04-06

Similar Documents

Publication Publication Date Title
NL8502643A (nl) Werkwijze voor het genereren van lijnstukken.
EP0229412B1 (en) A method of generating line parts
EP0547242B1 (en) Single chip page printer controller
NL8502642A (nl) Raster-beeld-processor.
NL8502640A (nl) Front-end systeem.
EP0241091B1 (en) Apparatus and method for printing information
US5282269A (en) Raster image memory
US4903139A (en) Image generating system for duplex printing
US5043918A (en) Multiple bus image controller structure for color page printers
EP0310712A1 (en) Front-end system for a raster output scanner
NL8502641A (nl) Raster-beeld-geheugen.
US5175821A (en) Printer interface with memory bus arbitration
US6980314B1 (en) Method and device for improving utilization of a bus
JPH0483664A (ja) プリンタ装置
JPS6349437A (ja) 印刷デ−タ制御方式
JPS60245362A (ja) プリンタ制御装置
EP0535145A1 (en) Continuous laser printer

Legal Events

Date Code Title Description
A1A A request for search or an international-type search has been filed
BB A search report has been drawn up
BV The patent application has lapsed