Abstract:
A computer design based on a platform of multiple central processing units (CPUs). When running multiple applications, each of the multiple CPUs performs all the processing for one of the individual applications. All of the multiple CPUs may operate below the physical layer of the OSI model. They may communicate with each other in a various manners, and they each communicate with a “gateway” CPU that is logically disposed above them on the physical level. The gateway CPU acts as a door or clearinghouse to and from the underground layer. The processing that occurs by the multiple CPUs on the underground layer allows a higher level of security, reliability, and speed compared to conventional single-CPU multitasking systems.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     Current computers typically employ a single main microprocessor or central processing unit (CPU) to run applications. Multiple applications can be run simultaneously via multitasking, whereby the single CPU is employed to run multiple applications by switching from one application to the next so rapidly that it appears all of the applications are running at the same time. Two types exist: preemptive multitasking has the CPU apportioning amounts of time to each application; cooperative multitasking has each application using the CPU for as long as necessary.  
         [0002]     In both cases, the CPU is not substantially devoted to any one application, causing delays in processing which become more noticeable to the user as the complexity of the applications, and the number of applications simultaneously run by the user, increases. In addition, the possibility of processing errors increases as the CPU is forced to handle more complex and numerous applications simultaneously.  
       SUMMARY OF THE INVENTION  
       [0003]     In one aspect, the invention is directed towards a client-based computer design based on a platform of multiple central processing units (CPUs). When running multiple applications, each of the multiple CPUs performs the processing for each of the individual applications.  
         [0004]     All of the multiple CPUs may operate below the physical layer of the OSI model. They may communicate with each other in a serial fashion, and they each communicate with a “gateway” CPU that is logically disposed above them on the physical level. The gateway CPU acts as a door or clearinghouse to and from the underground layer.  
         [0005]     The processing that occurs by the multiple CPUs on the underground layer allows a higher level of security, reliability, and speed compared to conventional single-CPU multitasking systems.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]      FIG. 1  shows a schematic depiction of an embodiment of the invention.  
         [0007]      FIG. 2  shows a schematic depiction of an embodiment of the invention employing a vertically-stacked set of application-specific CPUs communicating with a gateway CPU via a controller.  
         [0008]      FIG. 3  shows a schematic depiction of an embodiment of the invention employing a vertically-stacked set of application-specific CPUs communicating with a gateway CPU via plural buses.  
         [0009]      FIG. 4  shows a schematic depiction of an embodiment of the invention employing a vertically-stacked set of memories communicating with respective application-specific CPUs, the memories further communicating with a gateway CPU via plural buses. 
     
    
     DETAILED DESCRIPTION  
       [0000]     Definitions  
         [0010]     A “gateway CPU” refers to a central processing unit or microprocessor that is resident in the physical layer of a client-based computer system. It is the CPU that is responsible for communicating with various plural application-specific CPUs in the underground or sub- layer. The gateway CPU may be identified with the CPU in non-parallel-processing computers, except in part for its enhanced abilities to communicate with application-specific CPUs. In other words, in addition to the usual capabilities of accepting inputs from devices and providing outputs for devices, the gateway CPU can also receive inputs from application-specific CPUs and can further provide outputs to the same. To the extent the application-specific CPUs have inputs and outputs similar to or the same as devices, the gateway CPU can be a convention CPU running a conventional operating system. The gateway CPU functions in a typical fashion across IP networks, but acts more like a buffer to applications running on the underground level and a driver to the GUI, I/O, and memory subsystems.  
         [0011]     An “application-specific CPU” is a CPU that is substantially devoted to processing one application in a computer system. It is a CPU that is resident in the underground layer. The design of the motherboard of the system may be such that enough application-specific CPUs may be accommodated for all the possible applications to be run on the PC. Moreover, the design of the motherboard of the system may be such that additional CPUs may be added on at a later time. It should be noted that the application-specific CPU is different from the known types of co-processors, such as math co-processors or graphics co-processors. The application-specific CPUs may further be designed and configured to run specific assigned applications. For example, one may be designed specifically for MS Word, another for MS Access, another for video-intensive game play, etc. In building an application-specific CPU, the hardware designer may consult the software designer for any particular requirements or standards desirable to provide the most efficient operation of the software.  
         [0012]     The “physical” “layer” is the processing layer of the gateway CPU, and is capable of communicating in known fashion with I/O devices and peripherals. The physical layer may operate on typical PC or MAC operating systems. While embodiments of the current invention may apply to almost any type of computer system, they may be particularly well-applied to notebook computer systems, as computing power is typically the most costly and limited in these environments.  
         [0013]     The “underground” or “sub-” “layer” is the processing layer of the application-specific CPUs. It may generally only be accessed via the gateway CPU, although application-specific CPUs may communicate with each other as well. The underground layer is generally unique to any one computer system.  
         [0014]     Referring to  FIG. 1 , which shows a schematic depiction of an embodiment of the invention, a physical layer  12  is shown that includes a gateway CPU  52 . The gateway CPU  52  communicates with various plural application-specific CPUs  54 - 62  in an underground layer  14 . The gateway CPU  52  also communicates with various I/O devices and peripherals, shown schematically and cumulatively as I/O DEVICES  74  and PERIPHERALS  76 . The communication between the gateway CPU  52  and the I/O devices  74  or the peripherals  76  is via the I/O buses  78  or  80 , respectively. Of course, a local bus may also be employed if warranted for especially fast data transfer rates.  
         [0015]     In the underground layer  14 , a plurality of application-specific CPUs  54 - 62  is shown. The application-specific CPUs  54 ,  56 ,  58 ,  60 , and  62  connect to the gateway CPU  52  via buses  82 ,  84 ,  86 ,  88 , and  90 , respectively. In addition, a bus  92  is shown indicating the expandability of the system.  
         [0016]     The application-specific CPUs  54 - 62  may also connect to each other via serial connections  64 ,  66 ,  70 ,  72 , as well as numerous other connections (not shown) such as optical or RF. In general, each application-specific CPU  54 - 62  may connect to each other one, and may do so in a serial, parallel, or other fashion. Serial connections may be preferable due to differing bus or address widths between application-specific CPUs.  
         [0017]     One reason such connections between the application-specific CPUs are desirable is that a data object may be shared between several applications in this way. For example, a table created in MS Excel may be desired to be present in an MS Word document as well. Either the table may be stored in memory or on a hard drive, and then accessed by the MS Word document, or the table may be transferred to the MS Word document via an application-specific CPU serial connection such as connections  64 ,  66 ,  70 ,  72 . The communication scheme between the application-specific CPUs allows the system to be expanded as needed, allowing access to a sub network across multiple platforms if need be with added gate hardware. This aspect is discussed in more detail below.  
         [0018]     In use, each application-specific CPU only accesses the gateway CPU when necessary. Furthermore, each application-specific CPU substantially runs only the application assigned to it, and may employ memory for such application as may be either assigned to it or apportioned to it out of a general memory sub-system. It is to be understood that each application-specific CPU may also include software, hardware, or firmware which enables the same to communicate with the rest of the system in an organized fashion; such administrative applications are in no way to be construed as contradicting the mandate of the application-specific CPU to run substantially only the application assigned to it.  
         [0019]     Each application-specific CPU may access the video board either on its own or through the gateway CPU, according to the application, in order to update the video display when a change occurs in the state of an application-specific CPU that results in a change to the user interface or appearance of an application display. The same is true of access to various co-processors as may be needed or desired.  
         [0020]     The gateway CPU thus is less responsible for running applications and more responsible for coordinating the running of applications by the application-specific CPUs. Its primary functions include buffering data between the application-specific CPUs and the gateway CPU as well as driving the GUI, I/O, peripherals, and memory subsystems.  
         [0021]     The system may enjoy enhanced security. For example, software and viruses would have an additional layer to penetrate before reaching the application-specific CPUs. The conventional multitasking system uses its open design for security, whereas a design according to an embodiment of the current invention employs its processing below the physical layer as a physical hardware boundary, and is thus not entirely software-dependent for security.  
         [0022]     In alternative embodiments, a vertical stack of CPUs can be designed into a single package  100  for the purpose of providing a convenient system for application-specific CPUs. For example, and referring to  FIG. 2 , a vertical stack of application-specific CPUs  154 - 162  is shown connected to a gateway CPU  52  via a controller  164 . Controller  164  coordinates communications between the application-specific CPUs  154 - 162  and the controller  164 . The controller  164  and its bus  166  may be of various varieties. The bus  166  may be similar to that of bus  82  in  FIG. 1 , in which case the controller  164  is required to coordinate which of the application-specific CPUs  154 - 162  is communicating with the bus  166  at any given time.  
         [0023]     Alternatively, the controller  164  and its bus  166  may be of a type more functionally similar to  FIG. 1 , as shown in  FIG. 3 , in which each of the application-specific CPUs  254 - 262  in the stack  200  is communicating with the gateway CPU  52  independently via buses  170 - 178 , respectively.  
         [0024]     In another alternative embodiment, shown in  FIG. 4 , a dynamic 3D layered memory  300  may be created. In this way, writing to a memory address may store data simultaneously to multiple registers  354 - 362  for simultaneous reading from multiple CPUs  254 - 262  respectively. Of course, the memories may be physically different; they need not be arranged in a vertical stack. The same is true of the application-specific CPUs. All other reference numerals refer to the same or similar elements in the prior figures.  
         [0025]     In a related alternative embodiment, shown in  FIG. 5 , an embodiment in shown in which a single memory register, such as register  354  from  FIG. 4 , employs multiple memory modules. In particular, memory register  354 ′ has a plurality of memory modules  354   a - 354   e . When a byte or word is written to memory register  354 ′, the same is written to each of the plurality of memory modules  354   a - 354   e . Each module has the same memory location with respect to the CPU. Each memory module may have the same word length, access rate, and data within it. All other reference numerals refer to the same or similar elements in the prior figures.  
         [0026]     Of course, it is noted that the same need not be physically stacked. They may simply be “stacked” within the architecture of the system. The grouping may be physically present in hardware, or may be created by software, or by a combination of both. One advantage to using hardware, and a physically-stacked design, is that critical time may be saved over performing the same functions entirely in software.  
         [0027]     Depending on the number of applications that need access to register  354 ′, there may be that number of memory modules created and accessible, to be accessed by the applications simultaneously. One application of this would be for high-definition streaming.  
         [0028]     While five modules  354   a - 354   e  are shown, any number of modules may be implemented.  
         [0029]     A naming convention for such a system may be, e.g., 65.5 k×8×5, where 65.5 k represent the address locations, 8 the number of address lines, and 5 the number of memory modules. Corresponding to this, vertically-stacked busses, control lines, etc., may also be employed, running to and from the memory modules.  
         [0030]     As noted above, the communication scheme between the application-specific CPUs allows the system to be expanded as needed, allowing access to a sub network across multiple platforms if need be with added gate hardware.  
         [0031]     The invention has been described with respect to certain embodiments. However, the scope of what is claimed as the invention is to be construed only by the appended claims.