WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Data processing display system    
United States Patent4103331   
Link to this pagehttp://www.wikipatents.com/4103331.html
Inventor(s)Thacker; Charles P. (Palo Alto, CA)
AbstractA data 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 defined in the at least some addressable storage locations.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4103331
Data processing display system - US Patent 4103331 Drawing
Data processing display system
Inventor     Thacker; Charles P. (Palo Alto, CA)
Owner/Assignee     Xerox Corporation (Stamford, CT)
Patent assignment
All assignments
Publication Date     July 25, 1978
Application Number     05/800,370
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 25, 1977
US Classification     345/542 345/501 345/564
Int'l Classification     G06F 003/14
Examiner     Nusbaum; Mark E.
Assistant Examiner    
Attorney/Law Firm     Smith; Barry Paul
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation-in-part of copending U.S. application Ser. No. 733,552 filed on Oct. 18, 1976 as a continuation of now abandoned U.S. application Ser. No. 519,153 filed on Oct. 29, 1974 in the name of Charles P. Thacker and entitled MICROPROGRAMMABLE DISPLAY SYSTEM.
Priority Data    
USPTO Field of Search     364/200 364/900 340/324 A 340/324 AD 340/324 M
Patent Tags     data processing display
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3973245
Belser
345/443
Aug,1976

[0 after 0 votes]
3958225
Turner
712/212
May,1976

[0 after 0 votes]
3952297
Stauffer
345/18
Apr,1976

[0 after 0 votes]
3906480
Schwartz
345/17
Sep,1975

[0 after 0 votes]
3895374
Williams
345/25
Jul,1975

[0 after 0 votes]
3893075
Orban
345/443
Jul,1975

[0 after 0 votes]
3872446
Chambers
715/733
Mar,1975

[0 after 0 votes]
3742289
Koeijmans
324/121R
Jun,1973

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

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 predetermined instructions for controlling 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 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 locations 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 including 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 supplying instructions to said data section to supply instructions relating to the display of said desired image by said display device.

2. The data processing display system of claim 1, wherein said display device is a raster-scanned device having a plurality of scan lines.

3. The data processing display system of claim 2, wherein the data to be displayed in said scan lines is transmitted from said main memory storage device along said main data transfer bus to said display controller in a plurality of fields of scan lines.

4. The data processing display system of claim 3, wherein at least some other of the addressable storage locations of said main memory storage device are capable of storing display control data therein.

5. The data processing display system of claim 4, 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 examining for directing said second 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.

6. 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.

7. 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 controlling 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 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 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 instructions and said first means for generating including a microinstruction memory device, said instructions and said predetermined instructions being microinstructions.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

This invention relates to data processing systems and more particularly, to data processing display systems including one or more display devices each capable of displaying a desired image.

Prior art processing display systems are characterized by special purpose memories which in the 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 energizable points arranged in a plurality of vertically 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" the 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 display screen, each block containing the requisite matrix of energizable points. As is conventional, a display list memory contains the character data 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 ASCII 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 .times. 8. Thus, the scan line number signal 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 transmittal 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. Pat. No. 3,895,357, store a predetermined number of the font memory words, such predetermined number defining a small band of the picture to be displayed, into a partial raster assembly store. Again, however, special purpose memories are employed.

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 display screen. They do not have a "graphics" capability, i.e. the ability to draw relatively high resolution lines and curves unrelated to the conventional alphanumeric characters. U.S. Pat. No. 3,716,842 discloses a data processing display 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, and generality in a display capability sense such as being virtually unlimited as to the nature and location of data displayed on the display thereby providing a graphics capability.

SUMMARY OF THE INVENTION

In furtherance of this desirability, a data processing display system in accordance with the present invention comprises 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, 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 controlling the illumination of said plurality of points of said display device in accordance with said bit map stored in said main memory storage device; a central processing unit including means for supplying said predetermined instructions to said display controller, and means for addressing the storage locations of said main memory storage device; and 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 transmitting the words stored in said at least some addressable storage locations of said main memory storage device to said display controller in order for said bit map to be displayed on said display device.

Since every single point capable of being illuminated on the display device has a corresponding bit location in the main memory storage device, the central processing unit can easily access and manipulate the display data in the same manner as with any other type of data normally stored in main memory. This feature embraces the data processing display system of the present invention with the desired attributes of simplicity and generality, as those terms have been defined above.

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

FIG. 1 is a block diagram representation of an exemplary data processing display system of the present invention;

FIG. 2 is a schematic block diagram representation of the control section of the CPU depicted in FIG. 1;

FIG. 3 is a more detailed block diagram representation of the instruction register and decoders depicted in FIG. 2.

FIG. 4 is a schematic block diagram representation of the data section of the CPU and the main memory depicted in FIG. 1;

FIG. 5 is a representation of the different storage sections of the main memory store depicted in FIG. 4;

FIG. 6 is a block diagram representation of a portion of the display controller depicted in FIG. 1;

FIG. 7 is a block diagram representation of another portion of the display controller depicted in FIG. 1;

FIG. 8 is a schematic drawing of logic elements which constitute portions of the display controller as shown in FIG. 6;

FIG. 9 is a schematic drawing of additional portions of the display controller as depicted in FIG. 6; and

FIG. 10 is a schematic drawing of the control logic of the display controller as shown in FIG. 6.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 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.sub.(1) through 18.sub.(M). 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.sub.(1), is a display controller for controlling a display device 20.sub.(1). Examples of other typical I/O devices that may be employed as I/O devices 20 in the system of FIG. 1 are disk drives, keyboards and cursor control devices (sometimes each referred to as a "mouse"). The depiction of only one display controller 18.sub.(1) and associated display device 20.sub.(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 transferred 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.

Each of the I/O controllers 18, including the display controller 18.sub.(1), is capable of generating one or more task 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.sub.(1) will be described in more detail below. The wakeup-task request signals from the controllers 18 are applied on respective lines 24.sub.(1) -24.sub.(N). The three wakeup-task requests from the display controller 18.sub.(1), arbitrarily designated wakeup-tasks 1-3, are applied on lines 24.sub.(1) -24.sub.(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 FIG. 1. There are three task-active lines associated with the display controller 18.sub.(1), i.e. task 1 active on line 26.sub.(1), task 2 active on line 26.sub.(2) and task 3 active on line 26.sub.(3).

Reference is now had to FIG. 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. Additionally 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 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.sub.(1) may be of higher priority than performing a requested service for I/O controller 18.sub.(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/O controller 18 for execution.

Referring now in more detail to FIG. 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 1-N are provided from the I/O controllers 18. Additionally, a wakeup-task request signal for task 0, which requests servicing the main program, is always present, as will be explained in more detail below. The priority encoder 28 includes circuitry (not shown) for generating a multi-bit control signal on a respective 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 defined 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 addressed 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 microinstruction 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 FIG. 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 with FIG. 3) to the data section 12 of the CPU. Certain of these decoded instructions are also forwarded to the display controller 18.sub.(1), as will be discussed below in connection with FIGS. 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 microinstruction 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, some of which 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 "F1" sub-field), wherein two of the 16 four-bit codes capable of being defined (e.g. F1=2, F1=3) are respectively 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.

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 microinstruction 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 FIG. 2, the control section 14 of the CPU 10 further includes conventional address 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 output 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, dependent 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 TASK-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 FIG. 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 task-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 FIG. 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 register 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 16 and thus the initialization address signal is a four-bit signal that is 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 copending U.S. application Ser. No. 769,254 filed on Feb. 16, 1977 as a continuation of now abandoned U.S. application Ser. No. 518,679 filed on Oct. 29, 1974 by Charles P. Thacker for TASK HANDLING IN A MICRO-PROGRAMMED DEVICE and assigned to the assignee of the present invention, both such applications being hereby incorporated by reference.

Referring now to FIG. 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 of 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 128 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.sub.(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 microinstructions which are executed from the instruction memory 42, which is desirably implemented by a conventional 1024 word .times. 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 FIG. 3. As shown, the 22-bit instruction field loaded into the instruction register 46 includes seven "sub-fields" as follows:

______________________________________ BIT(S) SIGNAL MEANING ______________________________________ 0-2 A REGISTER (R) SELECT 3,4 B REGISTER (R) SELECT 5-8 C ALU FUNCTION 9-11 D BUS DATA SOURCE 12-15 E FUNCTION 1 16-19 G FUNCTION 2 20 H LOAD L 21 I LOAD T ______________________________________

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 (FIG. 4). This enables the main microgrogram, 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 useful functions. These functions are disclosed and described in detail in the aforementioned parent applications Ser. Nos. 519; 153 and 733,552, both of which are hereby incorporated by reference.

The bus data source field (bits 9-11, signal D), upon being decoded by BS decoder 52a, specifies one of eight 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) 5 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 F1 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 F1 decoder 52b are interpretated identically 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 F1 DECODER 52b NAME MEANING ______________________________________ 0 -- No activity 1 MAR.rarw. 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 .rarw.L lsh 1 Left shift L (one place) 5 .rarw.L rsh 1 Right shift L (one place) 6 .rarw.L lcy 8 Cycle L (8 places) 7 .rarw.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 F2 DECODER 52c NAME MEANING __________________________________________________________________________ 0 -- No Acitivity 1 BUS=0 NEXT.rarw.NEXT OR(BUS=0) 2 SH 0 NEXT.rarw.NEXT OR (SHIFTER OUTPUT 0) 3 SH=0 NEXT.rarw.NEXT OR (SHIFTER OUTPUT=0) 4 BUS NEXT.rarw.NEXT OR BUS (06) -BUS (15) 5 ALUCY NEXT.rarw.NEXT OR LALUCO (THE CARRY USED IS THAT PRODUCED BY THE ALU FUNCTION WHICH LAST LOADED THE L REGISTER 110. 6 STORE 7 CONSTANT SAME AS F1=7 __________________________________________________________________________

The ALU 120 is restricted by the mapping of its 4-bit field by the PROM 140 so that only 16 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 speaking, with respect to the data section 12 of the CPU 10, a microinstruction consists of taking a piece of data from a source register 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 register 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 having the load T bit set. An additional operation may take as many 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 into the T register 106; the second microinstruction would read the contents of the 23rd register through the ALU 120 and into the L register 110 and simultaneously would define an addition operation in the ALU function field so that the ALU 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 contents of the 23rd register); the third microinstruction would transfer the contents of the L register 110 through the shifter 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 instruction. This segmentation is achieved by the definition of specific fields within the instruction as is represented in FIG. 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 FIG. 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 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. 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. With this implementation, during an instruction which writes data into the register file 102, 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 (FIG. 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 F1 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 F1's, i.e. F1=1. Similar rational is applied to the implementation of the remaining functions within the set of functions.

The left shift (F1=4), right shift (F1=5) and cycle (F1=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 F1, 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 (F1=2). Current task wake-up may be disabled by the use of the function 1, value 3 (F1=3). The function 1, value 7 instructs that a literal constant be fetched from the constant memory 128. There are