EP0279231B1 - Grafik-Prozessor für ein hochauflösendes Video-Anzeige-System - Google Patents
Grafik-Prozessor für ein hochauflösendes Video-Anzeige-System Download PDFInfo
- Publication number
- EP0279231B1 EP0279231B1 EP19880101084 EP88101084A EP0279231B1 EP 0279231 B1 EP0279231 B1 EP 0279231B1 EP 19880101084 EP19880101084 EP 19880101084 EP 88101084 A EP88101084 A EP 88101084A EP 0279231 B1 EP0279231 B1 EP 0279231B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- memory
- graphics
- processor
- pel
- control
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Definitions
- the present invention relates to a computer graphics and more specifically to a control apparatus for regulating the execution of commands in both a graphics processor and an external graphics memory simultaneously.
- the evolution of computer technology has resulted in the creation of a sophisticated technical area devoted to the representation of graphics information generated by computers. This area is termed computer graphics.
- One graphics technique commonly used to produce an image is that of producing a set of points and connecting these points with straight lines.
- the resulting combination of points and straight lines are displayed on the computer graphics terminal display which normally includes a cathode ray tube (CRT).
- the cathode ray tube includes an array of picture elements.
- the graphics image is produced by illuminating selected picture elements of the array.
- This array of picture elements in a display corresponds to the memory locations in an image memory.
- This image memory is often termed a bit map memory.
- the corresponding CRT display is termed a bit mapped display.
- a very useful function for bit map displays is the ability to move a rectangular block of illuminated picture elements (pels) from one place in the bit map (or display) to another place and to logically combine two subsets of the image array to produce a third image array.
- Another useful function is that of drawing lines between two points. The technique often used to draw these lines is disclosed in a book entitled Fundamentals of Interactive Computer Graphics by James D. Foley and Andries Van Dam published by Addison Wesley Publishing Company, 1982.
- IBM Technical Disclosure Bulletin Vol. 28, No. 6, November 1985, entitled “Graphic Bit-Blt Copy Under Mask” discloses a system for making bit boundary block transfers of arbitrary shapes within a frame buffer.
- IBM Technical Disclosure Bulletin Vol. 27, No. 8, 1985, entitled “Raster Graphics Drawing Hardware” describes the application of programmable logic arrays to the design of hardware circuitry implementing graphics drawing algorithms.
- IBM Technical Disclosure Bulletin Vol. 28, No. 5, October 1985, entitled “Circuit for Updating Bit Map-Memory of A Display Adapter” discloses a circuit for providing bit manipulation flexibility to control picture element data stored in an all points addressable display memory.
- An object of the present invention is to provide a system that can be used, inter alia, for controlling a graphics processor and a graphics memory for rapidly accomplishing bit block transfers and line draw functions.
- a graphics display system comprising a system processor for computing graphics information to be displayed, a graphics processor connected to the system processor for receiving graphics information and for computing picture element data for display, a graphics memory connected to the graphics processor for receiving and storing the picture element data, a display means connected to the graphics memory for displaying the picture element data from the graphics memory, characterised in that the graphics memory includes means for executing memory commands for storing and retrieving data, each memory command being executed during a fixed time cycle and providing at least one graphics memory signal indicating the state of memory command execution to said graphics processor, and said graphics processor includes means for decoding instructions, each decoded instruction providing a memory command and an internal graphics processor command, the internal command being derived from the decoded instruction, the current state of the graphics processor and the graphics memory signals, the graphics processor providing the memory command to the graphics memory and simultaneously executing the internal graphics processor command within the same fixed time cycle.
- the graphics memory receives load and store commands from the processor.
- the processor also performs commands internally.
- These simultaneously executed processor commands perform, in certain instances, addressing computations to compute the addresses for successive memory commands.
- the simultaneous computation of commands internally increases the throughput capability for the processor and memory combination.
- a graphics display system that includes a system processor, a graphics processor, a graphics memory and a display.
- the system processor provides graphics information to the graphics processor.
- the graphics processor provides the memory commands to the graphics memory and includes the capability to execute simultaneously with the memory command executions, internal processor commands.
- the graphics processor provides picture element data to the graphics memory.
- the graphics memory includes a memory array for storing the picture element data. This memory and this image array corresponds directly to the display image to be displayed.
- the display is connected to the graphics memory for directly accessing the picture element data in this memory array.
- control circuitry in the graphics processor which is connected to several registers.
- the registers are accessible by the system processor to receive instructions from the system processor. These instructions specify commands for both the memory and the graphics processor.
- the control circuitry provides for the execution of these commands in these registers in a serial loop fashion.
- This adapter circuit is a high resolution graphics display adapter that in the disclosed embodiment drives an IBM 5081 display monitor unit. This circuit provides a resolution of 1024 by 1024 picture elements with 256 simultaneous colours from a palette of 4,096 possible colours. A general description of this display adapter circuit follows.
- FIG. 1 is a block diagram illustrating the display adapter circuit 17 connected for operation. Specifically, display adapter circuit 17 is connected to a system processor 10 by a system I/O bus 11. Additionally, the adapter circuit 17 is connected to a RGB monitor 30 by an output bus 28.
- the display adapter circuit 17 includes two memories 12A and 12B that are connected to a digital signal processor which is used for circuit resource management and is further used to transform coordinates. In the disclosed embodiment, the digital signal process is of a Harvard architecture requiring separate memories for data and instructions.
- Memory 12A is an instruction RAM that is loaded with microcode to provide instructions to the signal processor 14.
- the memory 12B is a data RAM that provides a primary interface between the signal processor 14 and the system processor 10 and also forms the main data store for the signal processor 14.
- 256K bytes of memory are provided for memory 12B.
- the digital signal processor 14 has an address space of only 128K bytes. Therefore, a bank switching mechanism is provided. Furthermore, in this disclosed embodiment memory located outside of the adapter circuit 17 may be mapped into the digital signal processor 14 address space.
- a first-in, first-out buffer 13 is provided for passing sequential display commands from the data memory 12B to the digital signal processor 14. Further, an instruction ROM 15 is connected via bus 16 to provide the power on and self-test instruction microcode programs for the digital signal processor 14.
- a pel (picture element) processor 18 is also connected to bus 16.
- the function of the pel processor 18 is to draw lines, provide for manipulation of areas of data on the display screen and provide bit map memory control. This manipulation of areas on the display screen is termed bit block transfer or BITBLT.
- the pel processor 18 also includes control and status registers that along with other functions allow the system processor 10 to interrupt, disable or reset the signal processor 14 and allow the signal processor 14 to interrupt the system processor 10.
- the pel processor 18 is connected via bus 20 to a bit map memory 22.
- the bit map memory 22 is organised as 1024 by 1024 by 8 bits.
- the bit map memory 22 also includes the capability to provide an overlay plane that can be used to provide blinking or highlighting to data on the display.
- a video stage 26 is connected to the bit map memory 22 via bus 24 and transforms the data in the bit map memory 22 into a video signal for the video monitor 30. This video stage 26 provides this transformation via a digital to analog circuit.
- a colour palette circuit is also included in the video stage 25 that provides 256 simultaneously displayable colours from a larger palette of colours. This is accomplished through video lookup tables than translate the value in the bit map to a value with more bits and thus a greater range of colours is provided. With this greater range of values provided by the colour palette, more colours are provided than would be provided by use of the bits in the bit map memory 22 alone.
- a hardware cursor 21 is connected to the video stage 26 via bus 24 and provides a full screen cross hair and/or a bit programmable cursor.
- the full screen cross hair can be programmed to one of several widths.
- this cross hair can also be scissored (reduced in size) to provide various smaller sizes.
- the display adapter circuit 17 uses the digital signal processor 14 as a primary interface to the system processor 10.
- the digital signal processor is a Texas Instruments TMS 32020 digital signal processor which executes 5 million instructions per second. Therefore, it is well suited to perform such tasks as matrix multiplications which are used to translate, scale and rotate vectors on the screen.
- the digital signal processor can address a data space of 64K of 16 bit words and an instruction space of the same size. As mentioned earlier, a portion of the data space may be located within the adapter circuit 17 or remote from the adapter circuit 17.
- the digital signal processor 14 can be interrupted by the system processor 10 or by the pel processor 18.
- the pel processor 18 can generate interrupts to the digital signal processor 14 or the system processor 10 upon the occurrence of a task complete addition or the condition where a vertical retrace has been started.
- the digital signal processor 14 also includes a timer which can be used to control the time between display updates.
- the ROM 15 is provided with the initial power-up instruction sequence for the digital signal processor 14.
- the ROM 15 is provided with 16K bytes of information and includes a power-on self-test program and a graphics display adapter emulation program.
- the power-on self-test program provides an indication that immediately after a power-up condition or a reset condition that the adapter circuit 17 is functioning properly.
- the data RAM 12B provides 256K bytes of RAM in the adapter circuit 17 for the signal processor 14 to use as storage. 1K byte of the 256K byte data space is overlayed by the signal processor 14 internal registers.
- the data memory 12B consists of dynamic RAM, which is refreshed by logic within the display adapter circuit 17. This memory is operated in a page mode so that accesses to two words loaded on the same page (i.e., in the disclosed embodiment in the high order 8 address bits) will require no wait states for the digital signal processor 14. Accesses to words on a new page will result in a single wait state. Thus, locating frequently referenced data in internal registers or grouped together on a single RAM page will increase performance by not incurring any wait stages.
- the digital signal processor 14 data addressing capacity is limited to 64K words, a bank switching mechanism is provided to extend its address space. This scheme allows a full access to the data memory 12B. Presently, four banks (64K bytes for each bank for a total of 256K bytes) have been implemented. However, the address logic in architecture may provide for up to 16 banks in this disclosed embodiment.
- the RAM is dual ported, that is the system processor 10 and the signal processor 14 have concurrent access to it. Since both processors 10 and 14 have easy access to this memory, it provides for a convenient communications channel between the two processors 10 and 14.
- the signal processor 14 can also address memory located remote from the display adapter circuit 17 as an extension of this data RAM 12B, by first acting as a first party bus master on bus 11. Both memory on the I/O bus 11 and within the system processor's 10 main memory may be accessed in this manner.
- the signal processor 14 can put a full 24 bit address on bus 11 and so has a potential of addressing 16 megabytes of memory.
- the mapping of data space remote from the adapter circuit 17 is controlled by a Bank/Extended Address Register within the signal processor 14.
- the 16 bit address bus of the signal processor 14 is extended to 24 bits with this register. Access may be made in burst mode, buffered mode, or singly. The length of the burst in burst mode is software controllable. Four to sixteen wait states are required for access to remote memory.
- the instruction memory 12A provides 128K bytes of memory in the disclosed embodiment to the digital signal processor 14 to use as an instruction space. This is in addition to the instruction space provided by ROM 15. However when the ROM 15 is mapped into an instruction space, it overlays an equivalent amount of instruction RAM 12A. This is done because the digital signal processor 14 can only address a total instruction space of 128K bytes.
- the instruction memory 12A consists of dynamic RAM which is refreshed by logic on the adapter circuit 17.
- the instruction RAM 12A is operated in a page mode so that access to words located on the same page (i.e., the high order 8 bits) requires no wait states for the signal processor 14. Accesses to a new page results in one wait state. Therefore, locating frequently executed code loops on the same page within the instruction memory 12A or within the signal processor 14 internal instruction memory will provide a maximum execution speed.
- This instruction memory 12A is also dual ported providing concurrent access from the system processor 10 or the signal processor 14.
- the FIFO buffer 13 is 1K words in length.
- the system processor 10 may load commands and/or data into this buffer providing access to the digital signal processor 14 which can then sequentially access this information.
- display information from the system processor 10 is provided.
- the buffer 13 includes three flags: empty flag, half full flag and full flag which can be read by the system processor 10 to determine if there is room to write more information into this buffer 13.
- this buffer 13 has three interrupts associated with it. A half full interrupt, a half empty interrupt and a buffer overflow interrupt are provided. The first two may be used to pace write operations to the buffer 13 without polling the flags, while the last would normally be considered an error condition.
- the digital signal processor 14 also has access to the flags to determine if more information can be read from the buffer 13.
- the pel processor 18 assists the signal processor 14 in updating the bit map memory 22 quickly.
- the pel processor 18 can either draw lines into the bit map memory 22 or manipulate rectangular blocks of data bits (BITBLT) in the bit map memory 22.
- the pel processor 18 can either be given the end points of the line, with Bresenham's parameters calculated by the pel processor 18, or the end points along with the parameters needed by the Bresenham's incremental line drawing algorithm.
- the latter approach allows more control over the vector to raster translation and may be useful for special cases such as wide lines.
- line attributes of colour and pattern are supported directly by the pel processor 18. Support of the line width attribute requires more intervention by the signal processor 14. Lines may be drawn in replace mode, exclusive OR mode, or line on line mode.
- Bit block transfers are also performed by the pel processor 18. Some of the bit block transfers operate with minimal processor intervention while others require more intervention.
- the bit block transfer includes the operation of an inner loop and an outer loop and the implementation in this embodiment provides that the inner loop may be either horizontally or vertically oriented. This option is particularly useful when transferring images of character strings to the bit map memory 22.
- the pel processor 18 has the ability to provide bit block transfers with colour expansion. Colour expansion is defined as the process of taking data in which each active bit represents a pixel of a known colour and a zero indicates transparency (i.e., the frame buffer is not altered for this pixel location). This mode offers a performance advantage as each word of data represents 16 pixels of screen memory rather than 2.
- the digital signal processor 14 or the system processor 10 can define an active region of the bit map memory 22 where drawing occurs. For line draw and block transfer operations, only pels that are to be drawn in this active region will be written to the bit map memory 22. Line draw and block transfer operations resulting in drawing outside of this area will be performed but the resulting pel information will not be written to the bit map memory 22. The use of this active drawing region is termed scissoring.
- a further feature of the pel processor 18 is the pick window.
- This window can be defined to the pel processor 18 and when enabled any access to the frame buffer within this window causes an interrupt to the signal processor 14. This can be used while drawing objects to identify any part of the object which falls within the specified window.
- the pel processor is normally controlled by the signal processor 14, however, the system processor 10 may disable the signal processor and control the pel processor 18 directly.
- the pel processor 18 will be discussed in more detail later.
- the bit map memory 22 consists of 1 megabyte of video RAM.
- the bit map memory 22 is displayed on the screen as a 1024 by 1024 pel image with 8 bits per pel.
- the pel processor 18 acts as the interface between the system processor 10 or signal processor 14 and the bit map memory 22.
- the bit map memory 22 will be read as either two horizontally adjacent pels or four horizontally adjacent half pels (wherein a half pel is defined as either the first four or last four bits of a full pel).
- the bit map memory 22 is pel addressable. That is, X and Y address registers in the pel processor 18 are used to indicate the pel being addressed.
- bit map memory 22 The organisation of the bit map memory 22 is shown in Figure 2.
- the pels are arranged in 4 x 4 squares. Each pel is 8 bits deep. The 8 bits represent 8 planes 400 through 407.
- Pel memory modules on the same rows share a common row address strobe (RAS) line. Those in the same column share a common address strobe (CAS) line. The same address lines are shared by all the pel memory modules.
- RAS row address strobe
- CAS common address strobe
- Both the serial data lines used to refresh the screen and the parallel data lines used to read and write the bit map are connected in columns. Thus, data can be read from one of four layers and loaded into accumulators.
- Each of the 16 pel memory modules in the 4 x 4 array has its own write enable that is controlled by the direct mask register and the Bresenham line drawing circuits in the pel processor 18.
- the mutliple RAS lines 410, 412, 414, and 416 and the multiple CAS lines 418, 420, 422, and 424 are used to strobe different addresses in the pels. This allows "access" to a 4 x 4 square word that is addressed by the X and Y pel address registers to be misaligned with the displayed words that are scanned onto the screen.
- Figure 3 shows the waveforms for the RAS lines 410, 412, 414 and 416 and the CAS lines 418, 420, 422, and 424 that are used to strobe the addresses into the pel memory 22 and align the access word with respect to the displayed words.
- An overlay plane, actually plane 7 (407 in Figure 2) of the bit map memory 22 can be used in conjunction with the colour palette feature of the video stage 26 to provide highlighting or blinking at a programmable rate. With blinking enabled any pixel with a 1 in this plane will blink at the programmable blink rate. With highlighting enabled a 1 in the overlay plane overrides the normal colour palette process in the video stage 26 and substitutes a colour from a three entry overlay colour palette. Note that the use of the overlay plane will effectively reduce the available colours for the colour palette feature in the video stage 26.
- the video stage 26 includes a colour palette feature.
- the colour palette translates the 8 bit value stored in the bit map memory 22 into one of 4,096 colours.
- the output of this colour palette feature provides 4 bits to each of 3 digital to analog converters.
- the digital to analog converters in turn drive the red, green and blue colour guns of the monitor 30.
- Each 4 bit section of the look-up table maps the 8 input bits from the bit map into one of sixteen analog output levels.
- the colour palette feature may be loaded by the signal processor 14 or when the signal processor 14 is disabled, by the system processor 10.
- the hardware cursor 21 provides a full screen cross hair and/or a 64 x 64 user programmable cursor.
- the full screen cross hair can be programmed to one of several widths and scissored.
- the output of the hardware cursor is fed to the colour palette feature of the video stage 26.
- the system processor 10 provides high level graphics orders to the signal processor 14. Status and other information is passed from the signal processor 14 to the system processor 10.
- the signal processor 14 breaks down the high level graphics orders from the system processor 10 into a series of low level graphics commands which are then passed to the pel processor 18 via the input bus 16.
- This input bus 16 includes address, data and control information. If the signal processor 14 has been disabled, the system processor 10 can transfer low level commands and retrieve data directly from the pel processor 18 by means of the input bus 16. Access to the bit map memory 22 is controlled by the pel processor 18. The accesses to the bit map memory 22 take place over bus 20 which provides address data and control information.
- a block diagram of the pel processor 18 is shown in Figure 6.
- Control of the bit map memory 22 in execution of low level graphics command is achieved by writing control parameters from either the system processor 10 or the signal processor 14 into the pel processor control logic 44 via the input bus 16. These parameters are decoded within the dynamic control mechanism 45, generating control and timing signals for the other parts of the pel processor circuitry and which are provided via line 60.
- the endpoint address information for a low level order is communicated to the pel processor 18 by the pel processor input bus 16 and stored in the input queue contained in the endpoint logic 40. Depending on the order being processed (either line draw or bit block transfer), various operations are performed.
- the endpoint data is used to calculate parameters used in executing Bresenham's line draw algorithm in the address count logic circuitry 50.
- the endpoint logic 40 simply queues the input data until this data can be transferred to the address count logic 50. Communications of the endpoint and line draw parameters from the endpoint logic 40 to the address count logic 50 takes place over the address/parameter bus 46. When these parameters have been loaded into the address count logic 50, the endpoint logic 40 is free to accept new endpoint data for the next graphics order.
- the address count logic 50 uses the parameters to generate the bit map addresses needed to complete the order being executed, and, in addition uses some parameters to sequence the task and determine when the task has been completed.
- the address count logic 50 manipulates coordinates in 10 bit fields.
- the upper 8 bits of the field form the bit map memory addresses 20.
- the lower 2 bits of both the X and Y coordinates are passed to the RAM control logic 52 via the pel bus 56 where they are decoded into bit map control signals on line 20.
- These bits are also passed to the data path merge logic 54 via the pel bus 56 where they are used to control data being stored into or retrieved from the bit map memory 22.
- the data path merge logic 54 serves as the bridge between the system and display processor buses and the bit map memory data bus 20.
- System processor 10 data can be transferred between or combined with bit map data using the merge logic 54. Data being transferred to and from the system processor 10 is controlled by the data path synchronisation circuitry 42 and passed via the merge bus 48.
- the bit block transfer task ( Figure 7A) consists of moving rectangular blocks of data from a source area of the bit map memory 22 to a destination area of the bit map memory 22. This task is commonly used to "scroll" information on the screen or to display a pop-up menu.
- Line drawing ( Figure 7B) which consists of connecting two points in the bit map memory 22 via straight line, is also a commonly used function. Both of these tasks form the foundation of higher level graphics operations, such as multiple source bit block transfers, pattern lines, polygon drawing, etc. For this reason, it is essential to perform these base functions as effectively as possible.
- Loading the Y address value of P2 signals the pel processor 18 to begin task execution.
- the address and parameter counters within the address count logic begin to access the bit map memory locations along with the width dimension of the bit block transfer, alternately accessing the source, then the destination addresses.
- the address counters are automatically counted and reloaded to begin the next line. This process continues until the bottom of the bit block transfer is reached.
- the address counters generate a 10 bit pel address, and the upper 8 bits are used as the bit map memory address 20, while the lower 2 bits 56 are used as the pel decode in the RAM control logic 52 ( Figure 6), and the merge logic 54.
- the merge logic 54 takes the data read in from the source location, aligns it, and passes it out to be stored in the destination locations.
- Figure 7B illustrates a line draw task.
- the end points of the line, P1 (150) and P2 (152) are loaded into the endpoint logic 40 ( Figure 6).
- Loading the Y address value of P2 (152) signals the pel processor 18 to begin execution.
- the endpoint logic begins to calculate the various Bresenham parameters associated with the line to be drawn.
- the parameters are passed to the address count logic 50.
- the address count logic will begin generating pel addresses for each pel in the line.
- the upper 8 bits of the address will serve as the bit map address 20 as before.
- the lower 2 bits 56 of the pel address are passed to the RAM control logic 52, where they are used to generate the appropriate write enables to draw the line into the bit map.
- Figure 8A is a software flow diagram illustrating the bit block transfer function.
- the pel processor 18 is in the idle state 160 until it receives the bit block transfer end points as illustrated in step 162. If the end points have not yet been received, the pel processor 18 remains in a idle state 160 searching for the end points. When the end points have been received, the pel processor 18 proceeds to step 164 to calculate the inner and outer loop values. In 166 the inner loop incrementing begins with the X pel address being incremented. In step 168 a decision is made as to whether or not the inner loop has been completed. If the inner loop has not been completed, the processor 18 returns to step 166.
- step 170 the processor 18 proceeds to step 170 to step the outer loop set the Y pel and reload the inner loop counter.
- step 172 a decision is made as to whether or not the outer loop has been completed. If the outer loop has not been complete, when the pel processor 18 returns to step 166. If so, the pel processor 18 returns to the idle state 160.
- FIG. 8B illustrates a flow chart for the Bresenham line draw algorithm.
- the Bresenham algorithm has disclosed in the Fundamentals of Interactive Computer Graphics by James D. Foley and Andries Van Dam, published by Addison Wesley Publishing Company, 1982 and appearing on pages 433-435.
- An over simplified explanation of the Bresenham algorithm is that it determines which picture elements in an array of picture elements should be illuminated to represent an approximation of a straight line in this array of picture elements.
- the algorithm uses the slope between the two end points to determine a set of parameters that are used to designate which pels are to be activated.
- the pel processor 18 initially loops between an idle state 174 and a decision state 176 until the line end points have been received.
- step 178 the processor 18 proceeds to step 178 to calculate an initial error term, I1, I2, and the line length.
- the processor 18 then proceeds to step 180 to determine if the error term is less than 0. If not, the pel processor 18 proceeds to step 184 where the error term is added to I2 and the Y pel address is incremented.
- the pel processor 18 proceeds to steps 186 to increment the X pel.
- a decision is made in step 188 to determine if all the pels have been processed. If not, the processor 18 returns to step 180 to examine the error term. If the error term is less than 0, then the processor 18 proceeds to step 182 to add the constant I1 to the error term.
- the pel processor 18 then proceeds to step 186 as before. When it is determined that all the pels have been processed (step 188), the processor 18 returns to the idle state 174. It should be understood that the slope of the line to be drawn and its direction will determine which address counter is being conditionally counted.
- control logic 44 controls the internal operation of the pel processor 18.
- the control logic is connected to the system processor 10 and the digital signal processor 14 by bus 16.
- the control logic 44 provides control signals on line 60 to various other blocks illustrated in Fig. 6.
- Fig. 9 illustrates in greater detail the contents of control logic 44.
- a section of this control logic illustrated in Fig. 6 is a block 45 that is illustrated in Fig. 9 as a functional control circuit 45 containing command registers, decoding circuitry and task execution circuitry.
- Controller 45 is connected to control decoder circuitry 100.
- Controller 45 is further connected to a memory cycle arbitration unit 106 and a memory cycle state machine 104.
- the memory cycle arbitration unit 106 is connected to a refresh timer 102.
- the control circuit 45 exercises a dynamic control over the executions of these tasks.
- the control registers contained in controller 45 are loaded from bus 16. These registers contain instructions that provide both commands for internal computation by the pel processor 18 and commands for the bit map memory 22. In operation the commands for the bit map memory 22 and the commands for the pel processor 18 are executed simultaneously.
- controller 45 includes four instruction registers and further includes control circuitry that executes these four instructions in a looping fashion. In this embodiment four types of instructions may be executed. These include read, write, load, store. The read and write instructions provide data access between the bit map memory 22 and the system processor 10 or digital signal processor 16 via the pel processor 18. The load and store instructions provide direct access between the bit map memory 22 and the pel processor 18.
- control logic 45 determines if a setup is in progress on line 78. If no setup is in progress, then a setup cycle is requested by a signal on line 76 to the memory cycle arbitration unit 106. Likewise, during a memory cycle execution, the control circuitry 45 first determines if a memory cycle is in progress by examining the signal on line 82 and if not providing a signal on line 80 to initiate a memory cycle. During the execution of a setup cycle, setup control signals are provided on lines 90.
- memory cycle control signals are provided on lines 92.
- the control circuitry 45 receives the inner and outer loop counts via lines 60E.
- Line 84 provides the instruction type currently being executed by the controller 45 to the memory cycle state circuit 104.
- the function of the memory cycle arbitration unit 106 is to allocate time periods for the bit map memory 22, memory cycle refresh, screen refresh, cycle, setup cycle memory cycle and to determine when memory cycles and setup cycles are in progress.
- the memory cycle arbitration unit 106 is connected to the memory cycle state circuit 104 via lines 72 and 74 providing an initiation signal on line 72 and completion signal on line 74.
- the memory cycle state circuit 104 provides the memory cycle state outputs on lines 70 to drive the control decoding circuit 100.
- the control decoding circuit 100 actually provides the memory control signals to the bit map memory 22. Additionally, control decoding circuitry 100 provides control signals to the remaining functional blocks in the pel processor 18 as illustrated in Fig. 6.
- Timer 102 is connected to the memory cycle arbitration unit 106 to provide a signal when memory refresh and screen refresh is required.
- Fig. 10 is illustrated a timing diagram of the execution of setup cycles and memory cycles for the decoding of instructions and the control register contained in control circuitry 45.
- the first command is read and a setup cycle requested.
- a setup cycle for the first instruction is begun.
- the execution of the memory cycle for that first instruction is executed (126).
- the execution of the setup cycle for the second instruction is begun (127).
- Fig. 11 illustrates the contents of control circuitry 45.
- Two registers 140 and 141 termed static control registers are contained in control circuitry 45 to maintain constant control signal data during the operation of the control circuitry 45. These constants are loaded from the bus 16. These registers provide outputs on lines 90 and 92 for the control decoder 100 (Fig. 9) .
- the heart of the control circuitry 45 is the dynamic control instruction file 148 that includes four instruction registers 148A, 148B, 148C, and 148D. The execution of instructions contained in these four registers 148A-D controlled by the loop control and task sequencer circuit 144. The sequencer 144 receives the begin task execution signal on line 60D and the inner loop/outer loop counts on line 60E.
- the sequencer circuit 144 provides the request setup signal on line 76 and the request memory cycle signal on line 80. It also receives the setup grant signal on line 78 and the memory cycle grant signal on line 82.
- the dynamic control instruction file 148 is connected to three latches 152, 154, and 156. When an instruction is to be executed, it is first latched into latch 152 by the sequencer 144. During the latching of this instruction sequencer 144 determines if it is a loop instruction via line 147. Data from register 148 is latched to latch 150 when the control word CWO is read at time 122 (Fig. 10). The data from latch 152 is transferred to latch 154 at the start of the instruction setup cycle 123.
- Data from latch 154 is transferred to latch 156 at the beginning of the instruction memory cycle 129.
- the instruction is latched into latch 154.
- the instruction in latch 154 contains bits which supply signals on lines 90 designating the setup cycle control signals. These signals are provided to the control decoder 100 (Fig. 9).
- the control decoder 100 Fig. 9
- the same instruction that was in latch 154 is transferred into latch 156, it provides the memory cycle control signals on lines 92 and also a memory cycle designator on line 84 to the memory cycle state machine. Therefore, during any given fixed time period, control signals are being provided on lines 90 and 92 simultaneously.
- Fig. 12 is a flow chart illustrating the operation of the control circuitry 45.
- the control circuitry 45 first enters an idle state 300 until it receives the start signal on line 60D. Steps 301 and 300 are repetitively executed until the start signal on lines 60D is received.
- step 302 is executed which initialises certain registers.
- step 303 the control circuitry determines from examining line 78 whether a setup cycle is pending. If so, step 305 is executed where the controller waits until the cycle is complete. If not setup is pending, the controller 45 proceeds with step 304 to request a setup cycle by placing a signal on line 76.
- the controller determines if the instruction contained within the latch (152) requires looping.
- step 306 determines whether the setup cycle has been granted via line 78 is made. If the setup cycle has not yet been granted, then the controller waits in step 311 until this process is granted. And then the controller proceeds to step 318 where it determines if certain control circuitry is busy due to requirements from the system processor 10 or the signal processor 14. If so, then the controller waits in step 319 until the this circuitry is not busy. The execution of the load and store instructions will not require any interface by the system processor 10 or the signal processor 14 and therefore the controller 45 will always pass through this state when executing load and store instructions. If the circuitry is not occupied with communications with the signal processor 14 or the system processor 10, controller proceeds to step 320 to initiate the memory cycle. This is accomplished by first looking at the grant line 82 to determine if the memory cycle is in progress, if not then the memory cycle is requested by placing a signal on line 80. The controller then returns to step 303.
- step 307 if a loop instruction is to be executed, the instruction counter is cleared in step 308 to insure that this execution is looped.
- step 310 the controller waits until an indication that it can test the counter state. These counters are contained in block 50 (Fig. 6) and are providing the address counting for the bit block transfer algorithm and line draw algorithm.
- step 312 a decision is made whether it is time to test it, if not, the controller loops back to step 310. When the counters can be tested, the controller proceeds to step 313 to determine if the task has been accomplished. If not, the controller proceeds to step 315 to determine if a bit block transfer line has been completed. In other words, if the inner loop counting is complete for this transfer. If so, then the inner loop counter is reloaded in step 316 and the outer loop counter is decremented. If not, or after step 316 has been accomplished, the controller proceeds to step 318 previously discussed.
- step 314 determines if the controller 45 is interfacing to either the system processor 10 or the signal processor 14. This wait step is 315 which is similar to step 319 previously discussed. If the circuitry is not busy the controller proceeds to step 317 which is similar to set 320 in the initialisation of the memory cycle. The controller then proceeds back to the idle step 300.
- the memory cycle state circuit 104 will sequentially provide one of eight states.
- Figure 13 is a flow chart illustrating the operation of the memory cycle state circuitry 104.
- This state circuitry 104 initially starts in step 330 in idle until it receives a signal on line 72 from the memory cycle arbitration unit 106. A decision is made in step 331 when this signal has been received. When such a signal is received, the memory state circuitry 104 then sequentially provides five states 332-336. In step 337 it is determined whether or not the cycle that has been requested is a memory refresh cycle. If so, then the state circuitry 104 returns to idle state 330 and if not the state circuitry 104 provides steps 338-340. It should be understood that these eight states from the memory state circuitry 104 provide information for both the setup cycle and memory access cycles.
- the state condition output from state circuitry 104 is provided on lines 70 to the control decoder 100.
- Fig. 14 illustrates the output signals from the control decoder 100 for each of the eight stages for a setup cycle.
- a reset line 350 is dropped to reset the mask for the write enable control signals.
- the write enable control signals are used to control not only timing of the memory access but also to control which bits of the provided data is written into memory.
- the setup clock in line 351 is also activated as is a latch signal on line 352.
- Line 352 activates a latch to store the current or soon to be old address.
- Line 353 is activated during the seventh state to latch the new computed address.
- Line 354 is active during states 2, 3, 4 and 5 and provide clocking signals for the calculation of addresses.
- step 356 provides the test signal to the controller 45 to indicate that the counters can now be tested (i.e., step 312 in Fig. 12).
- step 357 a clear signal is active during state 2 to provide the grant signal on line 78.
- All of the instructions such as read, write, load and store include a setup cycle. All setup cycles are conducted in accordance with the timing diagram of Fig. 14.
- the read and write instructions entail access to either the signal processor 14 or the system processor 10.
- the load and store instructions only entail activities between the pel processor 18 and the bit memory 22.
- Fig. 15 is a flow chart illustrating the execution of the read, write, load and store instructions. To avoid confusion only the load and store instructions will be discussed since the read and write instructions do include load and store but also require interfacing to the system processor 10 or the signal processor 14.
- Figs. 16 and 17 The timing diagrams for the load and store instructions are provided in Figs. 16 and 17. It should be understood that these cycles are similar to the setup cycle timing in Fig. 14. However, the control signals provided by the control decoder 100 are as illustrated in Figs. 16 and 17 as a result of the states of the memory cycle state circuit 104. Referring to Fig. 16, two row address strobe timing signals 360 and 361 and two column address strobe timing signals 362 and 363 are provided to access the bit map memories. Line 364 is provided to pass data from the memory into the pel processor 18. Line 365 is a data latch signal. Line 366 provides the memory cycle grant on line 82. Line 367 designates the availability of the row address and column address signals. Line 368 is used in column and row address calculations.
- Fig. 17 is the timing diagram for a store cycle and is similar to Fig. 16 and will not be discussed further.
- Fig. 18 is a bit format listing for instructions that are contained in the control registers 148.
- Bit position 350 specifies whether or not the instruction is a loop instruction. This is used in decision step 307 of Fig. 12.
- Bit positions 352 specify the instruction type, i.e., read, write, load or store. This is used to provide the signal on line 84 (Fig. 9).
- Bit positions 353 specify the data paths to be activated in the data path merge logic 54.
- Fig. 19 illustrates the bit formats for the contents of the static control register 140. These bits provide information to the control decoder 100 (Fig. 9) on lines 90 for the setup cycle.
- Fig. 20 provides the data format for the static control register 141. These bits specify the types of memory access to the control decoder 100 on the memory cycle control lines 92.
- FIG. 21 an illustration is given of a bit block transfer of information from a source area 360 to a destination area 362.
- the contents of the control instruction register 148 is illustrated to accomplish this transfer of Fig. 21.
- Two instructions are required as illustrated by instructions 364 and 366 operating in a loop fashion.
- the contents of the static control registers 140 and 141 are illustrated in block 368.
- Fig. 23 illustrates the drawing of a single line 370. In Fig. 24 this is accomplished by a single instruction in the control register 148 consisting of an instruction illustrated as 372. The contents of the static control registers 140 and 141 are illustrated in block 374.
- Fig. 25A illustrates a bit block transfer operation including two source areas 376 and 378 that are combined in a logic operation 380 to provide a destination area 382.
- An example is illustrated in Fig. 25B combining the lines of 376 ⁇ plus 378 ⁇ in an OR operation to result in a composite screen 382 ⁇ .
- the dynamic control register instructions are illustrated in Fig. 26 as blocks 384, 386 and 388. Contents of the static control registers 140 and 141 are illustrated in block 400.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Claims (6)
- Grafisches Anzeigesystem enthaltend:
einen Systemprozessor (10) zum Berechnen der anzuzeigenden Grafikinformationen;
einen Grafikprozessor (18) in Verbindung mit dem Systemprozessor (10), um die Grafikinformationen aufzunehmen und die Bildelementdaten für die Anzeige zu berechnen;
einen an den Grafikprozessor (18) zum Aufnehmen und Abspeichern der Bildelementdaten angeschlossen Grafikspeicher (22);
ein an den Grafikspeicher (22) angeschlossenes Anzeigemittel (30) zum Anzeigen der Bildelementdaten aus dem Grafikspeicher (22);
dadurch gekennzeichnet, daß
der Grafikspeicher (22) Mittel zur Ausführung der Speicherbefehle zum Anspeichern und Anrufen von Daten enthält, wobei jeder Speicherbefehl während eines festen Zeitzyklus ausgeführt wird, und wenigstens ein Grafikspeichersignal erzeugt wird, das den Zustand der Speicherbefehlsausführung an diesen Grafikprozessor (18) gibt, und
dieser Grafikprozessor Mittel (45) zum Dekodieren von Anweisungen enthält, wobei jede dekodierte Information einen Speicherbefehl und einen internen Grafikprozessorbefehl beinhaltet, wobei der interne Befehl aus der dekodierten Anweisung, aus dem augenblicklichen Status des Grafikprozessors und aus den Grafikspeichersignalen abgeleitet wird, wobei der Grafikprozessor den Speicherbefehl an den Grafikspeicher gibt und gleichzeitig den internen Grafikprozessorbefehl innerhalb des gleichen festen Zeitzyklus ausführt. - Ein grafisches Anzeigesystem gemäß Anspruch 1, in dem das Grafikprozessormittel Steuermittel (144) aufweist, die mit wenigstens zwei Registern (148) verbunden sind zwecks Ausführung der Anweisungen in den Registern in einer seriellen Schleife.
- Ein grafisches Anzeigesystem gemäß Anspruch 2, in dem die Register des grafischen Prozessors Anweisungen von dem Systemprozessor erhalten.
- Ein grafisches Anzeigesystem gemäß Anspruch 3, in dem die Register an eine Vielzahl seriell zusammengeschlossener Zwischenspeicher angeschlossen sind, die jeweils mit entsprechenden Decodierermitteln verbunden sind, wobei diese Zwischenspeicher Anweisungen von den Registern her aufnehmen und eine Vielzahl von Steuersignalen liefern unter gleichzeitiger Festlegung von Speicherbefehlen und internen Prozessorbefehlen.
- Ein grafisches Anzeigesystem gemäß Anspruch 4, in dem jede Anweisung innerhalb der Steuerregister durch die Steuermittel seriell auf die Zwischenspeicher übertragen wird.
- Ein grafisches Anzeigesystem gemäß Anspruch 5, in dem jeweils während einer festen Zeitperiode eine Anweisung in einen Zwischenspeicher geladen wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1384987A | 1987-02-12 | 1987-02-12 | |
US13849 | 1987-02-12 |
Publications (3)
Publication Number | Publication Date |
---|---|
EP0279231A2 EP0279231A2 (de) | 1988-08-24 |
EP0279231A3 EP0279231A3 (de) | 1991-07-03 |
EP0279231B1 true EP0279231B1 (de) | 1994-01-19 |
Family
ID=21762105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19880101084 Expired - Lifetime EP0279231B1 (de) | 1987-02-12 | 1988-01-26 | Grafik-Prozessor für ein hochauflösendes Video-Anzeige-System |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0279231B1 (de) |
JP (1) | JPS63201791A (de) |
BR (1) | BR8800332A (de) |
DE (1) | DE3887176T2 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772119A3 (de) * | 1995-10-31 | 1997-12-29 | Cirrus Logic, Inc. | Automatische graphische Operationen |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4296476A (en) * | 1979-01-08 | 1981-10-20 | Atari, Inc. | Data processing system with programmable graphics generator |
JPS569138U (de) * | 1979-06-30 | 1981-01-26 | ||
US4425616A (en) * | 1979-11-06 | 1984-01-10 | Frederick Electronic Corporation | High-speed time share processor |
JPS57109084A (en) * | 1980-12-26 | 1982-07-07 | Fujitsu Ltd | Schedule system for instruction in parallel computer having plural operating devices |
JPS58137069A (ja) * | 1982-02-08 | 1983-08-15 | Nec Corp | マルチプロセツサ制御方式 |
JPH079569B2 (ja) * | 1983-07-01 | 1995-02-01 | 株式会社日立製作所 | ディスプレイコントローラ及びそれを用いた図形表示装置 |
US4602331A (en) * | 1983-06-30 | 1986-07-22 | Burroughs Corporation | Magnetic tape-data link processor providing automatic data transfer |
US4626839A (en) * | 1983-11-15 | 1986-12-02 | Motorola Inc. | Programmable video display generator |
EP0482678B1 (de) * | 1984-07-23 | 1998-01-14 | Texas Instruments Incorporated | Videosystem |
-
1988
- 1988-01-12 JP JP327888A patent/JPS63201791A/ja active Pending
- 1988-01-26 DE DE19883887176 patent/DE3887176T2/de not_active Expired - Fee Related
- 1988-01-26 EP EP19880101084 patent/EP0279231B1/de not_active Expired - Lifetime
- 1988-01-28 BR BR8800332A patent/BR8800332A/pt not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
DE3887176T2 (de) | 1994-06-30 |
EP0279231A3 (de) | 1991-07-03 |
BR8800332A (pt) | 1988-09-13 |
EP0279231A2 (de) | 1988-08-24 |
DE3887176D1 (de) | 1994-03-03 |
JPS63201791A (ja) | 1988-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4916301A (en) | Graphics function controller for a high performance video display system | |
EP0279229B1 (de) | Grafik-Anzeigesystem | |
US4870406A (en) | High resolution graphics display adapter | |
EP0279225B1 (de) | Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen | |
US5091720A (en) | Display system comprising a windowing mechanism | |
EP0071725B1 (de) | Verfahren zur Verschiebung von Texten und grafischen Daten in selektierte Bildfenster auf einer graphischen Darstellung | |
EP0279230B1 (de) | Video-Schnittstelle mit Datenfluss | |
EP0568078B1 (de) | Externes Interface für einen hochleistungsfähigen Graphikadapter, das die graphische Kompatibilität gewährt | |
US5696540A (en) | Display controller | |
US4566005A (en) | Data management for plasma display | |
CA1191966A (en) | Video computing system with automatically refreshed memory | |
EP0201210B1 (de) | Videoanzeigesystem | |
US5185859A (en) | Graphics processor, a graphics computer system, and a process of masking selected bits | |
US4616220A (en) | Graphics display comparator for multiple bit plane graphics controller | |
EP0279227B1 (de) | Vektorgenerator für Raster-Bildschirmanzeige | |
EP0182454B1 (de) | Steuerlogik für ein Videosystem mit einer Schaltung, welche die Zeilenadresse ausser Kraft setzt | |
EP0752694B1 (de) | Verfahren zum schnellen Ausmalen und Kopieren von Bildelementen kurzer Wortlänge in einem breiteren Rasterpufferspeicher | |
US4562450A (en) | Data management for plasma display | |
EP0279231B1 (de) | Grafik-Prozessor für ein hochauflösendes Video-Anzeige-System | |
US4566004A (en) | Data management for plasma display | |
EP0121070A2 (de) | System zur Steuerung von Plasmabildschirmen | |
CA1229439A (en) | Data display system | |
JPH03132793A (ja) | デイスプレイ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB IT |
|
17P | Request for examination filed |
Effective date: 19881130 |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB IT |
|
17Q | First examination report despatched |
Effective date: 19920922 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED. Effective date: 19940119 |
|
REF | Corresponds to: |
Ref document number: 3887176 Country of ref document: DE Date of ref document: 19940303 |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 19941220 Year of fee payment: 8 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 19941223 Year of fee payment: 8 |
|
26N | No opposition filed | ||
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 19950117 Year of fee payment: 8 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Effective date: 19960126 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 19960126 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Effective date: 19960930 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Effective date: 19961001 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST |