CA1061006A - Microprogrammable display system - Google Patents
Microprogrammable display systemInfo
- Publication number
- CA1061006A CA1061006A CA299,754A CA299754A CA1061006A CA 1061006 A CA1061006 A CA 1061006A CA 299754 A CA299754 A CA 299754A CA 1061006 A CA1061006 A CA 1061006A
- Authority
- CA
- Canada
- Prior art keywords
- display
- data
- main memory
- instructions
- memory storage
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
ABSTRACT OF THE DISCLOSURE
A date processing display system comprises a display device capable of displaying a desired image and including a plurality of points each capable of being selectively illuminated.
A main memory storage device is also included in the system and comprises a plurality of addressable storage locations, each location capable of storing a multi-bit display word therein.
At least some of the addressable storage locations include in the aggregate a number of bits at least equal to the plurality of points of the display device. A display bit map of the desired image is thus capable of being stored and defin-ed in the at least some addressable storage locations.
A date processing display system comprises a display device capable of displaying a desired image and including a plurality of points each capable of being selectively illuminated.
A main memory storage device is also included in the system and comprises a plurality of addressable storage locations, each location capable of storing a multi-bit display word therein.
At least some of the addressable storage locations include in the aggregate a number of bits at least equal to the plurality of points of the display device. A display bit map of the desired image is thus capable of being stored and defin-ed in the at least some addressable storage locations.
Description
10f~1006 B.~CKGROUND OF THE INVENTIO~J
This invention relates to data processing systems and m~ore particularly, to data processing display systems including one or more display devices each capable of displaying a-desired image.
Prior art data processing display systems are character-ized by special purpose memories which in thè aggregate define a character generator. Typical display devices are of the raster-scanned type, such as CRT-TV tubes. A character to be formed at a location on the display screen is defined by a matrix of selectively energiza~le points arranged in a plurality of verti-cally oriented scan lines. As is conventional, a scanning beam scans from left to right, one scan line at a time, until an entire "page" is displayed, and then returns to the top scan line in order to "refresh" tne image on the screen. Typically, the image is refreshed 30 times per second.
It is a characteristic of prior art systems that characters are definable only in fixed "blocks" on the displa~ screen, each block containing the requisite matrix of energizable points. As is conventional, a display list memory contains the character data
This invention relates to data processing systems and m~ore particularly, to data processing display systems including one or more display devices each capable of displaying a-desired image.
Prior art data processing display systems are character-ized by special purpose memories which in thè aggregate define a character generator. Typical display devices are of the raster-scanned type, such as CRT-TV tubes. A character to be formed at a location on the display screen is defined by a matrix of selectively energiza~le points arranged in a plurality of verti-cally oriented scan lines. As is conventional, a scanning beam scans from left to right, one scan line at a time, until an entire "page" is displayed, and then returns to the top scan line in order to "refresh" tne image on the screen. Typically, the image is refreshed 30 times per second.
It is a characteristic of prior art systems that characters are definable only in fixed "blocks" on the displa~ screen, each block containing the requisite matrix of energizable points. As is conventional, a display list memory contains the character data
2~ to be displayed in the form of a plurality of ASCII coded words each defining a particular character element. A predetermined number of words in the display list memory define each text line to be displayed. Each A5CII coded word from the display list memory is forwarded to a separate font memory along with a signal indicating a scan line number. For example, there may be eight scan lines in the matrix for each character which then could be 8 X 8. ThuS,the scan line number sisnal could be a 3-bit code. The font memory contains a plurality of words each representing the desired bit configuration for each scan line of a particular character. It is the output of the font memory that is supplied to the display controller for trans~ittal in bit-serial format to the display device. The words of the font memory are traditionally supplied directly one at a time to the display controller.
Other prior data processing display systems, such as that - disclosed in U.S. patent No. 3,895,357, store 2 predetermined number of the font memory words, such predeter~ined number defining a small band of the picture to be dis?layed, into a partial raster assembly store. Again, however, special purpose memories are employed.
- 10 The main problem with these prior art "character generator" type display systems is that they are generally limited to forming characters only, and only on specifically predetermined portions or "blocks" of the displ~y screen. They do not have a "graphics" capability, i.e. the ability to draw relatively high resolution lines and curves unrelated to the conventional alphanu~eric characters. U.S. patent No. 3,716,842 discloses a data processing di~play systems that does have a graphics capability However, the system is relatively complex from a hardware standpoint in requiring, again;
special purpose memories.
It would be desirable, therefore, to provide a data processing display system having the attributes of simplicity and generality, i.e. simplicity in a hardware sense such as by avoiding special purpose memories r and generality in a display capability sense such as being virtually ùnlimited as to the nature and location of data displayed on the display thereby providing a graphics capability.
SUMMARY OF THE INVENTION
In accordance with one aspect of this invention there is provided a data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of.said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a display controller connected to said display device and responsive to predeter-mined instructions for controlling the illumination of said plurality of points of said display device; a central process-ing unit including first means for generating said predeter-mined instructions for application to said display controller,and second means for generating said predetermined address signals for application to said main memory storage device;
an address bus connected between said main memory storage - device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data transfer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage loca-tions of said memory storage device and said predetermined instructions; said central processing unit including a data section and a control section, said control section including said first means for generating and means for supplying instructions to said data section, and said data section includ-ing said second means for generating and means for executinginstructions supplied it from said control section; and said display controller including third means for generating at least one display task request signal, said system further comprising means for supplying said at least one display task request signal to said control section, and said control section including means responsive to said at least one display task request signal for causing said means for supply-ing instructions to said data section to supply instructions relating to the display of said desired image by said display device.
In accordance with another aspect of this invention there is provided a data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality.of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a dlsplay controller connected to said display device and responsive to predetermined instructions for con-trolling the illumination of said plurality.of points of saiddisplay device; a central processing unit including first means for generating said predetermined instructions for ~' application to said display controller, and second means for generating said predetermined address signals for application to said main memory storage device; an address bus connected between said main memory storage device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data trans--fer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage locations of said memory storage device and said predetèrmined instructions; and said central processing unit including a data section and a control section, said control section including said-first means for generating and means for supplying instructions to said data section, and said data section including said second means for generating and means for executing instructions supplied it from said control section, said means for supplying instruc-tions and said first means for generating including a micro-instruction memory device, said instructions and said pre-determined instructions being microinstructions.
These and other aspects and advantages of the present invention will be more completely described below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram representation of an exemplary data proeessing display system of the present invention;
Figure 2 is a schematic bloek diagram representation of the control section of the CPU depicted in Figure l;
Figure 3 is a more detailed bloek diagram representation of the instruetion register and decoders depicted in Figure 2.
Figure 4 is a schematic block diagram representation of the data seetion of the CPU and the main memory depieted in Figure l;
Figure 5 is a representation of the diLferent storage seetions of the main memory store depieted in Figure 4;
Figure 6 is a bloek diagram representation of a portion of the display eontroller depieted in Figure l;
Figure 7 is a block diagram representation of another portion of the display controller depieted in Figure l;
Figure 8 is a sehematic drawing of logic elements which constitute portions of the display controller as shown in Figure 6;
Figure 9 is a sehematic drawing of additional portions of the display controller as depicted in Figure 6; and Figure 10 is a sehematie drawing of the eontrol logie of the display eontroller as shown in Figure 6.
10610(~
DESCRIPTION OE THE PREFERRED EMBODIMENT
Referring to Figure 1, a data processing display system of the present invention is shown. The system includes a central processing unit (CPU) 10 that is comprised of a data section 12 and a control section 14. The system also includes a main memory 16 to be described below and a plurality of input-output (I/O) controllers 18, e.g., "M" I/O
controllers designated 18(1) through 18 LM) Each of the I/O
controllers 18 is connected to a respective one of a plurality of I/O devices 20 for controlling same. At least one of the I/O controllers 18, e.g. controller 18(1), is a display `- controller for controlling a display device 20(1). Examples ofother typical I/O devices that may be employed as I/O devices 20 in the system of Figure l-are disk drives, keyboards and cursor control devices (sometimes each referred to as a "mouse").
The depiction of only one display controller 18(1) and associated display device 20(1) is, of course, only exemplary.
- Information is transferred to and from the data section 12 of the CPU 10 by means of a main data transfer bus 22. The information is desirably trans erred in bit-parallel format. Typical CPU's are designed to operate in 8-bit or 16-bit format, i.e., 8-bit or 16-bit quantities are transferred to and from the data section 12 along the bus 22, which would then be comprised of either at least eight or at least sixteen parallel lines. Information may be transferred on the data bus 22 between the main memory 16 and the data section 12, between the I/O controllers 18 and the data section 12, as well as between each of the I/O controllers 18 and the main memory 16.
lOf~lOOf~
Each of the I/O controllers 18, including the display controller 18(1) is capable of generating one or more t~sk request signals in the form of "wake-up" commands whenever the particular controller 18 requires one or more services to be performed by the CPU 10. The specific nature of three wakeup-task request signals that are preferably generated by the display controller 18(1) will be described in more detail below. The wakeup-task request signals from the controllers -18 are applied on respective lines 24(1)-24(N). The three wakeup-task requests from the display controller 18(1), arbitrarily designated wakeup-tasks 1-3, are applied on lines 24(1) - 24(3) to the control section 14 of the CPU 10. In order for each controller 18 to be informed when the CPU 10 is executing instructions relating to the requested service, the control section 14 includes means to be described below for applying a "task-active" status signal back to the controller.
These task active status signals are applied on lines 26 from the control section 14 to the controllers 18, as shown in Figure 1. There are three task-active lines associated with the display controller 18(1), i.e. task 1 active on line 26(1), task 2 active on line 26(2) and task 3 active on line 26(3).
Reference is now had to Figure 2 where the control section 14 of the CPU 10 will be described. At the outset, it must be stated generally that the control section 14 applies instructions to the data section for execution thereby. Addi-tionally instructions are applied to the various I/O controllers 18 for execution thereby. The instructions are forwarded in accordance with a particular sequence or routine to be carried 10~1006 out and identified with a particular task to be serviced. The control section 14 includes means to be described below for determining which of a plurality of wakeup-task request signals that may have been applied to the control section 14 has the highest current priority value. More specifically, each of the plurality of tasks to be serviced is preassigned a unique priority value. Thus, performing a requested service for the display controller 18(1~ may be of higher priority than per-- forming a requested service for I/0 controller 18(M) The control section 14 then forwards instructions associated with the highest current task to be serviced to the data section 12 and respective I/0 controller 18 for execution.
Referring now in more detail to Figure 2, the control section 14 includes a priority encoder 28 which has task request inputs connected to the N task request lines 24. As explained above, wakeup-task request signals for task l-N are provided from the I/0 controllers 18. Additionally, a wakeup-task request signal for task ~, which requests servicing the main program, is always present, as will be explained in more detail below. The priority encoder 28 inclu~es circuitry (not shown) for generating a multi-bit control signal on a respec-tive plurality of lines 30 (only one shown) related to the highest priority wakeup-task request signal currently applied as an input to the encoder 28. The priority encoder 28 includes a further input for receiving a RESET signal on a line 32 from an initialize circuit 34 to be described in more detail below.
Now then, the control signal developed on lines 30 is applied to respective inputs of a current task register 36 which responds to such control signal for generating a multi-bit address signal that is applied in bit-parallel format on a respective plurality of lines 38 from the register 36 to respective inputs of an address memory 40. The address memory 40 includes a plurality of storage locations, preferably de-fined by a respective plurality of multi-bit registers (not shown). There are preferably N such registers included in the address memory 40, each one being add~essed by a unique multi-bit code defined by the address signal applied thereto from the current-task register 36 on lines 38.
Each one of the N registers in the address memory 40 is associated with a respective one of the N tasks to be performed, as defined above. In actuality, each of the address memory registers is capable of storing the next address of an executable microinstruction stored in a microinstruction memory 42. In this respect, each of the N address memory registers may be thought of as a program counter for its respective task to be serviced relative to the corresponding microinstruc-tion routine stored in the instruction memory 42.
Each instruction stored in the memory 42 is accessed in response to a corresponding address signal applied on address lines 44 from the address memory 40. Each instruction includes an instruction field preferably comprised of twenty-two bits, and a next-address field preferably comprised of ten bits. The specific constitution of the 22-bit instruction field will be described in more detail below in connection with Figure 3. The instruction field is loaded into an instruction register 46 on lines 48 and is then applied through appropriate decoders 52 (also to be described in more detail below in connection 106~006 ~ith Figure 3) to the data section 12 of the CPU. Certain of these decoded instructions are also forwarded to the display controller 18(1), as will be discussed below in connection with Figures 3 and 4. The next-address field is fed back on lines 50 to the currently addressed register in the address memory 40. In this manner, each of the N registers in the memory 40 will always contain the address of the next micro-instruction stored in the instruction memory 42 to be executed in accordance with the particular task to be serviced.
A portion of the twenty-two bit instruction field of each microinstruction may be dedicated to various special functions, som~ of ~hich are applied on control lines 47 to respective ones of the I/O controllers 18 for controlling same, and some of which are applied on control lines 49 to address modifier circuits 56 (to be described below) for branching. In accordance with the preferred embodiment, there is a four-bit special function "sub-field" in the instruction field of each microinstruction (hereinafter referred to as the "Fl" sub-field), wherein two of the sixteen four-bit codes capable of being defined (e.g. Fl=2, Fl=3) are respec-tively representative of "TASK" and "BLOCK" functions. A
TASK signal component of an accessed instruction, upon being decoded by an appropriate one of the decoders 52, is applied on a line 54 to the current task register register 36 for enabling same to load an address signal, representing the current highest priority task requesting service. This - address signal is then applied to the address memory 40. A
decoded BLOCK signal is applied on a line 55 to the current task register 36 for disabling same.
106~006 It will be appreciated that a TASK signal can be presented in any desired microinstruction during any routine to be executed. Normally, a TASK signal would be generated at least once during each microinstruction routine in order to enable any higher priority task awaiting service to interrupt the current routine in order to be serviced by the CPU 10. If a particular task to be serviced has a microinstruc-tion routine that carries out a plurality of different functions that can be independently serviced, then a TASK signal would normally be written into the last microinstruction of each segment of the routine identified with a particular one of such functions.
Continuing with a description of Figure 2, the control section 14 of the CPU 10 further includes conventional address lS modifier circuits 56 which, in a known manner, are responsive to instructions on control lines 49 for modifying the next-address signal being fed back on lines 50 from the instruction memory 42 to the address memory 40. As is conventional, such ~ address modifiers are used for branching. The specific nature of the address modifier 56 forms no part of the present invention and thus shall not be described in detail.
The multi-bit address signal developed at the out-put of the current task register 36, in addition to being applied to the address memory 40 on lines 38, is also applied on lines 58 to a task-active decoder 60. The decoder 60 responds to the address signal output of the register 36 and generates one of the N TASK-ACTIVE signals alluded to earlier on its respective line 26, dep~ndent upon the current highest priority task to be serviced. The decoder 60 includes a delay circuit for delaying the application of a TASK-ACTIVE
signal to the respective I/O controller 18 by one clock cycle of the processor. In this manner, the appropriate TAS~-ACTIVE
signal will be generated at a time corresponding to the execution of instructions related to the task being serviced.
The control section 14 as shown in Figure 2 also includes a clock generator 62 for generating appropriate CLOCK
signals for application to the current-task register 36 on a line 64, the tasX-active decoder 60 on a line 66, the address memory 40 on a line 68, and the initialization circuit 34 on a line 69.
Still referring to Figure 2, the initialization circuit 34 is responsive to a START signal generated when the system is turned on by the operator. Upon receipt of the - START signal, conventional circuitry in the circuit 34 causes a RESET signal to be generated which is applied to the priority encoder 28 on line 32, to the current task register 36 on a line 70, to the task-active decoder 60 on a line 72, to the instruction memory 42 on a line 74, to the instruction regis-ter 46 and decoders 52 on a line 76, and to the address modifier 56 on a line 78. Upon receipt of a RESET signal, these various components of the control section 14 are reset.
The initialization circuit 14, in response to a START signal, also generates a multi-bit initialization address signal on a respective plurality of lines 80. In a preferred embodiment of the invention, "N" equals sixteen and thus the initialization address signal is a four-bit signal that is 10~;1006 initially zero, i.e., 0000, and is incremented by one at the rate of the CLOCK signal pulses applied on line 69. The RESET
signal is maintained for sixteen cycles, i.e. sixteen CLOCK
signal pulses, at which time the initialization address on lines 80 will increment from zero (0000) to fifteen (1111).
As will be described below, the address signal output of the current task register 36 during initialization is identical to the initialization address signal. During initialization, the address signal output of the current task register 36 is applied through an AND-gate 82, which is enabled by a RESET
signal from the initialization circuit 34, to the address memory 40. In this manner, the address signal (0000) will be loaded into register number zero in the address memory 40, the address signal one (0000) into register number one, and so on. This process initializes the address memory by setting the various registers therein at their respective starting values.
Further details of the control section 14 of the CPU 10 may be had through a review of U.S. Patent No. 4,103,330, Charles P. Thacker.
Referring now to Figure 4, the basic elements of the data section 12 of the CPU 10 are a register file 102, T
register 106, L register 110, memory address register (MAR) 114, and instruction register 116. The registers 106, 110, 114 and 116 are connected to the register file 102 and to an arithmetic and logic unit (ALU) 120 by means o~ the main data transfer bus 22, which is desirably 16 bits in width.
Data is typically put onto the bus 22 from the register file 102 which is preferably implemented by a group of 32 registers whose contents are read or loaded as selected by a specific microinstruction field. Data may also be entered on the bus 22 from a constant memory 12g which is preferably implemented by any commercially available 256-word read only memory (ROM) which holds arbitrary 16-bit constants. Data may be available as well from the I/O devices 20, such as the --- display 20(1). Other data is available from the main memory 16 and portions of instructions are entered on the bus 22 from the instruction register 116. The main memory 16 will be described in more detail below.
Data may be transferred from the bus 22 to the I/O
controllers 18, the main memory 16, the instruction register 116, the T register 106, or even the L register 110 through the ALU 120. Data-transfers are under the control of micro-instructions which are executed from the instruction memory 42, which is desirably implemented by a conventional 1024 word X 32-bit programmable read-only-memory (PROM).
The specific nature of the 22-bit instruction field of a 32-bit microinstruction accessed from the instruction memory 42 will now be described with reference to Figure 3. As shown, the 22-bit instruction field loaded into the instruc-tion register 46 includes seven "sub-fields" as follows:
BIT(S) SIGNAL MEANING
~-2 A REGISTER (R) SELECT
Other prior data processing display systems, such as that - disclosed in U.S. patent No. 3,895,357, store 2 predetermined number of the font memory words, such predeter~ined number defining a small band of the picture to be dis?layed, into a partial raster assembly store. Again, however, special purpose memories are employed.
- 10 The main problem with these prior art "character generator" type display systems is that they are generally limited to forming characters only, and only on specifically predetermined portions or "blocks" of the displ~y screen. They do not have a "graphics" capability, i.e. the ability to draw relatively high resolution lines and curves unrelated to the conventional alphanu~eric characters. U.S. patent No. 3,716,842 discloses a data processing di~play systems that does have a graphics capability However, the system is relatively complex from a hardware standpoint in requiring, again;
special purpose memories.
It would be desirable, therefore, to provide a data processing display system having the attributes of simplicity and generality, i.e. simplicity in a hardware sense such as by avoiding special purpose memories r and generality in a display capability sense such as being virtually ùnlimited as to the nature and location of data displayed on the display thereby providing a graphics capability.
SUMMARY OF THE INVENTION
In accordance with one aspect of this invention there is provided a data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of.said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a display controller connected to said display device and responsive to predeter-mined instructions for controlling the illumination of said plurality of points of said display device; a central process-ing unit including first means for generating said predeter-mined instructions for application to said display controller,and second means for generating said predetermined address signals for application to said main memory storage device;
an address bus connected between said main memory storage - device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data transfer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage loca-tions of said memory storage device and said predetermined instructions; said central processing unit including a data section and a control section, said control section including said first means for generating and means for supplying instructions to said data section, and said data section includ-ing said second means for generating and means for executinginstructions supplied it from said control section; and said display controller including third means for generating at least one display task request signal, said system further comprising means for supplying said at least one display task request signal to said control section, and said control section including means responsive to said at least one display task request signal for causing said means for supply-ing instructions to said data section to supply instructions relating to the display of said desired image by said display device.
In accordance with another aspect of this invention there is provided a data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality.of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a dlsplay controller connected to said display device and responsive to predetermined instructions for con-trolling the illumination of said plurality.of points of saiddisplay device; a central processing unit including first means for generating said predetermined instructions for ~' application to said display controller, and second means for generating said predetermined address signals for application to said main memory storage device; an address bus connected between said main memory storage device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data trans--fer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage locations of said memory storage device and said predetèrmined instructions; and said central processing unit including a data section and a control section, said control section including said-first means for generating and means for supplying instructions to said data section, and said data section including said second means for generating and means for executing instructions supplied it from said control section, said means for supplying instruc-tions and said first means for generating including a micro-instruction memory device, said instructions and said pre-determined instructions being microinstructions.
These and other aspects and advantages of the present invention will be more completely described below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram representation of an exemplary data proeessing display system of the present invention;
Figure 2 is a schematic bloek diagram representation of the control section of the CPU depicted in Figure l;
Figure 3 is a more detailed bloek diagram representation of the instruetion register and decoders depicted in Figure 2.
Figure 4 is a schematic block diagram representation of the data seetion of the CPU and the main memory depieted in Figure l;
Figure 5 is a representation of the diLferent storage seetions of the main memory store depieted in Figure 4;
Figure 6 is a bloek diagram representation of a portion of the display eontroller depieted in Figure l;
Figure 7 is a block diagram representation of another portion of the display controller depieted in Figure l;
Figure 8 is a sehematic drawing of logic elements which constitute portions of the display controller as shown in Figure 6;
Figure 9 is a sehematic drawing of additional portions of the display controller as depicted in Figure 6; and Figure 10 is a sehematie drawing of the eontrol logie of the display eontroller as shown in Figure 6.
10610(~
DESCRIPTION OE THE PREFERRED EMBODIMENT
Referring to Figure 1, a data processing display system of the present invention is shown. The system includes a central processing unit (CPU) 10 that is comprised of a data section 12 and a control section 14. The system also includes a main memory 16 to be described below and a plurality of input-output (I/O) controllers 18, e.g., "M" I/O
controllers designated 18(1) through 18 LM) Each of the I/O
controllers 18 is connected to a respective one of a plurality of I/O devices 20 for controlling same. At least one of the I/O controllers 18, e.g. controller 18(1), is a display `- controller for controlling a display device 20(1). Examples ofother typical I/O devices that may be employed as I/O devices 20 in the system of Figure l-are disk drives, keyboards and cursor control devices (sometimes each referred to as a "mouse").
The depiction of only one display controller 18(1) and associated display device 20(1) is, of course, only exemplary.
- Information is transferred to and from the data section 12 of the CPU 10 by means of a main data transfer bus 22. The information is desirably trans erred in bit-parallel format. Typical CPU's are designed to operate in 8-bit or 16-bit format, i.e., 8-bit or 16-bit quantities are transferred to and from the data section 12 along the bus 22, which would then be comprised of either at least eight or at least sixteen parallel lines. Information may be transferred on the data bus 22 between the main memory 16 and the data section 12, between the I/O controllers 18 and the data section 12, as well as between each of the I/O controllers 18 and the main memory 16.
lOf~lOOf~
Each of the I/O controllers 18, including the display controller 18(1) is capable of generating one or more t~sk request signals in the form of "wake-up" commands whenever the particular controller 18 requires one or more services to be performed by the CPU 10. The specific nature of three wakeup-task request signals that are preferably generated by the display controller 18(1) will be described in more detail below. The wakeup-task request signals from the controllers -18 are applied on respective lines 24(1)-24(N). The three wakeup-task requests from the display controller 18(1), arbitrarily designated wakeup-tasks 1-3, are applied on lines 24(1) - 24(3) to the control section 14 of the CPU 10. In order for each controller 18 to be informed when the CPU 10 is executing instructions relating to the requested service, the control section 14 includes means to be described below for applying a "task-active" status signal back to the controller.
These task active status signals are applied on lines 26 from the control section 14 to the controllers 18, as shown in Figure 1. There are three task-active lines associated with the display controller 18(1), i.e. task 1 active on line 26(1), task 2 active on line 26(2) and task 3 active on line 26(3).
Reference is now had to Figure 2 where the control section 14 of the CPU 10 will be described. At the outset, it must be stated generally that the control section 14 applies instructions to the data section for execution thereby. Addi-tionally instructions are applied to the various I/O controllers 18 for execution thereby. The instructions are forwarded in accordance with a particular sequence or routine to be carried 10~1006 out and identified with a particular task to be serviced. The control section 14 includes means to be described below for determining which of a plurality of wakeup-task request signals that may have been applied to the control section 14 has the highest current priority value. More specifically, each of the plurality of tasks to be serviced is preassigned a unique priority value. Thus, performing a requested service for the display controller 18(1~ may be of higher priority than per-- forming a requested service for I/0 controller 18(M) The control section 14 then forwards instructions associated with the highest current task to be serviced to the data section 12 and respective I/0 controller 18 for execution.
Referring now in more detail to Figure 2, the control section 14 includes a priority encoder 28 which has task request inputs connected to the N task request lines 24. As explained above, wakeup-task request signals for task l-N are provided from the I/0 controllers 18. Additionally, a wakeup-task request signal for task ~, which requests servicing the main program, is always present, as will be explained in more detail below. The priority encoder 28 inclu~es circuitry (not shown) for generating a multi-bit control signal on a respec-tive plurality of lines 30 (only one shown) related to the highest priority wakeup-task request signal currently applied as an input to the encoder 28. The priority encoder 28 includes a further input for receiving a RESET signal on a line 32 from an initialize circuit 34 to be described in more detail below.
Now then, the control signal developed on lines 30 is applied to respective inputs of a current task register 36 which responds to such control signal for generating a multi-bit address signal that is applied in bit-parallel format on a respective plurality of lines 38 from the register 36 to respective inputs of an address memory 40. The address memory 40 includes a plurality of storage locations, preferably de-fined by a respective plurality of multi-bit registers (not shown). There are preferably N such registers included in the address memory 40, each one being add~essed by a unique multi-bit code defined by the address signal applied thereto from the current-task register 36 on lines 38.
Each one of the N registers in the address memory 40 is associated with a respective one of the N tasks to be performed, as defined above. In actuality, each of the address memory registers is capable of storing the next address of an executable microinstruction stored in a microinstruction memory 42. In this respect, each of the N address memory registers may be thought of as a program counter for its respective task to be serviced relative to the corresponding microinstruc-tion routine stored in the instruction memory 42.
Each instruction stored in the memory 42 is accessed in response to a corresponding address signal applied on address lines 44 from the address memory 40. Each instruction includes an instruction field preferably comprised of twenty-two bits, and a next-address field preferably comprised of ten bits. The specific constitution of the 22-bit instruction field will be described in more detail below in connection with Figure 3. The instruction field is loaded into an instruction register 46 on lines 48 and is then applied through appropriate decoders 52 (also to be described in more detail below in connection 106~006 ~ith Figure 3) to the data section 12 of the CPU. Certain of these decoded instructions are also forwarded to the display controller 18(1), as will be discussed below in connection with Figures 3 and 4. The next-address field is fed back on lines 50 to the currently addressed register in the address memory 40. In this manner, each of the N registers in the memory 40 will always contain the address of the next micro-instruction stored in the instruction memory 42 to be executed in accordance with the particular task to be serviced.
A portion of the twenty-two bit instruction field of each microinstruction may be dedicated to various special functions, som~ of ~hich are applied on control lines 47 to respective ones of the I/O controllers 18 for controlling same, and some of which are applied on control lines 49 to address modifier circuits 56 (to be described below) for branching. In accordance with the preferred embodiment, there is a four-bit special function "sub-field" in the instruction field of each microinstruction (hereinafter referred to as the "Fl" sub-field), wherein two of the sixteen four-bit codes capable of being defined (e.g. Fl=2, Fl=3) are respec-tively representative of "TASK" and "BLOCK" functions. A
TASK signal component of an accessed instruction, upon being decoded by an appropriate one of the decoders 52, is applied on a line 54 to the current task register register 36 for enabling same to load an address signal, representing the current highest priority task requesting service. This - address signal is then applied to the address memory 40. A
decoded BLOCK signal is applied on a line 55 to the current task register 36 for disabling same.
106~006 It will be appreciated that a TASK signal can be presented in any desired microinstruction during any routine to be executed. Normally, a TASK signal would be generated at least once during each microinstruction routine in order to enable any higher priority task awaiting service to interrupt the current routine in order to be serviced by the CPU 10. If a particular task to be serviced has a microinstruc-tion routine that carries out a plurality of different functions that can be independently serviced, then a TASK signal would normally be written into the last microinstruction of each segment of the routine identified with a particular one of such functions.
Continuing with a description of Figure 2, the control section 14 of the CPU 10 further includes conventional address lS modifier circuits 56 which, in a known manner, are responsive to instructions on control lines 49 for modifying the next-address signal being fed back on lines 50 from the instruction memory 42 to the address memory 40. As is conventional, such ~ address modifiers are used for branching. The specific nature of the address modifier 56 forms no part of the present invention and thus shall not be described in detail.
The multi-bit address signal developed at the out-put of the current task register 36, in addition to being applied to the address memory 40 on lines 38, is also applied on lines 58 to a task-active decoder 60. The decoder 60 responds to the address signal output of the register 36 and generates one of the N TASK-ACTIVE signals alluded to earlier on its respective line 26, dep~ndent upon the current highest priority task to be serviced. The decoder 60 includes a delay circuit for delaying the application of a TASK-ACTIVE
signal to the respective I/O controller 18 by one clock cycle of the processor. In this manner, the appropriate TAS~-ACTIVE
signal will be generated at a time corresponding to the execution of instructions related to the task being serviced.
The control section 14 as shown in Figure 2 also includes a clock generator 62 for generating appropriate CLOCK
signals for application to the current-task register 36 on a line 64, the tasX-active decoder 60 on a line 66, the address memory 40 on a line 68, and the initialization circuit 34 on a line 69.
Still referring to Figure 2, the initialization circuit 34 is responsive to a START signal generated when the system is turned on by the operator. Upon receipt of the - START signal, conventional circuitry in the circuit 34 causes a RESET signal to be generated which is applied to the priority encoder 28 on line 32, to the current task register 36 on a line 70, to the task-active decoder 60 on a line 72, to the instruction memory 42 on a line 74, to the instruction regis-ter 46 and decoders 52 on a line 76, and to the address modifier 56 on a line 78. Upon receipt of a RESET signal, these various components of the control section 14 are reset.
The initialization circuit 14, in response to a START signal, also generates a multi-bit initialization address signal on a respective plurality of lines 80. In a preferred embodiment of the invention, "N" equals sixteen and thus the initialization address signal is a four-bit signal that is 10~;1006 initially zero, i.e., 0000, and is incremented by one at the rate of the CLOCK signal pulses applied on line 69. The RESET
signal is maintained for sixteen cycles, i.e. sixteen CLOCK
signal pulses, at which time the initialization address on lines 80 will increment from zero (0000) to fifteen (1111).
As will be described below, the address signal output of the current task register 36 during initialization is identical to the initialization address signal. During initialization, the address signal output of the current task register 36 is applied through an AND-gate 82, which is enabled by a RESET
signal from the initialization circuit 34, to the address memory 40. In this manner, the address signal (0000) will be loaded into register number zero in the address memory 40, the address signal one (0000) into register number one, and so on. This process initializes the address memory by setting the various registers therein at their respective starting values.
Further details of the control section 14 of the CPU 10 may be had through a review of U.S. Patent No. 4,103,330, Charles P. Thacker.
Referring now to Figure 4, the basic elements of the data section 12 of the CPU 10 are a register file 102, T
register 106, L register 110, memory address register (MAR) 114, and instruction register 116. The registers 106, 110, 114 and 116 are connected to the register file 102 and to an arithmetic and logic unit (ALU) 120 by means o~ the main data transfer bus 22, which is desirably 16 bits in width.
Data is typically put onto the bus 22 from the register file 102 which is preferably implemented by a group of 32 registers whose contents are read or loaded as selected by a specific microinstruction field. Data may also be entered on the bus 22 from a constant memory 12g which is preferably implemented by any commercially available 256-word read only memory (ROM) which holds arbitrary 16-bit constants. Data may be available as well from the I/O devices 20, such as the --- display 20(1). Other data is available from the main memory 16 and portions of instructions are entered on the bus 22 from the instruction register 116. The main memory 16 will be described in more detail below.
Data may be transferred from the bus 22 to the I/O
controllers 18, the main memory 16, the instruction register 116, the T register 106, or even the L register 110 through the ALU 120. Data-transfers are under the control of micro-instructions which are executed from the instruction memory 42, which is desirably implemented by a conventional 1024 word X 32-bit programmable read-only-memory (PROM).
The specific nature of the 22-bit instruction field of a 32-bit microinstruction accessed from the instruction memory 42 will now be described with reference to Figure 3. As shown, the 22-bit instruction field loaded into the instruc-tion register 46 includes seven "sub-fields" as follows:
BIT(S) SIGNAL MEANING
~-2 A REGISTER (R) SELECT
3,4 B REGISTER (R) SELECT
H LOAD L
The R Select field (bits 0-4, signals A and B) specifies one of the 32 registers which comprise the register file 102 to be loaded or read under control of the bus source field, or, in conjunction with the bus source field (bits 9-11, signal D), one of the 256 locations to be read from the constant memory 128. The low order two bits of the R address (but not the constant memory address) may be taken from fields in the instruction register 116, i.e. IR (1,2) and/or IR (3,4), as applied through a conventional multiplexer 125 (Figure 4).
- This enables the main microprogram, i.e. task 0, to address certain registers in the R file 102 more easily.
The ALU Function field controls the ALU 120. The ALU 120 can do a total of 48 arithmetic and logical operations.
The 4-bit field is mapped by a PROM 140 into the 16 most use-ful functions, The bus data source field (bits 9-11, signal D), upon being decoded by BS decoder 52a, specifies one of 8 data sources for the bus 22 as follows:
OUTPUT
BS DECODER 52a SOURCE OF DATA
0 Read R Register 102 1 Load R Register 102 2 Nothing (-1) 3 Kstat ~assigned to disk controller if used as one of controllers 18)
H LOAD L
The R Select field (bits 0-4, signals A and B) specifies one of the 32 registers which comprise the register file 102 to be loaded or read under control of the bus source field, or, in conjunction with the bus source field (bits 9-11, signal D), one of the 256 locations to be read from the constant memory 128. The low order two bits of the R address (but not the constant memory address) may be taken from fields in the instruction register 116, i.e. IR (1,2) and/or IR (3,4), as applied through a conventional multiplexer 125 (Figure 4).
- This enables the main microprogram, i.e. task 0, to address certain registers in the R file 102 more easily.
The ALU Function field controls the ALU 120. The ALU 120 can do a total of 48 arithmetic and logical operations.
The 4-bit field is mapped by a PROM 140 into the 16 most use-ful functions, The bus data source field (bits 9-11, signal D), upon being decoded by BS decoder 52a, specifies one of 8 data sources for the bus 22 as follows:
OUTPUT
BS DECODER 52a SOURCE OF DATA
0 Read R Register 102 1 Load R Register 102 2 Nothing (-1) 3 Kstat ~assigned to disk controller if used as one of controllers 18)
4 Kdata (assigned to disk controller if used as one of controllers 18) Memory data (from main memory 16) 6 Input device data (4 bits, remain- -der of word is 1) : MOUSE (if used as one of controllers 18~
7 Disp (low order 8 bits of instruction register 116, sign extended) Output 1, i.e. Load R, is not logically a source, but since the register file (R) 102 is gated to the bus 22 during both reading and writing, it is included in the source specifiers.
The two function fields Fl and F2 specify the address modifiers, register load signals ~other than those for the registers 102, 106 and 110) and other special conditions required. The first eight conditions specified by each field after being decoded by Fl decoder 52b are interpretated identi-cally by all tasks, but the interpretation of the second eight decoded conditions depends on the active task. The first eight task-independent functions are given below, whereas the latter eight task-dependent (also referred to as "task~specific") functions will be described later.
OUTPUT
Fl DECODER 52b NAME MEANING
~ No activity 1 MAR ~~ : Load MAR 114 from ALU
120 output; start main memory 16 reference 2 TASK : Switch tasks if higher priority wakeup pending 3 BLOCK ~ : Disable current task wakeup until reenabled by hardware generated condition 4 ~ L lsh 1 : Left shift L (one place) f-L rsh 1 : Right shift L (one place) 6 ~-L lcy 8 : Cycle L (8 places) 7 ~~ CONSTANT -: BUS constant ROM loca-- tion addressed by R
SELECT BUS SOURCE
Outputs 4-6 are modified by function fields F2=11 and F2=12, such fields to be described in detail later.
OUTPUT
0 ---- No Activity 1 BUS=0 NEXT~NEXT OR (BUS=0) 2 . SH 0 NEXT~-NEXT OR (SHIFTER
OUTPUT 0) 3 SH=0 NEXT~LNEXT OR (SHIFTER
OUTPUT =0) 4 BUS NEXT~-NEXT OR BUS (06) -BUS (15) ALUCY NEXT~NEXT OR LALUCO
~THE CARRY USED IS THAT
PRODUCED BY THE ALU
FUNCTION WHICH_LAST
LOADED THE L REGISTER 110.
7 CONSTANT S~-lE AS Fl=7 10f~i1006 The ALU 120 is restricted by the mapping of its 4-bit field by the PROM 140 so that only sixteen arithmetic and logical functions may be performed. The output of the ALU 120 is transferred to the L and memory address registers 110 and 114. The T register 106 may also be loaded from the output of the ALU 120 under certain conditions. The L register 110 is connected to a shifter 144 which is capable of left and right shifts by one place, and cycles of eight. Double-length shifts may also be formed. The output of the shifter 144 is transferable to the register file 102. The output of the MAR
register 114 is decoded by a decode and control unit 148 and transferred along the address bus 13 to the main memory 16, and more particularly to a main memory store 17 of the main memory 16. Details of the main memory 16 and its main memory store 17 will be described below.
As indicated above, microinstructions are executed one at a time in each processing cycle. Generally spea~ing, with respect to the data section 12 of the CPU 10, a micro-ins~ruction consists of taking a piece of data from a source resister in the register file 102, operating upon it, and loading the results into another register. For example, a microinstruction may dictate that the contents of the 23rd reg~ster in the register file 102 be transferred by way of the bus 22 to the T register 106. This microinstruction would be in the form of having the R select field equalling 23 and hav~ng the load T bit set. An additional operation may take as ~any as three microinstructions. If it is desired to add the contents of the 22nd register of the register file 102 with the 23rd register and transfer the results to the 30th register, three microinstructions are, in fact, necessary. The first microinstruction would read the contents of the 22nd register in.o the T register 106; the second microinstruction would read the contents of the 23rd register through the ALU 120 and in.o the L register 110 and simultaneously would define an add~tion operation in the ALU function field so that the AL~ 120 would perform addition (the result stored in the L
register 110 at the end of the second microinstruction would thus be the sum of the contents of the 22nd register and the con.ents of the 23rd register); the third microinstruction wou~d transfer the contents of the L register 110 through the -shi~.er 144 back into the appropriate destination in the register file 102.
The microinstruction is structured so that a parallelism of different operations may be directed by a given ins.ruction. This segmentation is achieved by the definition 10~100~
of specific fields within the instruction as is represented in Figure 3. A given instruction is selected from the instruction memory 42 and is transferred to the microinstruction register 46 where it is stored as shown in Figure 2. In the preferred embodiment of the invention and as indicated above,: seven fields comprising an instruction width of 22 bits dictate the processing operations to be performed. Five bits (signals A
and B) are used to select the location in the register file 102 which are to be involved during a given instruction period.
If the register file 2 is not to be involved within a particular processing cycle, this RSELECT (RSEL) field has a value of zero. A 4-bit arithmetic and logic unit function field ALUF (signal C~ specifies one of 16 logical operations, including addition and subtraction, which the ALU 120 can perform.
A 3-bit bus source field BS (signal D) determines which of the previously identified eight possible data sources are gated onto the 16-bit bus 22 during the particular microinstruction period.
The Read R and Load R bus sources are typically used in almost every microinstruction. With the value of two, the BS field specifies that nothing is to be placed on the bus 22.
The Kstat source indicates status bits which would be stored within a disc controller, if used as one of the I/O controllers 18. Kdata would consider 16 bits of disc data as a source, again assuming a disc controller were being utilized in the system. Memory data identifies data which would result from a fetch from a particular location in the main memory store 17.
The indicator device data could possibly be represented by four external control bits. Disp would be the lower 8 bits of 10~006 of the instruction register 116, with bits 0-7 made equal to bit 8 (sign extension). This particular bus source specification allows for the definition of microcode which provides fast processing. As has been already mentioned, the register file 102 is gated to the bus 22 during both the reading and the writing of the file 102. Thus, Load R source is included in the source specifiers.
Whenever the register file 102 is selected for reading or writing, data is necessarily placed on the bus 22.
- 10 Therefore, the bus 22 contains data whenever a write operation is performed on the files 102, even though some other transfer in parallel may be made. Writing into the file 102, then, uses the Load R condition in the BS field. If writing into the file 102 is not specified with this field, then there would be no other use for this field during that microinstruction.
~ith this implementation, dur~ng an instruction which writes data into the register file lQ2, the contents of the bus 22 will be represented as zero at that time, even though data was originally on the bus 22. This latter condition is implemented by the address memory 40 (Figure 2) whose inputs are connected to the instruction register 116 and the bus 22 under the control of the signal ZERO BUS. The bus 22 is zero when the ZERO BUS signal is true, which signal is generated whenever the microinstruction specifies that the register file 102 be loaded.
The advantages of using special function fields Fl and F2 can be illustrated by the function of loading the memory address register (MAR) 114. This is a function that is performed moderately often in a microprogram, conceivably every five microinstructions. This frequency of use is not such that it would justify a special bit in the instruction, but often enough so that it should be specified as a task-independent function. Therefore, Load MAR is in the first set of eight function Fl's, i.e. Fl=l. Similar rational is applied to the implementation of the remaining functions within the set of functions.
The left shift (Fl=4), right shift (Fl=5) and cycle (Fl=6) functions control the shifter 144 which is responsive to the output of the L register 110. Sixteen bits of data are transferred from the L register 110 to the shifter 144 in parallel and 16 bits which are inputted to the shifter 144 can be left shifted, right shifted, or cycled by 8 with the :
result of the operation being transferred to the register file 102 to be stored. By the use of the function Fl, values 4, 5, or 6, these task independent functions may be specified.
Tasks may be switched to higher priority wake-up requests by the use of the function 1, value 2 (Fl=2). Current task wake-up may be disabled by the use of the function 1, value - 3 (Fl=3). The function l,value 7 instructs that a literal constant be fetched from the constant memory 128. There are preferably up to 256 literal constants stored in the constant memory 128, the addressing of which requires 8 bits. The constant memory 128, in the preferred embodiment, may be implemented by a 256X16 PROM available from Microsystems International, type MD6300. The constant memory 128 is gated to the bus 22 by Fl = 7, F2 = 7 or BS ~ 4 fields. The constant memory 128 is lO~lOOf~
addressed by the 8-bit concatenation of RSELECT and BS, as shown in Figure 4. The intent in enabling constants with BS ~ 4 is to provide a masking facility, particularly for the input device signal MQUSE and DISP bus source. This is facilitated because the processor bus 22 is arranged electrically such that it -"ANDS" if more than one~source is gated to it.
Up to 32 such mask constants can be provided for each of the 4 bus sources ~ 4. For example, specific locations in memory are identified by constants representing their address to enable the microcode to communicate with the main program. Also, these constants may be used to implement masks, patterns and bits that the program wishes to contain.
Otherwise, such features would have to be stored in the instruction memory 42 which would require an extra 16-bit field.
During an instruction, the constant memory 128 appears to be any other register in relation to the bus 22. The gating of the constant memory 128 onto the bus 22 can occur simultaneously with the specification of another function by the other function field which does not enable the gating of 10~1006 the constant to the bus 22. If, for example, the rest of the instructions dictate that the F2 field be used for a branch, then the assembler will assign Fl=7. Otherwise, it will assign F2=7.
The function 2Is are normally branch conditions.
Each of the F2 values specify the condition that must be satisfied for branches to occur. Specifically, the notation NEXT indicates the next address bus 50 (Figure 2), which transfers the address of the next microinstruction. The left arrow (~f--) means "gets". Therefore, F2=1 indicates that NEXT gets NEXT or (bus equals 0). This indicates that a branch will occur if the bus 50 equals ~, or the-output of the shifter 144 is less than ~ or equal to ~, or will branch to the location specified by the bus 50. An address when generated allows a jump to the location addressed in the instruction memory 42 or a branch if the ALU 120 produces a carry out on the last operation from which it was used.
F2=6 provides for a STORE which says that the data that is currently on the bus 22 be written into the main memory store 17 during this microinstruction cycle. Since the main memory store 17 is much slower than the cycling of the processor itself, it takes four cycles before a STORE is performed.
In the first cycle, the address register 114 is loaded, on the next two cycles, operations may be performed elsewhere in the processor, and in the fourth cycle, data is actually stored in the main memory store 17.
Task dependent (specific) functions are provided by function values in the Fl and F2 fields which are greater than 7, i-e-106~006 between 10 and 17. The following table gives for each of tasks 0, 1, 2 and 3 a number in the priority scheme and their specific functions. The remaining tasks 4-N are not set forth herein since they form no part of the present invention.
Fl (TASK SPECIFIC) CPU-0 DWT-l DHT-2 DVT-3 10: SWMODE
11: WRTRAM
12: RDRAM
10 13:
14: - - _ _ 15:
16:
17: START
F2 (TASK SPECIFIC) CPU-0DWT-l DHT-2 DVT-3 10: BUSODD DDR ~-- EVENFIELD EVENFIELD
11: MAGIC - SETMODE
12: DNS
20 13: ACEST - - -14: IR
15: IPISP
16: ACSOURCE
17:
As discussed above, task ~ is the main microprogram and always is requesting service. Tasks 1-3 are generated by the display controller 18(1). Task 1 is a display word task (DWT), task 2 a display horizontal task (DHT), and task 3 a display vertical task (DVT). As shown in the above tables, only task 0 has task-specific (dependent) function Fl values, i.e. Fl = 10, 11, 12 and 17. In the case of function F2, 10610~)6 however, F2 = 10 - 16 designate functions for task 0, F2 = 10 designates a function (DDR ~--) for task 1, F2 = 10, 11 designate functions (EVENFIELD, SETMORE) for task 2, and F2 = 10 designates a function (EVENFIELD) for task 3. The three microcoded tasks 1-3 will be described below with reference to the display con-troller 18(1) and display 20(1)-The display controller 18(1) handles transfersbetween the main memory 16 and the display 20(1). The display 20(1) may be a standard 875 line raster-scanned CRT-TV monitor, refreshed at 60 fields per second (30 "pages" per second) from a "bit map" in main memory 16. More specifically, there are interlaced even and odd fields, each refreshed 60 times per second so that the total page display is refreshed 30 times per second. The display 20(1) preferably contains 606 points horizontally and 808 points vertically, or 489,648 points total. Thirty-eight, 16-bit words are required to represent each scan line and 30,704 words are required to fill the screen.
The bit map in main memory contains a total number of bits at least equal to 489,648, i.e. the total number of points on the display. This is an important feature of the present invention as will be made clear below.
A page to be displayed is defined at one or more display control blocks (DCB's) in the main memory store 17.
DCB's are linked together starting at location DASTART in the main memory store 17 (see Figure 5). Location DASTART points to the first DCB word ~, or 0 if the display 20(1) is off. All DCB's must start on even word boundaries. Location DASTART+l represents a vertical field interrupt bit mask. Each DCB has the following format:
DCB word ~: Pointer to next DCB, or ~ if this is the last.
DCB word 1: Bit 0 ~=high resolution mode - l=low resolution mode 15Bit 1 ~=black on white back-ground presentation l=white on black back-ground Bits 2-7: HTAB: On each scan line of this block, wait HTAB
16 bits before displaying information from memory.
Bits 8-16: NWRDS:Each scan line in this block is defined by NWRDS
16 bit words. (NWRDS must be even).
~061006 DCB word 2: SA: Bit map "starting address"
(this address must be even).
DCB word 3: S~C: This block defines 2 x SLC
scan lines, SLC in each-field.
At the start of each even and odd field, the display controller 18(1) inspects DASTART and DASTART+l. An interrupt is initiated on the channel specified by the ~its in DASTART+l.
The controller 18(1) then executes each DCB sequentially until the display list or the field ends. At normal resolution, the first scan line of the flrst (even) field of a block is taken from location SA tot~A) (NWRDS-l). During each field, the bit map address is incremented by NWRDS between each scan line. Thus, although the display is interlaced, its representation in memory is not. In low resolution mode, the video is generated at half speed, and each scan line is displayed twice (once in each field).
During each field, the bit map address is not incremented between the display of adjacent scan lines. This makes the format of the bit map of the main memory store 17 identical for both modes--only the size of the presentation is affected by the mode.
The storage of display data in the main memory store 17-will be described in more detail below with reference to Figure 5.
The display controller 18(1) basically consists of a main buffer 180, intermediate buffer 184 and serializing shift register 186 (all shown in Figure 6), a sync generator 196 (Figure 7), and, as indicated above, the three microcode tasks 1-3, i.e. DWT, DHT and DVT, which control data handling and communicate with the main program. Referring to Figures 6 and 7, 106~006 the 16 word buffer 180 is loaded from the bus 22 with the DDR~function (F2=10, specific to the display word task DWT).
The purpose of the intermediate data buffer 184 is to synchronize data transfers between the main buffer 180, which is synchronous with a 170ns master clock, and the shift register 186, which is clocked with an asynchronous bit clock~
The sync generator 196 provides the asynchronous bit clock and the vertical and horizontal synchronization signals required by the display 20(1), as shown in Figure 7.
The horizontal synchronization signal HSYNC is generated from timing and state information presented at the output of a programmable read-only memory 220 which receives at its input the signals Bl, B2, B4, B8 and ~. The output signals from the PROM 220 are latched in a latch 222, which provides the synchronization signal HSYNC along with HBLANK
and the B field. The PROM 220 is preferably of the type 8223 by Signetics and the latch 222 is preferably of the type 74174 by Texas Instruments. The vertical synchronization signal VSYNC is generated in a remaining portion of the logic constituting the sync generator 196. A clock signal HLC is generated from the ANDing from one of the output signals from the PROM 220 with a clock signal DCLK in order to provide a clock signal to a half-line counter 226 comprised of counter elements, preferably type 9316 by Fairchild. The input to the counter 226 is a hard-wired octal number which determines the number of scan lines for the display 20 ll) . The half-line counter 226 counts to the -limit provided by the signal LC which is generated from a NAND gate 228 which decodes its input provided by the 106100~i output of the counter 226 to the signal LC. A PROM 232 processes the output of the counter 226 to generate input signals to a multiplexer 234 which generates the signals __ VBLANK and the vertical synchronication signal VSYNC. The PROM 232 is preferably of the type MD 6300 by Microsystems International and the multiplexer 134 is desirably of the type 74298 by Texas Instruments.
The horizontal synchronization signal HSYNC is inverted by an inverter 237 and then the synchronization signals HSYNC and VSYNC are ORed by virtue of their respective signal levels by a NAND gate 236 to provide a composite synchronization signal. A latch 238 and a NAND
gate 239 provlde for the signal SWAKMRT which may be used in the event a "MOUSE" cursor device is used as one of the I/O devices 20.
In Figure 8, the field BUS( ~j-BUS(15) from the bus 22 is shown loaded into the main buffer 80 under control of the signal LOADMB. The signals MB~ ~A3 select the word to be loaded from the bus 22. The main buffer 180 is comprised of four memory elements, preferably type 3101A by Intel. The output of the main buffer 180 is loaded into the intermediate buffer 184 under control of the signal LOADIB. The buffer 184 is implemented by latches, desirably type 3404 by Intel.
Under control of the signal LOADSR, the shift register 186 is loaded by the output of the intermediate buffer 184.
The contents of the shift register 186 are clocked serially from the register 186 by means of the clocking signal BITCLK.
The shift register 186 is implemented by two 8-bit shift register elements, preferably type 74166 by Texas Instruments.
The output of the shift register 186 provides the video signal which is processed through the video mixer 188 to the display 20(1). The video mixer 188 is implemented by a NOR
gate 242 which'l"ORs" a curser video signal CVIDEO (assuming a cursor unit is employed in the system) with the video signal VIDEO. The output of the NOR gate 242 is further processed by an exclusive OR gate 246, comprised of a pair of AND-gates and a NOR-gate, all numbered 246, in order to provide the true VIDEO signal. A NAND gate 248 allows an external video signal VID to be provided the display 20(1). Horizontal blanking of the VIDEO signal is provided by the signals CLR and the output of a flip-flop 249 under control of the signals CLR and BITCLK.
Referring to Figures 6 and 9, control over the data exchange for the buffers 180 and 184 is provided by the counters 202 and 204, whose outputs are received by-a comparator 210 and a multiplexer 212. The signal UNLOAD increments the counter 202, while the counter 204 is incremented by DDR~f--The output of the counters 202 and 204, i.e. R~ bits and WA
bits respectively, are compared by a comparator 210 to indicate whether or not the main buffer 180 is empty or full. The output signal STOPWARE indicates that the main buffer 180 is almost full; whereas the signal MBEMPTY in fact indicates the buffer 180 is full. The comparator 110 is desirably implemented by a PROM, type MD 6300 by Microsystems International.
The multiplexer 212, under control of the signal DDR~- , selects whether the signals WA~-3 or RA~-3 are placed on the output lines MBA~-MBA3. It has already been mentioned that MBA~-MBA3 select the words from the bus 22 for storage in the buffer 180.
Control logic 190 (Figure 6) is responsive to the output from the comparator 210 to provide buffer control signals, including the signal UNLOAD.
As shown in Figure 10, the control logic 190 is comprised of a counter 255 which is desirably of the type 9316 by Fairchild and which counts to 15. A D-C flip-flop 257, under control of IBEMPTY Cinte~mediate buffer not empty) 10 generates a load shift register signal LOADSR. Another D-C.
flip-flop 259 is responsive to the output of the flip-flop 257 to provide the signal IBEM~TY ~intermediate buffer empty) signal at is Q output and the I~EMPTY signal at its ~ output.
A latch 160 latches the Q output of the flip-flop 159 prior to "ANDingn with the signals I~EMTY unlatched, MBEMP~Y, and DDR~- by means of the NAND gate 264. The output of the NAND
gate 264 provides the UNLOAD signal which causes transfer of data from the main buffer 180 to the intermediate buffer 184 upon the conditions defined by the input signals. The UNLOAD
20 signal is also gated..by the NA~D gate 266 under control of a signal DCARC to provide an output signal which controls the state of the flip-flop 259. Further shown in Figure 10 is the gating logic which provides the signals CLR and LOADMB.
Some of the more significant features of the additional logic provided for the various clocking and control signals required for the operation of the display controller 20(1) is that the bit clock is disabled by vertical and horizontal blanking, and its rate can be set by the microcode to either 50 or 100 ns, by the function SETMODE (F2=11, specific to the display horizontal task DHT). This function examines the two high order bits of the processor bus 22. If bit ~=1, the bit clock rate is set to 100ns period (at the start of the next scan line), and a "1" is merged into the NEXT ADDRESS field. SETMODE
also latches bit 1 of the processor bus 22 and uses the value to control the polarity of the video output. A third function, EVENFIELD (F2=10, specific to DHT and to the display vertical task DVT), merges a "1" into the NEXT ADDRESS field if the display 20(1)is in the even field.
- As indicated previously, the display controller 18(1~ generates wakeup-task request signals 1-3 to the micro-processor tasking logic. Task 3, the vertical task DVT, is ! awakened once per field, at the beginning of vertical retrace.
Task 2, the display horizontal task DHT, is awakened once at the beginning of each field, and thereafter whenever the display word task DWT (task 1) blocks. DHT can block itself, in which case neither it nor DWT can be awakened until the start of the next field. The wakeup-task request signal 1 for the display word task DWT is controlled by the state of the main buffer 180. If DWT has not executed a BLOCK, if DWT is not blocked, and if the buffer 180 is not full, DWT
wakeups are generated. The logic sets the buffer 180 empty and clears the DWT block flip-flop at the beginning of horizontal retrace for every scan line.
10~100~
The specific constitution of the main memory 16 as shown in figure 4 will now be described in more detail with reference to Figures 4 and 5. As indicated above, the main memory 16 includes an addressable main memory store 17 which is desirably 64,000 words X 16 bits. The main memory 16 further includes a conventional driver and parity checking circuit 19 connected to the store 17 by a 16-bit memory data bus 21.
Referring to Figure 5, the main memory store 17 is preferably divided into 3 main storage sections. The first section has various programs and non-display data stored therein. The word DASTART, which points to the first DCB as defined above, is located in this section.
The second section of main memory store 17 has alphanumeric character fonts stored therein. Each word in -- this section of the memory corresponds to a distinct scan line of a distinct character. For example, a character may require 12 scan lines on the display 20(1). In this event, that character would be comprised of twelve, 16-bit wordc in the font section of main memory store 17. The bits in each of these twelve words that are binary "1" would define corresponding points to be illuminated on the display when the character is formed thereon. Under program control, the 12 word font definition of a character to be displayed would be transferred into a designated storage location in a third, display data section, of the main memory store 17 for display at a corresponding location on the display screen.
The third, display data section, has both the display control blocks (DCB's) and the "bit map" to be displayed stored therein. As indicated previously, each DCB contains the infor-mation necessary to define the contents of a variable number of scan lines defining a region on the display screen. The DCB contains this number, as well as thè address in memory from which the data for the region described by the DCB is to be taken. The DCB also contains the address of another DCB
whose contents will be used when the scan lines described by the first DCB have been displayed. There may thus be any number of DCB's,each with an associated region of memory to be displayed (i.e. segment of the bit map). As also indicated previously, each segment of bit map contains a number of words at least equal to the total number of displayed points in that segment divided by 16, i.e. the number of bits per word in the store 17. There are NWRDS words necessary to define a complete scan line on the display screen. Each DCB contains the value of NWRDS for the region it describes.
A memory reference to the main memory 16 is initiated by executing Fl=6, MAR~t~ The program partially controls memory timing, and must observe certain rules to insure correct operation:-a) There may be a minimum of one and maximum of three microinstructions executed between start-ing the memory and the data transfer.
b) During the fourth cycle after the address from memory address register 114 has been loaded, if F2=6, a store of bus data into the word addressed by register 114 will occur.
c) During the fourth cycle of a reference, if BS=5, the reference is a fetch to the word addressed by register 114.
d) During the fifth cycle of a reference, if BS=5, the odd word of the double word addressed by register 114 is deliv2red. The memory cycle is extended by one cycle if both words of a doubleword are fetched. If MD is referenced during the fifth cycle, it must - have also been referenced during the fourth.
e) If MD is referenced before the fourth cycle of a reference, the processor will be suspended until a total of 4 cycles have elapsed.
f) If RSELECT = 37B during the instruction which starts the memory, a refresh cycle is assumed and all memory cards are activated. This is used by the refresh task.
g) The memory checks parity on all fetches, unless the cycle is a refresh cycle, or the address is 177000 in which case an I/O device is being referenced. Parity errors result in activation of a task whose purpose is to deal with the error.
~061006 The main memory store 17 is connected to the bus 22 through the memory data bus 21 and the drivers and parity device 19, the latter providing for the transfer of data to and from the store 17 with a parity check upon the fetching of data from the store 17.
Exemplary microcode for implementing the data process-ing display system as described above may further include as other I/O devices 20 a disk driver, a "MOUSE" cursor unit and five-finger keyset, an unencoded keyboard, an interfact to a serial communication line referred to as "Ethernet," and optionally a serial printer. The main microprogram is referred to as an "emulator". The microassembler (MU) for the CPU is preferably implemented in BCPL.
Although the invention has been described with respect to a presently preferred embodiment, it will be appreciated by those skilled in the art that various modifications, sub-stitutions, etc. may be made without departing from the spirit and scope of the invention as defined in and by the following claims.
~ 38
7 Disp (low order 8 bits of instruction register 116, sign extended) Output 1, i.e. Load R, is not logically a source, but since the register file (R) 102 is gated to the bus 22 during both reading and writing, it is included in the source specifiers.
The two function fields Fl and F2 specify the address modifiers, register load signals ~other than those for the registers 102, 106 and 110) and other special conditions required. The first eight conditions specified by each field after being decoded by Fl decoder 52b are interpretated identi-cally by all tasks, but the interpretation of the second eight decoded conditions depends on the active task. The first eight task-independent functions are given below, whereas the latter eight task-dependent (also referred to as "task~specific") functions will be described later.
OUTPUT
Fl DECODER 52b NAME MEANING
~ No activity 1 MAR ~~ : Load MAR 114 from ALU
120 output; start main memory 16 reference 2 TASK : Switch tasks if higher priority wakeup pending 3 BLOCK ~ : Disable current task wakeup until reenabled by hardware generated condition 4 ~ L lsh 1 : Left shift L (one place) f-L rsh 1 : Right shift L (one place) 6 ~-L lcy 8 : Cycle L (8 places) 7 ~~ CONSTANT -: BUS constant ROM loca-- tion addressed by R
SELECT BUS SOURCE
Outputs 4-6 are modified by function fields F2=11 and F2=12, such fields to be described in detail later.
OUTPUT
0 ---- No Activity 1 BUS=0 NEXT~NEXT OR (BUS=0) 2 . SH 0 NEXT~-NEXT OR (SHIFTER
OUTPUT 0) 3 SH=0 NEXT~LNEXT OR (SHIFTER
OUTPUT =0) 4 BUS NEXT~-NEXT OR BUS (06) -BUS (15) ALUCY NEXT~NEXT OR LALUCO
~THE CARRY USED IS THAT
PRODUCED BY THE ALU
FUNCTION WHICH_LAST
LOADED THE L REGISTER 110.
7 CONSTANT S~-lE AS Fl=7 10f~i1006 The ALU 120 is restricted by the mapping of its 4-bit field by the PROM 140 so that only sixteen arithmetic and logical functions may be performed. The output of the ALU 120 is transferred to the L and memory address registers 110 and 114. The T register 106 may also be loaded from the output of the ALU 120 under certain conditions. The L register 110 is connected to a shifter 144 which is capable of left and right shifts by one place, and cycles of eight. Double-length shifts may also be formed. The output of the shifter 144 is transferable to the register file 102. The output of the MAR
register 114 is decoded by a decode and control unit 148 and transferred along the address bus 13 to the main memory 16, and more particularly to a main memory store 17 of the main memory 16. Details of the main memory 16 and its main memory store 17 will be described below.
As indicated above, microinstructions are executed one at a time in each processing cycle. Generally spea~ing, with respect to the data section 12 of the CPU 10, a micro-ins~ruction consists of taking a piece of data from a source resister in the register file 102, operating upon it, and loading the results into another register. For example, a microinstruction may dictate that the contents of the 23rd reg~ster in the register file 102 be transferred by way of the bus 22 to the T register 106. This microinstruction would be in the form of having the R select field equalling 23 and hav~ng the load T bit set. An additional operation may take as ~any as three microinstructions. If it is desired to add the contents of the 22nd register of the register file 102 with the 23rd register and transfer the results to the 30th register, three microinstructions are, in fact, necessary. The first microinstruction would read the contents of the 22nd register in.o the T register 106; the second microinstruction would read the contents of the 23rd register through the ALU 120 and in.o the L register 110 and simultaneously would define an add~tion operation in the ALU function field so that the AL~ 120 would perform addition (the result stored in the L
register 110 at the end of the second microinstruction would thus be the sum of the contents of the 22nd register and the con.ents of the 23rd register); the third microinstruction wou~d transfer the contents of the L register 110 through the -shi~.er 144 back into the appropriate destination in the register file 102.
The microinstruction is structured so that a parallelism of different operations may be directed by a given ins.ruction. This segmentation is achieved by the definition 10~100~
of specific fields within the instruction as is represented in Figure 3. A given instruction is selected from the instruction memory 42 and is transferred to the microinstruction register 46 where it is stored as shown in Figure 2. In the preferred embodiment of the invention and as indicated above,: seven fields comprising an instruction width of 22 bits dictate the processing operations to be performed. Five bits (signals A
and B) are used to select the location in the register file 102 which are to be involved during a given instruction period.
If the register file 2 is not to be involved within a particular processing cycle, this RSELECT (RSEL) field has a value of zero. A 4-bit arithmetic and logic unit function field ALUF (signal C~ specifies one of 16 logical operations, including addition and subtraction, which the ALU 120 can perform.
A 3-bit bus source field BS (signal D) determines which of the previously identified eight possible data sources are gated onto the 16-bit bus 22 during the particular microinstruction period.
The Read R and Load R bus sources are typically used in almost every microinstruction. With the value of two, the BS field specifies that nothing is to be placed on the bus 22.
The Kstat source indicates status bits which would be stored within a disc controller, if used as one of the I/O controllers 18. Kdata would consider 16 bits of disc data as a source, again assuming a disc controller were being utilized in the system. Memory data identifies data which would result from a fetch from a particular location in the main memory store 17.
The indicator device data could possibly be represented by four external control bits. Disp would be the lower 8 bits of 10~006 of the instruction register 116, with bits 0-7 made equal to bit 8 (sign extension). This particular bus source specification allows for the definition of microcode which provides fast processing. As has been already mentioned, the register file 102 is gated to the bus 22 during both the reading and the writing of the file 102. Thus, Load R source is included in the source specifiers.
Whenever the register file 102 is selected for reading or writing, data is necessarily placed on the bus 22.
- 10 Therefore, the bus 22 contains data whenever a write operation is performed on the files 102, even though some other transfer in parallel may be made. Writing into the file 102, then, uses the Load R condition in the BS field. If writing into the file 102 is not specified with this field, then there would be no other use for this field during that microinstruction.
~ith this implementation, dur~ng an instruction which writes data into the register file lQ2, the contents of the bus 22 will be represented as zero at that time, even though data was originally on the bus 22. This latter condition is implemented by the address memory 40 (Figure 2) whose inputs are connected to the instruction register 116 and the bus 22 under the control of the signal ZERO BUS. The bus 22 is zero when the ZERO BUS signal is true, which signal is generated whenever the microinstruction specifies that the register file 102 be loaded.
The advantages of using special function fields Fl and F2 can be illustrated by the function of loading the memory address register (MAR) 114. This is a function that is performed moderately often in a microprogram, conceivably every five microinstructions. This frequency of use is not such that it would justify a special bit in the instruction, but often enough so that it should be specified as a task-independent function. Therefore, Load MAR is in the first set of eight function Fl's, i.e. Fl=l. Similar rational is applied to the implementation of the remaining functions within the set of functions.
The left shift (Fl=4), right shift (Fl=5) and cycle (Fl=6) functions control the shifter 144 which is responsive to the output of the L register 110. Sixteen bits of data are transferred from the L register 110 to the shifter 144 in parallel and 16 bits which are inputted to the shifter 144 can be left shifted, right shifted, or cycled by 8 with the :
result of the operation being transferred to the register file 102 to be stored. By the use of the function Fl, values 4, 5, or 6, these task independent functions may be specified.
Tasks may be switched to higher priority wake-up requests by the use of the function 1, value 2 (Fl=2). Current task wake-up may be disabled by the use of the function 1, value - 3 (Fl=3). The function l,value 7 instructs that a literal constant be fetched from the constant memory 128. There are preferably up to 256 literal constants stored in the constant memory 128, the addressing of which requires 8 bits. The constant memory 128, in the preferred embodiment, may be implemented by a 256X16 PROM available from Microsystems International, type MD6300. The constant memory 128 is gated to the bus 22 by Fl = 7, F2 = 7 or BS ~ 4 fields. The constant memory 128 is lO~lOOf~
addressed by the 8-bit concatenation of RSELECT and BS, as shown in Figure 4. The intent in enabling constants with BS ~ 4 is to provide a masking facility, particularly for the input device signal MQUSE and DISP bus source. This is facilitated because the processor bus 22 is arranged electrically such that it -"ANDS" if more than one~source is gated to it.
Up to 32 such mask constants can be provided for each of the 4 bus sources ~ 4. For example, specific locations in memory are identified by constants representing their address to enable the microcode to communicate with the main program. Also, these constants may be used to implement masks, patterns and bits that the program wishes to contain.
Otherwise, such features would have to be stored in the instruction memory 42 which would require an extra 16-bit field.
During an instruction, the constant memory 128 appears to be any other register in relation to the bus 22. The gating of the constant memory 128 onto the bus 22 can occur simultaneously with the specification of another function by the other function field which does not enable the gating of 10~1006 the constant to the bus 22. If, for example, the rest of the instructions dictate that the F2 field be used for a branch, then the assembler will assign Fl=7. Otherwise, it will assign F2=7.
The function 2Is are normally branch conditions.
Each of the F2 values specify the condition that must be satisfied for branches to occur. Specifically, the notation NEXT indicates the next address bus 50 (Figure 2), which transfers the address of the next microinstruction. The left arrow (~f--) means "gets". Therefore, F2=1 indicates that NEXT gets NEXT or (bus equals 0). This indicates that a branch will occur if the bus 50 equals ~, or the-output of the shifter 144 is less than ~ or equal to ~, or will branch to the location specified by the bus 50. An address when generated allows a jump to the location addressed in the instruction memory 42 or a branch if the ALU 120 produces a carry out on the last operation from which it was used.
F2=6 provides for a STORE which says that the data that is currently on the bus 22 be written into the main memory store 17 during this microinstruction cycle. Since the main memory store 17 is much slower than the cycling of the processor itself, it takes four cycles before a STORE is performed.
In the first cycle, the address register 114 is loaded, on the next two cycles, operations may be performed elsewhere in the processor, and in the fourth cycle, data is actually stored in the main memory store 17.
Task dependent (specific) functions are provided by function values in the Fl and F2 fields which are greater than 7, i-e-106~006 between 10 and 17. The following table gives for each of tasks 0, 1, 2 and 3 a number in the priority scheme and their specific functions. The remaining tasks 4-N are not set forth herein since they form no part of the present invention.
Fl (TASK SPECIFIC) CPU-0 DWT-l DHT-2 DVT-3 10: SWMODE
11: WRTRAM
12: RDRAM
10 13:
14: - - _ _ 15:
16:
17: START
F2 (TASK SPECIFIC) CPU-0DWT-l DHT-2 DVT-3 10: BUSODD DDR ~-- EVENFIELD EVENFIELD
11: MAGIC - SETMODE
12: DNS
20 13: ACEST - - -14: IR
15: IPISP
16: ACSOURCE
17:
As discussed above, task ~ is the main microprogram and always is requesting service. Tasks 1-3 are generated by the display controller 18(1). Task 1 is a display word task (DWT), task 2 a display horizontal task (DHT), and task 3 a display vertical task (DVT). As shown in the above tables, only task 0 has task-specific (dependent) function Fl values, i.e. Fl = 10, 11, 12 and 17. In the case of function F2, 10610~)6 however, F2 = 10 - 16 designate functions for task 0, F2 = 10 designates a function (DDR ~--) for task 1, F2 = 10, 11 designate functions (EVENFIELD, SETMORE) for task 2, and F2 = 10 designates a function (EVENFIELD) for task 3. The three microcoded tasks 1-3 will be described below with reference to the display con-troller 18(1) and display 20(1)-The display controller 18(1) handles transfersbetween the main memory 16 and the display 20(1). The display 20(1) may be a standard 875 line raster-scanned CRT-TV monitor, refreshed at 60 fields per second (30 "pages" per second) from a "bit map" in main memory 16. More specifically, there are interlaced even and odd fields, each refreshed 60 times per second so that the total page display is refreshed 30 times per second. The display 20(1) preferably contains 606 points horizontally and 808 points vertically, or 489,648 points total. Thirty-eight, 16-bit words are required to represent each scan line and 30,704 words are required to fill the screen.
The bit map in main memory contains a total number of bits at least equal to 489,648, i.e. the total number of points on the display. This is an important feature of the present invention as will be made clear below.
A page to be displayed is defined at one or more display control blocks (DCB's) in the main memory store 17.
DCB's are linked together starting at location DASTART in the main memory store 17 (see Figure 5). Location DASTART points to the first DCB word ~, or 0 if the display 20(1) is off. All DCB's must start on even word boundaries. Location DASTART+l represents a vertical field interrupt bit mask. Each DCB has the following format:
DCB word ~: Pointer to next DCB, or ~ if this is the last.
DCB word 1: Bit 0 ~=high resolution mode - l=low resolution mode 15Bit 1 ~=black on white back-ground presentation l=white on black back-ground Bits 2-7: HTAB: On each scan line of this block, wait HTAB
16 bits before displaying information from memory.
Bits 8-16: NWRDS:Each scan line in this block is defined by NWRDS
16 bit words. (NWRDS must be even).
~061006 DCB word 2: SA: Bit map "starting address"
(this address must be even).
DCB word 3: S~C: This block defines 2 x SLC
scan lines, SLC in each-field.
At the start of each even and odd field, the display controller 18(1) inspects DASTART and DASTART+l. An interrupt is initiated on the channel specified by the ~its in DASTART+l.
The controller 18(1) then executes each DCB sequentially until the display list or the field ends. At normal resolution, the first scan line of the flrst (even) field of a block is taken from location SA tot~A) (NWRDS-l). During each field, the bit map address is incremented by NWRDS between each scan line. Thus, although the display is interlaced, its representation in memory is not. In low resolution mode, the video is generated at half speed, and each scan line is displayed twice (once in each field).
During each field, the bit map address is not incremented between the display of adjacent scan lines. This makes the format of the bit map of the main memory store 17 identical for both modes--only the size of the presentation is affected by the mode.
The storage of display data in the main memory store 17-will be described in more detail below with reference to Figure 5.
The display controller 18(1) basically consists of a main buffer 180, intermediate buffer 184 and serializing shift register 186 (all shown in Figure 6), a sync generator 196 (Figure 7), and, as indicated above, the three microcode tasks 1-3, i.e. DWT, DHT and DVT, which control data handling and communicate with the main program. Referring to Figures 6 and 7, 106~006 the 16 word buffer 180 is loaded from the bus 22 with the DDR~function (F2=10, specific to the display word task DWT).
The purpose of the intermediate data buffer 184 is to synchronize data transfers between the main buffer 180, which is synchronous with a 170ns master clock, and the shift register 186, which is clocked with an asynchronous bit clock~
The sync generator 196 provides the asynchronous bit clock and the vertical and horizontal synchronization signals required by the display 20(1), as shown in Figure 7.
The horizontal synchronization signal HSYNC is generated from timing and state information presented at the output of a programmable read-only memory 220 which receives at its input the signals Bl, B2, B4, B8 and ~. The output signals from the PROM 220 are latched in a latch 222, which provides the synchronization signal HSYNC along with HBLANK
and the B field. The PROM 220 is preferably of the type 8223 by Signetics and the latch 222 is preferably of the type 74174 by Texas Instruments. The vertical synchronization signal VSYNC is generated in a remaining portion of the logic constituting the sync generator 196. A clock signal HLC is generated from the ANDing from one of the output signals from the PROM 220 with a clock signal DCLK in order to provide a clock signal to a half-line counter 226 comprised of counter elements, preferably type 9316 by Fairchild. The input to the counter 226 is a hard-wired octal number which determines the number of scan lines for the display 20 ll) . The half-line counter 226 counts to the -limit provided by the signal LC which is generated from a NAND gate 228 which decodes its input provided by the 106100~i output of the counter 226 to the signal LC. A PROM 232 processes the output of the counter 226 to generate input signals to a multiplexer 234 which generates the signals __ VBLANK and the vertical synchronication signal VSYNC. The PROM 232 is preferably of the type MD 6300 by Microsystems International and the multiplexer 134 is desirably of the type 74298 by Texas Instruments.
The horizontal synchronization signal HSYNC is inverted by an inverter 237 and then the synchronization signals HSYNC and VSYNC are ORed by virtue of their respective signal levels by a NAND gate 236 to provide a composite synchronization signal. A latch 238 and a NAND
gate 239 provlde for the signal SWAKMRT which may be used in the event a "MOUSE" cursor device is used as one of the I/O devices 20.
In Figure 8, the field BUS( ~j-BUS(15) from the bus 22 is shown loaded into the main buffer 80 under control of the signal LOADMB. The signals MB~ ~A3 select the word to be loaded from the bus 22. The main buffer 180 is comprised of four memory elements, preferably type 3101A by Intel. The output of the main buffer 180 is loaded into the intermediate buffer 184 under control of the signal LOADIB. The buffer 184 is implemented by latches, desirably type 3404 by Intel.
Under control of the signal LOADSR, the shift register 186 is loaded by the output of the intermediate buffer 184.
The contents of the shift register 186 are clocked serially from the register 186 by means of the clocking signal BITCLK.
The shift register 186 is implemented by two 8-bit shift register elements, preferably type 74166 by Texas Instruments.
The output of the shift register 186 provides the video signal which is processed through the video mixer 188 to the display 20(1). The video mixer 188 is implemented by a NOR
gate 242 which'l"ORs" a curser video signal CVIDEO (assuming a cursor unit is employed in the system) with the video signal VIDEO. The output of the NOR gate 242 is further processed by an exclusive OR gate 246, comprised of a pair of AND-gates and a NOR-gate, all numbered 246, in order to provide the true VIDEO signal. A NAND gate 248 allows an external video signal VID to be provided the display 20(1). Horizontal blanking of the VIDEO signal is provided by the signals CLR and the output of a flip-flop 249 under control of the signals CLR and BITCLK.
Referring to Figures 6 and 9, control over the data exchange for the buffers 180 and 184 is provided by the counters 202 and 204, whose outputs are received by-a comparator 210 and a multiplexer 212. The signal UNLOAD increments the counter 202, while the counter 204 is incremented by DDR~f--The output of the counters 202 and 204, i.e. R~ bits and WA
bits respectively, are compared by a comparator 210 to indicate whether or not the main buffer 180 is empty or full. The output signal STOPWARE indicates that the main buffer 180 is almost full; whereas the signal MBEMPTY in fact indicates the buffer 180 is full. The comparator 110 is desirably implemented by a PROM, type MD 6300 by Microsystems International.
The multiplexer 212, under control of the signal DDR~- , selects whether the signals WA~-3 or RA~-3 are placed on the output lines MBA~-MBA3. It has already been mentioned that MBA~-MBA3 select the words from the bus 22 for storage in the buffer 180.
Control logic 190 (Figure 6) is responsive to the output from the comparator 210 to provide buffer control signals, including the signal UNLOAD.
As shown in Figure 10, the control logic 190 is comprised of a counter 255 which is desirably of the type 9316 by Fairchild and which counts to 15. A D-C flip-flop 257, under control of IBEMPTY Cinte~mediate buffer not empty) 10 generates a load shift register signal LOADSR. Another D-C.
flip-flop 259 is responsive to the output of the flip-flop 257 to provide the signal IBEM~TY ~intermediate buffer empty) signal at is Q output and the I~EMPTY signal at its ~ output.
A latch 160 latches the Q output of the flip-flop 159 prior to "ANDingn with the signals I~EMTY unlatched, MBEMP~Y, and DDR~- by means of the NAND gate 264. The output of the NAND
gate 264 provides the UNLOAD signal which causes transfer of data from the main buffer 180 to the intermediate buffer 184 upon the conditions defined by the input signals. The UNLOAD
20 signal is also gated..by the NA~D gate 266 under control of a signal DCARC to provide an output signal which controls the state of the flip-flop 259. Further shown in Figure 10 is the gating logic which provides the signals CLR and LOADMB.
Some of the more significant features of the additional logic provided for the various clocking and control signals required for the operation of the display controller 20(1) is that the bit clock is disabled by vertical and horizontal blanking, and its rate can be set by the microcode to either 50 or 100 ns, by the function SETMODE (F2=11, specific to the display horizontal task DHT). This function examines the two high order bits of the processor bus 22. If bit ~=1, the bit clock rate is set to 100ns period (at the start of the next scan line), and a "1" is merged into the NEXT ADDRESS field. SETMODE
also latches bit 1 of the processor bus 22 and uses the value to control the polarity of the video output. A third function, EVENFIELD (F2=10, specific to DHT and to the display vertical task DVT), merges a "1" into the NEXT ADDRESS field if the display 20(1)is in the even field.
- As indicated previously, the display controller 18(1~ generates wakeup-task request signals 1-3 to the micro-processor tasking logic. Task 3, the vertical task DVT, is ! awakened once per field, at the beginning of vertical retrace.
Task 2, the display horizontal task DHT, is awakened once at the beginning of each field, and thereafter whenever the display word task DWT (task 1) blocks. DHT can block itself, in which case neither it nor DWT can be awakened until the start of the next field. The wakeup-task request signal 1 for the display word task DWT is controlled by the state of the main buffer 180. If DWT has not executed a BLOCK, if DWT is not blocked, and if the buffer 180 is not full, DWT
wakeups are generated. The logic sets the buffer 180 empty and clears the DWT block flip-flop at the beginning of horizontal retrace for every scan line.
10~100~
The specific constitution of the main memory 16 as shown in figure 4 will now be described in more detail with reference to Figures 4 and 5. As indicated above, the main memory 16 includes an addressable main memory store 17 which is desirably 64,000 words X 16 bits. The main memory 16 further includes a conventional driver and parity checking circuit 19 connected to the store 17 by a 16-bit memory data bus 21.
Referring to Figure 5, the main memory store 17 is preferably divided into 3 main storage sections. The first section has various programs and non-display data stored therein. The word DASTART, which points to the first DCB as defined above, is located in this section.
The second section of main memory store 17 has alphanumeric character fonts stored therein. Each word in -- this section of the memory corresponds to a distinct scan line of a distinct character. For example, a character may require 12 scan lines on the display 20(1). In this event, that character would be comprised of twelve, 16-bit wordc in the font section of main memory store 17. The bits in each of these twelve words that are binary "1" would define corresponding points to be illuminated on the display when the character is formed thereon. Under program control, the 12 word font definition of a character to be displayed would be transferred into a designated storage location in a third, display data section, of the main memory store 17 for display at a corresponding location on the display screen.
The third, display data section, has both the display control blocks (DCB's) and the "bit map" to be displayed stored therein. As indicated previously, each DCB contains the infor-mation necessary to define the contents of a variable number of scan lines defining a region on the display screen. The DCB contains this number, as well as thè address in memory from which the data for the region described by the DCB is to be taken. The DCB also contains the address of another DCB
whose contents will be used when the scan lines described by the first DCB have been displayed. There may thus be any number of DCB's,each with an associated region of memory to be displayed (i.e. segment of the bit map). As also indicated previously, each segment of bit map contains a number of words at least equal to the total number of displayed points in that segment divided by 16, i.e. the number of bits per word in the store 17. There are NWRDS words necessary to define a complete scan line on the display screen. Each DCB contains the value of NWRDS for the region it describes.
A memory reference to the main memory 16 is initiated by executing Fl=6, MAR~t~ The program partially controls memory timing, and must observe certain rules to insure correct operation:-a) There may be a minimum of one and maximum of three microinstructions executed between start-ing the memory and the data transfer.
b) During the fourth cycle after the address from memory address register 114 has been loaded, if F2=6, a store of bus data into the word addressed by register 114 will occur.
c) During the fourth cycle of a reference, if BS=5, the reference is a fetch to the word addressed by register 114.
d) During the fifth cycle of a reference, if BS=5, the odd word of the double word addressed by register 114 is deliv2red. The memory cycle is extended by one cycle if both words of a doubleword are fetched. If MD is referenced during the fifth cycle, it must - have also been referenced during the fourth.
e) If MD is referenced before the fourth cycle of a reference, the processor will be suspended until a total of 4 cycles have elapsed.
f) If RSELECT = 37B during the instruction which starts the memory, a refresh cycle is assumed and all memory cards are activated. This is used by the refresh task.
g) The memory checks parity on all fetches, unless the cycle is a refresh cycle, or the address is 177000 in which case an I/O device is being referenced. Parity errors result in activation of a task whose purpose is to deal with the error.
~061006 The main memory store 17 is connected to the bus 22 through the memory data bus 21 and the drivers and parity device 19, the latter providing for the transfer of data to and from the store 17 with a parity check upon the fetching of data from the store 17.
Exemplary microcode for implementing the data process-ing display system as described above may further include as other I/O devices 20 a disk driver, a "MOUSE" cursor unit and five-finger keyset, an unencoded keyboard, an interfact to a serial communication line referred to as "Ethernet," and optionally a serial printer. The main microprogram is referred to as an "emulator". The microassembler (MU) for the CPU is preferably implemented in BCPL.
Although the invention has been described with respect to a presently preferred embodiment, it will be appreciated by those skilled in the art that various modifications, sub-stitutions, etc. may be made without departing from the spirit and scope of the invention as defined in and by the following claims.
~ 38
Claims (7)
1. A data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a display controller connected to said display device and responsive to predeter-mined-instructions for controlling the illumination of said plurality of points of said display device; a central process-ing unit including first means for generating said predeter-mined instructions for application to said display controller, and second means for generating said predetermined address signals for application to said main memory storage device;
an address bus connected between said main memory storage device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data transfer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage loca-tions of said memory storage device and said predetermined instructions; said central processing unit including a data section and a control section, said control section including said first means for generating and means for supplying instructions to said data section, and said data section includ-ing said second means for generating and means for executing instructions supplied it from said control section; and said display controller including third means for generating at least one display task request signal, said system further comprising means for supplying said at least one display task request signal to said control section, and said control section including means responsive to said at least one display task request signal for causing said means for supply-ing instructions to said data section to supply instructions relating to the display of said desired image by said display device.
an address bus connected between said main memory storage device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data transfer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage loca-tions of said memory storage device and said predetermined instructions; said central processing unit including a data section and a control section, said control section including said first means for generating and means for supplying instructions to said data section, and said data section includ-ing said second means for generating and means for executing instructions supplied it from said control section; and said display controller including third means for generating at least one display task request signal, said system further comprising means for supplying said at least one display task request signal to said control section, and said control section including means responsive to said at least one display task request signal for causing said means for supply-ing instructions to said data section to supply instructions relating to the display of said desired image by said display device.
2. A data processing display system comprising: a display device capable of displaying a desired image, said display device including a plurality of points each capable of being selectively illuminated; a main memory storage device including a plurality of addressable storage locations capable of being addressed by predetermined address signals, each location capable of storing a multi-bit display word therein, at least some of said addressable storage locations including in the aggregate a number of display bits at least equal to said plurality of points of said display device whereby a display bit map of said desired image is capable of being stored and defined in said at least some addressable storage locations; a display controller connected to said display device and responsive to predetermined instructions for con-trolling the illumination of said plurality of points of said display device; a central processing unit including first means for generating said predetermined instructions for application to said display controller, and second means for generating said predetermined address signals for application to said main memory storage device; an address bus connected between said main memory storage device and said central processing unit for supplying said predetermined address signals to said main memory storage device; a main data trans-fer bus connected to said main memory storage device, said central processing unit and said display controller, said main data transfer bus capable of supplying to said display controller the display words addressed from said at least some addressable storage locations of said memory storage device and said predetermined instructions; and said central processing unit including a data section and a control section, said control section including said first means for generating and means for supplying instructions to said data section, and said data section including said second means for generating and means for executing instructions supplied it from said control section, said means for supplying instruc-tions and said first means for generating including a micro-instruction memory device, said instructions and said pre-determined instructions being microinstructions.
3. The data processing display system of Claim 1, wherein said display device is a raster-scanned device having a plurality of scan lines.
4. The data processing display system of Claim 3, wherein the data to be displayed in said scan lines is trans-mitted from said main memory storage device along said main data transfer bus to said display controller in a plurality of fields of scan lines.
5. The data processing display system of Claim 4, wherein at least some other of the addressable storage locations of said main memory storage device are capable of storing display control data therein.
6. The data processing display system of Claim 5, wherein said central processing unit further includes means for examining display control data from said main memory storage device, and means responsive to said means for examin-ing for directing said second means for generating to address said at least some of said addressable storage locations sequentially or in increments of NWRDS, where NWRDS is the number of display words in a scan line.
7. The data processing display system of Claim 1, wherein the display device includes a display screen utilizing a raster-scanning beam, and wherein said at least one display task request signal includes three display task request signals DWT, DVT and DHT, where DWT is generated when the display controller requires another display word from said main memory storage device, DVT is generated each time said scanning beam returns to the top scan line of said screen, and DHT is generated each time said scanning beam returns to the left side of said screen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA299,754A CA1061006A (en) | 1974-10-29 | 1978-03-28 | Microprogrammable display system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51915374A | 1974-10-29 | 1974-10-29 | |
CA236561 | 1975-09-29 | ||
CA299,754A CA1061006A (en) | 1974-10-29 | 1978-03-28 | Microprogrammable display system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1061006A true CA1061006A (en) | 1979-08-21 |
Family
ID=27164126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA299,754A Expired CA1061006A (en) | 1974-10-29 | 1978-03-28 | Microprogrammable display system |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1061006A (en) |
-
1978
- 1978-03-28 CA CA299,754A patent/CA1061006A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4103331A (en) | Data processing display system | |
US4491836A (en) | Graphics display system and method including two-dimensional cache | |
US4496944A (en) | Graphics display system and method including associative addressing | |
US4710767A (en) | Method and apparatus for displaying multiple images in overlapping windows | |
US5251298A (en) | Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses | |
US4492956A (en) | Graphics display system and method including preclipping circuit | |
US4190835A (en) | Editing display system with dual cursors | |
KR980010997A (en) | Graphics Accelerator and Memory Prefetch Method Using It | |
EP0167600A1 (en) | Apparatus and method for displaying characters in a bit mapped graphics system. | |
US4747042A (en) | Display control system | |
US6952217B1 (en) | Graphics processing unit self-programming | |
JPS6326898B2 (en) | ||
US6229543B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
JP2797435B2 (en) | Display controller | |
US5202671A (en) | Pick function implementation in a parallel processing system | |
JPS5912176B2 (en) | Cursor circuit for digital television display | |
CA1061006A (en) | Microprogrammable display system | |
US5313576A (en) | Bit aligned data block transfer method and apparatus | |
JP2565495B2 (en) | Data processing system | |
EP0223557A2 (en) | Display control in a data processing system | |
US5812836A (en) | System for processing iterative tasks in data processing systems | |
US6727903B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
Wilkes et al. | The rainbow workstation | |
JP3699496B2 (en) | Image supply method and graphic controller using spatial redundancy to improve bandwidth | |
JP2829051B2 (en) | Character display method |