VIDEO DISPLAY SYSTEM

Abstract: A display memory which stores information to be displayed on a raster scan CRT comprises a first storage element (14') for storing dot information, a second storage element (14'') for storing behaviour information, and a third storage element (12) for storing characteristic information. The first, second, and third storage elements are each arranged in an nxm plane where m is an addressable location and each addressable location within each plane has n bits of information. Further, each of the first, second, and third storage elements has address terminals each operatively connected to a display address but (Figure 6) adapted to receive address information from CPU. Control logic (20) receives address signals, data signals, and control signals from the CPU. The control logic generates enable control signals to selectively enable access to predetermined combinations of said first, second, and third storage elements in response to the address, data and control signals from the CPU.

Description: This invention relates to a raster graphic display system, and more particularly, to an improved display memory organization and apparatus for accessing the display memory. Raster scan CRT displays form a principal communication link between computer users and their hardware/software systems. The basic display device for computer-generated raster graphics is the CRT monitor, which is closely related to a standard television receiver. To achieve the full potential of raster graphic systems, such systems require digital computational support substantially in excess of that provided by the typical CRT monitor. The development of large-scale integrated circuits and microcomputers makes it possible to control such displays at affordable prices. Typically, each picture element (pixel) of a substantially rectangular array of such elements of a CRT comprising the raster is assigned a unique address, which comprises of the x and y coordinates of the pixel. Information to control the display of a pixel, its colour and intensity, pixel control information, is stored in a random-access pixel memory at a location having an address corresponding to that of the pixel. The source of such pixel control information is typically a microcomputer located in a graphic controller. Such pixel control information may include the address in a colour look-up memory at which location there is stored binary control signals which are used to control the intensity and colour of each pixel of the array as it is scanned. In existing systems, the display memory (which includes the pixel memory) has been contiguous. In other words, if there are fifty pixels on a display line, the address of the first pixel on the first line would be 0, the address of the second pixel would be 1, the address of the third pixel would be 2,..., and the address of the first pixel on the second line would be 50. In order to determine the display memory address of the 49th pixel on the 102nd line, the following algorithm; 50 × 102 + 49, would need to be calculated. Multiplication typically is one of the slowest of the instructions in any microprocessor. Characters to be displayed on a CRT are transferred from a font memory to the display memory. Such a transfer operation would require a multiple number of writes into display memory, with the corresponding address calculation (e.g., for a character of 16 lines, 16 address calculations and 16 writes into display memory would be required). Similarly, drawing vertical lines would require multiple address calculations and a corresponding write of the display memory. Also, some existing systems will blank the CRT display when writing to the display memories during the scan of the active display area, or only allow writing to the display memories during the retrace times. Thus, there is a need far an improved display memory organization, and it is, therefore, an object of the present invention to provide apparatus to load the display memory with the characters to be displayed on the CRT in a more time efficient manner, to generate the graphics, more specifically,for the generation of vertical lines for display, in a more efficient way, and to provide a way of accessing the display memory without resulting in blanking the display. This and other objects are achieved by a display generator as characterized in claim 1 and will become more apparent when taken in conjunction with the following description and attached drawings showing a preferred embodiment of the invention. In the drawings: Figure 1 shows a display generation system; Figure 2 shows the organization of a pixel memory of the system; Figure 3 shows the layout of the CRT display corresponding to the pixel memory organization; Figure 4 shows an organization of the graphic memory of the system; Figure 5 shows a diagram of some logic included in the displaying of the information of the display memories of the system; Figure 6 shows a functional logic block diagram of the system for accessing the display memories; and Figure 7 shows a logic block diagram for reading the pixel memories. INTRODUCTORY SUMMARY The present system comprises apparatus for accessing a display memory of a display system in a data processing system. The display system includes a central processing unit (CPU) and a display memory for storing information to be displayed. The display memory comprises a first storage element which stores dot information, a second storage element which stores behaviour information, and a third storage element which stores characteristic information. The first, second, and third storage elements are each arranged in an nxm plane where m is an addressable location and each addressable location whithin each plane has n bits of information. Further, each of the first, second, and third storage elements has address terminals connected to a display address bus adapted to receive address information from the CPU. Control logic, having input terminals which receive address signals, data signals, and control signals from the CPU, is connected to first, second, and third storage elements. The control logic generates enable control signals to selectively enable access to predetermined combinations of the first, second, and third storage elements in response to the address, data, and control signals from the CPU. DETAILED DESCRIPTION Figure 1 shows an apparatus for a display generation system. A graphics processor 10 includes a microprocessor (not shown) and an associated RAM (not shown). The graphics processor 10 interfaces with a video display generator 11, which provides the necessary signals to generate displays on and control of a raster scan CRT monitor (not shown). The video display generator 11 includes various display and control memories 22, 16, a cursor display logic 18, raster scan logic 20, colour look-up address generation logic 28, and a D/A converter 32. A pixel signals for the video display generator. Latches and shift registers 26, 30 are coupled to the display memory 22, and along with the clocking signals from the pixel clock 24, are shifted in a synchronous fashion to correspond to the scanning of the beam of the CRT monitor in order to produce the desired display. The raster scan logic 20 generates all of the timing and sync signals for the raster scan CRT monitor (not shown) and the necessary timing and control signals for all accesses of the display memories 22. Counters (not shown) in the raster scan logic 20 determine which displayable element on the raster scan CRT monitor is currently being displayed and which address to access in the display memories 22. The display memories 22 are organized in two different forms referred to as the picture element (pixel) memory 12 and the alphagraphic memory (also referred to as the graphic memory) 14. A more detailed description of the format of the pixel memory 12 and the graphic memory 14 will be given later. The cursor display logic 18 generates a visible cursor which can be positioned anywhere on the display under control of the graphic controller 10. The colour look-up address generation logic 28 determines if the current displayable element is a pixel, alphagraphic, or cursor element (based on the display priority) and uses this determination along with the proper index bits (pixel or alphagraphic) to access a location in the colour look-up memory 16. The colour look-up memory 16, at locations having addresses corresponding to the colour addresses applied by the colour look-up address generator logic 28, has stored colour control signals which are used to control the intensity of the electron beams of the colour guns of a conventional colour CRT monitor (not shown) and which determines the colour and intensity of each picture element of the display array as it is scanned. 8-bit bytes are stored in the colour look-up memory 16 at locations corresponding to the colour addresses applied. In synchronism with the scanning of each pixel of the display, the colour control signal is read out of colour look-up memory 16 and applied to D-to-A converters 32, which convert 6 of the 8 bits into analog signals for controlling the intensity of the red, green, and blue electron beam guns of the conventional CRT monitor. In addition, 2 bits of the colour control signal are applied to a fourth D-to-A converter which converts these 2 bits into a monochrome analog signal which can be used to produce a permanent record of the raster display using conventional equipment, as is well known in the art. Figure 2 shows the organization of the pixel memory 12 and Figure 3 shows a layout of the CRT monitor display. The organization of the display memory 22 (although the discussion with respect to Figure 2 will be specifically directed to the pixel memory 12, there is a similar organization for graphic memory 14) will now be described. The pixel memory 12 stores characteristic information for each pixel element; namely, planes 0-2 contains colour information, plane 3 contains intensity information, and plane 4 contains blink information. The active display area of the CRT monitor of the present system is divided into 640 horizontal elements and 448 vertical elements. A character size chosen for the display of the preferred embodiment is a 5X9 character in an 8X16 character cell (i.e., 8 horizontal pixels by 16 vertical pixels). The pixel memory 12 contains five planes, P₀ to P₄. Each plane is an 8 bit wide by 64K memory. Each location of each plane contains 8 bits of information relating to 8 corresponding picture elements. Hence, location 0 of the pixel memory 12 contains information relating to picture element 0,0 to 0,7 of the display. The first bit of location 0 of pixel memory 12 contains information relating to picture element 0,0 of the display, the second bit, information relating to picture element 0,1 of the display etc. In order to display the information of the display memory 22, the information in display memory 22 must correspond to the position of the sweep of the CRT monitor (not shown). In raster scan CRT monitors, generally the sweep is a horizontal sweep from left to right, top to bottom, in which the sweep starts at location 0,0 and moves horizontally across the display to location 0,639. Thus, the information fetched from display memory 22 for display must correspond to the positioning of the sweep of the CRT monitor. Namely, location 0 of display memory 22 is fetched which corresponds to picture elements 0,0 to 0,7, then location 512 of display memory 22 is fetched which corresponds to the picture elements 0,8 to 0,15, then location 1024 is fetched, and so on, up to location 40448 which corresponds to picture elements, 0,632 to 0,639. The next line of the display (picture element 1, 0 to 1, 639) is scanned and the corresponding information is fetched from the display memory 22 at locations 1, 513, 1025,.... When line 447 is completed, the display has been completed and the scanning is restarted at line 0. The hole area in memory corresponds to the display area 448 - 511. Hence, locations 448 to 511, 960 to 1023, 1472 to 1535, etc., of display memory 22 have no corresponding active display area. The fetch of the information from display memory 22 is performed by logic in the raster scan logic 20. By adding 1 to bit 9 (i.e., to the 512 bit position) of an address counter, the correct addressing scheme is generated corresponding to the CRT beam as it is swept across a horizontal line. By allowing the hole area in memory, the implementation of incrementing the counter of the raster scan logic is simplified. The area of the display from 640 to 1023 also corresponds to a memory hole area from locations 40960 to 64K (i.e., 65535). The apparent inefficient use of memory is more than negated by the ease of implementing an addressing scheme corresponding to the display layout. Although a line by line scanning of the display area has been described, it will be understood that alternative vertical scanning techniques may be implemented without departing from the scope of the present display memory organization. For example, interlace scanning may be implemented with the organization of the display memory 22 just described. The raster scan logic would be implemented such that the low order bit position of the counter for accessing the display memory 22 would be alternately set between a 1 and a 0 on alternate vertical scans, by techniques well know in the art. As discussed above, the character size chosen for the display system is a 5X9 character in an 8X16 character cell. Since the display memory 22 is organized 8 bits wide, which corresponds to 8 horizontal picture elements on the display, the drawing of any character requires 16 write operations into the display memory 22. The data used for the 16 write operations is typically copied from a font table located in a RAM in which the character information is stored in 16 contiguous locations of the font table. A character cell corresponding to the display is also in contiguous memory. Therefore, characters can be made available for display on the screen by using memory to memory block moves from the font memory (not shown) to the display memory 22 which results in less overhead required by the microprocessor of the graphic controller 10. In a similar fashion, it can be seen that vertical lines are easily stored in the display memory 22 by accessing contiguous memory locations. In this manner, it is said that the display memory 22 is organized to correspond with a "vertical sweep" of the CRT. Horizontal lines which are to be displayed more than 8 picture elements long require accessing the corresponding memory location in the increments of 512 locations as discussed above. Referring to Figure 4, there is shown an organization of the graphic memory 14. The alphagraphic memory 14 also corresponds to a display which is 640 horizontal elements and 448 vertical elements. The graphic memory 14 consists of 2 memory planes with each plane organized such that each 8-bit byte corresponds to 8 horizontal elements by 1 vertical element. In a first plane, denoted a dot memory 14', each bit determines if the picture element is a foreground or background colour. In a second plane, denoted the behaviour memory 14'', each 8 bit location determines the behaviour index of an entire associate location in the dot memory 14', and the display priority between the pixel memory 12 and the alphagraphic memory 14. Of the 8 bits, a behaviour index is 6 bits and a display priority is 2 bits. The 6 bits representing the behaviour index and the 1 bit identification of each foreground or background colour results in a 7 bit value used as an index into the colour look-up memory 16. The 2 priority bits determine the priority of the pixel display with respect to the alphagraphic display. Referring to Figure 5, there is shown some of the logic of the video display generator 11 utilized for displaying the information stored in the display memories 22. The raster scan logic 20 reads the alphagraphic memory 14 and the pixel memory 12 at the same location; in the example shown in Figure 5, location 0 is being read. The 8 bits from the dot memory 14' are loaded into a shift register 26B and the 8 bits from location 0 of the behaviour memory 14'' are loaded into a latch 26A. Likewise, the contents of location 0 of each plane of the pixel memory 12 is loaded into a corresponding shift register. Thus, the 8 bits of location 0 from plane 0 are loaded into shift register SR-0, the 8 bits from location 0 of plane 1 are loaded into SR-1, etc., up to the 8 bits from location 0 of plane 4 being loaded into SR-4. All of the shift registers are shifted such that the colour look-up address generation logic 28 processes the information related to picture element 0,0 from both the pixel memory 12 and the dot memory 14'. Processing is performed to correspond to the information contained in latch 26A. At this point in time the sweep of the CRT monitor is at location 0,0 of the display. Synchronized by the clocking signal, the display moves to the next position, i.e., picture element 0,1 of the display, and the information corresponding to location 0,1 is shifted into the colour look-up address generation logic 28 from the shift registers 30 and the shift register 26B. Again, this information is processed by the colour look-up address generation logic 28 as defined by the information latched in latch 26A, which is valid for the 8 bits of location 0. The process continues until the sweep of the CRT monitor has displayed the 8 picture elements of a horizontal line. The next element to be displayed is location 0,8 which corresponds to address 512. The raster scan logic 20 causes a read of location 512 from the graphic memory 14 and the pixel memory 12 into the shift registers and the above process continues until the entire line is displayed, and then continues as described above until the entire display area has been processed for display. The display memories 22 can be written into at any time and the display will not be blanked as a result of the display memory access. For every fetch of display data by the raster scan logic 20 there is an equal amount of time allowed for the graphic controller 10 to access the display memory 22. This is done as a result of fetching the display data as a byte of 8 pixels and then shifting the data out of the shift registers 26, 30 to the colour look-up logic 16,28. The display access takes 4 pixel times, leaving 4 pixel times for the graphic controller 10 to access the display memory 22. Raster scan logic 20 takes priority over the microprocessor of the graphic controller 10 for display memory access. As a result, in order to avoid wait states by the microprocessor of the graphic controller 10, logic is included in the graphic controller 10 to temporarily store data to be written and the corresponding address into display memory 22 thereby eliminating the wait state for the microprocessor. Figure 6 is a functional logic block diagram of the apparatus for accessing (i.e., storing the data to be displayed) the display memories 22. Plane 0 of pixel memory 12, 12-0, plane 1 of pixel memory 12, 12-1... plane 4 of pixel memory 12, 12-4, dot memory 14' of graphic memory 14, and behaviour memory 14'' of graphic memory 14 have their respective address terminals coupled to a display address bus. An address bus, A(0-19), from the graphic controller 10 has its lines A(0-8) coupled to the display address bus. Lines A(9-15) of the address bus are coupled to the 0 side of a multiplexer (MUX) 41. Lines A(12-18) of the address bus are coupled to the one side of the MUX 41. Lines A(9-11) of the address bus are coupled to a 1-of-8 decoder 45, and line A(19) of the address bus is coupled to the select terminal of the MUX 41. The output of the MUX 41 is coupled to the display address bus. The output of the 1-of-8 decoder 45 is coupled to the A inputs of a 4-to-1 MUX 48. A data bus, lines 0-7, from the graphic controller 10 is coupled to the B inputs of the 4-to-1 MUX 48. The C and D inputs of the 4-to-1 MUX are tied together to a logic high position. The enable terminal of the 4-to-1 MUX 48 is coupled to a read/write (R/W) control line from the graphic controller 10. A decoder 52 has coupled to the inputs the address lines, A(13-19), and a FASTCLEAR control line from the graphic controller 10 for generating the select signals S0 and S1 for the 4-to-1 MUX 48, and some control signals, CONTROL. The decoder 52 will be described in further detail hereinunder. The display memories 22 are dynamic random access memories. Each plane of the display memory 22, that is the dot memory 14', the behaviour memory 14'', and planes 0 to planes 4 of the pixel memory 12, consists of an 8 x 64K memory. Each bit within the 8-bit byte has a corresponding write enable (WE) line for the entire 64K. Hence, WE₀ is the write enable line for the 0 bit position of locations 0 to 64K, etc., up to WE₇ which is the write enable line for bit 7 from locations 0 to 64K. Also, each memory plane has a chip enable (CE) terminal which enables access to the memory plane. The data bus, lines 0-7, is coupled to the data input terminal of the dot memory 14'. Likewise, the data bus, lines 0-7, is coupled to a latch 56, the outputs of the latch being coupled to the data input terminals of the behaviour memory 14''. The latch enable signal (LE) is a control signal generated by decoder 52 which will be described in further detail later. Latch 56, an 8-bit latch, is a transparent latch, which can either latch the data written into it or pass the data from the data bus into the behaviour memory 14''. The latch 56 will always pass the data from the data bus to the outputs of the latch when the latch enable signal is high, or will save the previously latched data on the outputs when the latch enable signal is low. A pixel latch 58 couples data lines (0-4) from the data bus to the inputs of the pixel latch, the pixel latch 58 being a 5-bit latch. The output from each position of the pixel latch 58 is coupled to the data input terminals of the corresponding plane of the pixel memory 12. All of the 8 data input terminals of each of the planes of the pixel memory 12 are tied together. The writing of the data in individual bit positions in the pixel memory is accomplished by use of the write enable lines. The pixel latch is enabled via a control signal PLE, which will be described hereinunder. Since each location of the behaviour memory 14'' is written into as a byte (i.e., 8 bits), each write enable terminal of the behaviour memory 14'' is coupled to the R/W line from the graphic controller 10. The 5 planes of the pixel memory and the dot memory 14' have their corresponding write enable lines coupled together, i.e., WE₀ of dot memory 14' is coupled to the WE₀ of plane 0 of pixel memory 12-0, WE₀ of plane 1 of pixel memory 12-1, etc., up to the WE0 terminal of the pixel memory 12-4, and is coupled to the corresponding output line of the 4-to-1 MUX 48. In a like fashion, each corresponding write enable terminal of each of the 6 planes of the display memories 22 is coupled together and are finally coupled to a corresponding output of the 4-to-1 MUX 48. The first access mode of the display memories 22 is the direct access of the dot memory 14'. The second access mode of the display memories 22 is the direct access of the behaviour memory 14'' with data supplied by the graphics processor 10 (i.e., the latch 56 is transparent). The third access mode is a direct access to both the dot memory 14' and the behaviour memory 14'' simultaneously, the data supplied to the behaviour memory 14'' being supplied by data latches in latch 56. For the first access mode, the chip enable signal CED must be a logic 1, for the second access mode the chip enable signal CEB must be a logic 1, and for the third access mode the chip enable signals CEB and CED must both be a logic 1 (or high). To establish the desired mode, use is made of address lines A(16-19). Since lines A(0-15) are all that are required to address 64K of display memory 22, lines A(16-19) are used as steering lines and are decoded to generate the desired control signals. Decoder 52 contains the logic to generate control signals, CONTROL, which include signals LE, PLE, CED, CEB, CEP, and select signals S₀, S₁, in accordance with Table 1. The data being written into the dot memory 14' comes from the 8-bit data bus from the graphics controller 10. The data that is written into the behaviour memory 14'' comes from the latch 56. The latch 56 can be written to by the graphics controller 10 at any time. The first, second and third access modes correspond to conditions 5, 6, and 3, respectively, of Table 1. The fourth access mode of the display memory 22 is an access to the pixel memories 12. The data to be written into the pixel memories comes from the pixel latch 58 which can be written into from the graphics controller 10 at any time. In the pixel access mode, address bit 19 is a logic 1 and corresponds to condition 1 of table 1. Lines A9-11 are used to determine which one of the 8 bits (i.e., pixels) are to be written into. The 4-to-1 MUX 48 selects the A inputs for which only one of the 8 output lines will be a logic one, that is only one bit position will be changed. The chip enable signal CEP will be a logic one thereby only affecting the pixel memories 12. The corresponding pixel position for each of the five planes of the pixel memories 12 will have data written into corresponding to the data stored in the pixel latch 58. The fifth and sixth access modes are referred to as parallel access modes. When writing pixels into the display memories, the display memories are organized for optimally generating vertical lines. When a memory address is accessed, the microprocessor of the graphic controller 10 already set to access the next sequential address in memory on the next access. However, when drawing horizontal lines into the pixel memory, the graphics controller 10 has to calculate a new address for each horizontal pixel, even though the addressing into memories is organized to minimize multiplication algorithms. In the parallel access mode a group of 8 horizontal pixels can be accessed simultaneously and any combination of these 8 pixels can be modified simultaneously. This is accomplished by using a data pattern on the data bus to determine which pixels in the group of 8 are to be modified. The data to be written comes from the pixel latch 58. When using the data pattern on the data bus to control which of the pixels to modify via the WE lines, a logic 1 in the data bit indicates that the pixel should be modified and a logic 0 indicates the pixel is not to be modified. This information is coupled through the B inputs of the 4-to-1 MUX 48 to the corresponding write enable lines. This corresponds to condition 7 of Table 1 for the pixel memories. The corresponding parallel access for the graphic memories 14 correspond to condition 2 of Table 1. In order to allow the graphics controller 10 to clear both the alphagraphic memory 14 and the pixel memory 12, an access mode is defined corresponding to condition 4 of Table 1 where both the alphagraphic 14 and pixel memory 12 can be written into simultaneously. When accessing the latches, corresponding to condition 8 of Table 1, the address lines 13 to 15 are used in addition to the four previously mentioned lines, i.e., lines 16-19. Since the display memories 22 contain large hole areas some of these address lines may be used as additional steering lines since the memories are not in the active display area. Referring to Figure 7, when the graphics controller 10 reads from the pixel memory 12, a group of 8 pixels from each plane are read, for a total of 40 bits. The 8 data output lines of each plane of the display memory 22 are not tied together. An 8-bit multiplexer for each plane determines which one of the 8 bits from each plane to transfer to the graphics controller 10. The address bits A(0-8 and 12-18) determine which group of 8 pixels to read and bits A(9,10,11) determine which one of the 8 pixels to pass to the graphics controller 10.

Claims: A display controller (11) for generating signals for controlling the information displayed by a raster scan CRT, wherein data is entered into and read from said display controller under the control of data and control signals generated by a processor (10), said display controller being characterized by: (a) a first addressable store (14') for holding binary digits, each of which represents corresponding individual pixels of the information to be displayed; (b) a second addressable store (14'') for holding groups of binary digits, each group representing behavior information common to groups of pixels stored in said first addressable store; (c) a third addressable store (12) for holding binary digits representing characteristics, including color information, for individual pixels of the display; wherein each addressable location within each of said stores holds a plurality of binary digits; and (d) control logic means (address registers, multiplexers and decoders having input terminals for receiving address, data and control signals from said processor (10) and responsive to said received signals for generating control signals to enable selective access to various combinations of said first, second and third stores. The display controller of claim 1, wherein, under control of said control logic means, binary digits read from both of said first and third stores control corresponding single pixels of the display, and wherein the set of binary digits in each addressable location of said second store are read as an entity to control in a uniform manner the group of pixels of said display corresponding to said location. The display controller of claim 1, further characterized in that each of said first, second and third addressable stores is composed of planes of m addressable locations, each location having n binary storage cells. The display controller of claim 3, wherein each of said first and second addressable stores comprises a single one of said planes and said third addressable store comprises a plurality (p) of said planes. The display controller of claim 4, wherein, under control of said control logic means: (a) each of the binary digits read from said plane of said first store controls a respective pixel of the display; (b) each set of p corresponding binary digits read from the p planes of said third store controls a respective pixel of the display; and (c) the n binary digits in each addressable location of said second store are read as an entity and control in a uniform manner a respective group of n contiguous pixels of the display.

Inventors: CLARKE, CHARLES J., JR., STAGGS, KEVIN P.
Applicants: HONEYWELL INC.
Application year: 1986
Main classification: G09G1
IPC codes: G09G5, G06T1, G06T11, G06F3