A. Version History
Date |
Revision |
Description |
Author |
2017-07-05 |
A |
Documents created with features in subsequent
revisions |
Vinh Nguyen canvinh@gmail.com |
2022-04-09 |
PB1 |
Added section 15 for multiple monitors |
Vinh Nguyen |
|
|
|
|
|
|
|
|
|
|
|
|
B. System Descriptions
---------
In this case, the signal PrintData would be placed in the Delivery Queue to dispatch to its destination program.
The signal SP_Display3dReport (prefixed with characters SP_) with data would be placed in the Special Processing Queue by the generic processor to be executed by the Specialized Processor discussed later. The system identified the signal SP_Display3dReport by the syntax SP_PROCESS. Using the prefix SP_ would help in debugging.
EXEC SP_RotateAirplane WITH vertex5, vertex6, vertex7, vertex8;
SEND RecordData with data1, data2, data3, data4;
Depending of the variable type or address in the section of codes, e.g. permanent or temporary, the processor would save data in the database for other programs used.
In this case, the signal SP_RotateAirplane would also be executed by the specialized processor.
The specialized processor would place the signal RecordData with data to the Delivery queue for delivery.
This specialized processor may send back data to other programs in ordinary signals or predetermined signals with data for further processing. In case of sending an ordinary signal, the signal would be placed in the Delivery Queue or Special Delivery Queue for dispatching, i.e. the Delivery Queue and Special Delivery Queue could be the same OR only one Delivery Queue required by the system.
The specialized processor is a customized processor with firmware/software and hardware including microprocessor for special tasks, e.g. dedicated for hidden surface removal of an object. This would be useful in robotic simulation or 3D games.
The application could send a list of vertices of an object and a view point to the specialized processor, the object would be displayed properly with hidden surface removed. For example, software provider could provide an interface to declare an object as below
Attribute 2: ViewPoint;
End;
Attribute 1: Vertices for a surface;
Attribute 2: Image or color to be displayed on the surface above;
End;
If the specialized processor could handle many similar special tasks, the cost of the system would go down, because a specialized microprocessor was expensive.
4. Ericsson’s PLEX and other programming languages
Generic processor 1 and Generic processor 2 are running in parallel. The specialized processor is customized for specific tasks.
PLEX's programming language provides "Exit" to release processors for other programs executing tasks, thus it's easier to support parallel generic processors. The way programs (blocks) developed at Ericsson was similar, i.e. "a couple of tens lines of codes between receiving a signal (which triggers an execution of codes in that block) and then an Exit". This would help to distribute programming codes evenly for all generic processors.
Other programming languages such as Java, C++, C#, etc. supports a string (stack) of function calls continuously, i.e. a processor was seized for a long period of time. It's harder to spread or to distribute tasks evenly on many generic processors.
In the diagram, only 2 identical generic processors were described. However, a system could be equipped with as many generic processors as needed, i.e. just plug-in new circuit board with a generic processor with proper bus and communication signals
5. Several specialized processors
The goal was to keep product cost low and develop a good system. Having more specialized processors would make system expensive, i.e. harder to sell to many end users. However, developers could add more specialized processors as needed.
The modification would be
If the compiler had converted the high level language codes into assembly codes before loading into a queue or a processor, those statements/signals with prefixes would be treated differently, thus codes would be properly dispatched and executed.
Personally I don’t think a system would need parallel specialized processors. Otherwise developers could add identical specialized processor(s) in the same way as generic processors.
In the diagram, only 2 generic parallel processors were described, but more generic processors could be added as needed. All discussions covered 2 or more generic processors. The only issue was the higher cost of a computer with more processors. A typical laptop would only need 2 generic parallel processors plus a specialized graphic processor for high demanding graphic games.
6. Processing queue and Delivery queue
7. Difference between Microsoft Windows and APY in design
8. Explanation
The process to check delivery queue to deliver signal with data based on hardware (crystal) clock cycle could be tied to a processor or all parallel generic processors in the system. Microprocessors in these days are reliable, thus having a single generic processor checking delivery queue would simplify circuitry and its implementation including processing power. However, a critical system would tie this process to more than 1 processor or all generic processors to ensure that system would be functional if fault happened, e.g. a faulty processor for this process wouldn’t stop the entire system.
The OS supports this design would work for a motherboard of a single generic processor or more.
The specialized processor is an optional component in the system. If it is added to the motherboard and supported by a special programming language with library, the supplier must communicate with the OS and other generic processor providers in order to use the generic processors in their applications.
The programming language used in the example is PLEX. This language supports protocol’s application development. This would reduce the stacking of function calls on the system and release processors for other tasks in an efficient way. Personally I found that PLEX is easy to understand and to debug with Test System tool.
If the Delivery Queue is designed to deliver signals with data, the system would probably need only one queue for both generic processors and specialized processor(s). However, a specialized processor could communicate with itself and other components with signals plus unique data/information, thus having a separate delivery queue would be required.
Some of notes may be patented, thus you should check with patent offices before implementing those. I have used some of my knowledge of the Ericsson’s APZ architecture based on my memory to discuss parallel processors. Many of our PC and laptop have used processor core instead of parallel processors for faster task execution.
I intended to illustrate a system with parallel processors and a specialized processor. However, the entire system would be implemented in many different components of a real computer system, e.g. programming language, compiler, operating system, assembly language, motherboard hardware, and micro-processors.
I haven’t worked in any development of an operating system or hardware design in my career.
10 Examples
10.1 Current laptop configuration
Currently a laptop with an Intel i5 with 8GB RAM is around $650 CAD. A laptop with an Intel i7 and more (16GB) RAM could be around $3000 CAD.
I found the i5 laptop + Win 10 is performed well for daily stuff such as web chat and reading news. My kids could play many web games without any issues.
Thus, a laptop equipped with 2 Intel i5 microprocessors as generic parallel processors would perform very well. A specialized (graphic) microprocessor would be needed for users playing 3D games, virtual reality games, or intensive demand of processing power. This laptop would be less than $3000 CAD, but outperform the $3000 CAD laptop above.
10.2 Tuning number of clock cycles required to deliver signals in Delivery Queue
There is no good way to guess what would be the best number of clock cycles required to dispatch signals in the Delivery Queue for system’s best performance. There are so many unknown variables to consider in this case, e.g.
Timer would require logics and calculation, i.e. some processing power required.
! Section reserved for signal entry
GOTO label2;
GOTO label3;
signal with data could be sent out for further processing.
Exit;
label2;
signal with data could be sent out for further processing.
signal with data could be sent out for further processing.
11. Parallel processing
11.2 Supplementary Processing Queue
One of method to resolve issue above was to implement a Supplementary Processing Queue to store the early arrived section of codes, and to wait for its required data being executed in another part of the application.
signal with data could be sent out for further processing.
! codes between label1 and exit to the
! supplementary processing queue
12. Preloading data in memory to each processor
12.1 Concurrent main memory access
12.2 Handling of pre-load variables in a processors
13. Parallel memory
14. Miscellaneous notes
14.1 Special Syntax
Figure 2. Specialized processor with delivery
queue
14.2 Special Function prefixed with SP_
Multiple Monitors
To help stock traders or software developers, who have been using
multiple monitors in their tasks, we could design a 4-screen or 4-monior laptop.
The additional top (ID = 01), right (ID = 11), left (ID = 10) monitors could be
pulled out from the regular/main monitor laptop (ID = 00) to make the laptop
with 4 screens. Manufacturers could add 3 more (touch) keyboards underneath of
the regular keyboards, which control a specific monitor.
Figure 3. Layout of multiple monitor system
The communications between software application and each monitor
was described in the figure 3. Each monitor is uniquely identified by the processor
motherboard with ID = 00, 01, 10, or 11.
As shown in the figure 3, each monitor is connected to the Monitor Dispatching Manager. When a user
start an application, main monitor would show the intended data/UI of that
application. User would normally drag any screen/UI to the monitor on the top,
left, or right for display.
There are 2 ways for the software applications communicating
correctly with the assigned monitor are
·
When the user dragged the UI to a screen the
system would relay the ID of the monitor back to the application layer and
store it for subsequent communications.
·
When the user started an application, the
application would prompt user for destination monitor, e.g. main, top, left, or
right. The application would store the monitor ID for subsequent
communications.
In the figure 3, there are only 4 monitors used, therefore system
would reserve 2 bits as ID. These 2 bits would be embedded or included in each
message processed by the OS, processor motherboard, and then sent to the Monitor Dispatching Manager. Based on
the value of these 2 bits, messages would be dispatched to correct monitor for
display.
If each application has assigned a unique ID, which is passed
through OS, processor motherboard, and toward the monitor, system does not need
to pass the monitor ID (00, 01, 10, or 11) back to the application for future processing.
The Monitor Dispatching Manager would
only associate the application ID with each monitor ID and store locally for
future communications after user dragging a UI to a specific monitor.
The generic processors are working in parallel. However, sometime they behave as pipeline processors for the specialized processors in some tasks and vice versa.
ReplyDeleteWhy did the specialized processor perform all special tasks plus generic stuff? Simple reason. Cost was the concern. Having many features incorporate in a micro-processor would make it costly. It may slow down the processor for its intended tasks due to its complex design.
Specialized processor could be viewed as a library to handle special program statements and special signals with data.
ReplyDeleteAssuming a specialized processor was very popular in the future, thus computer manufacturers decided to merge its functionality with a generic processor to make this combined processor as a new generic processor in the system. The new system would be equipped with 2 new parallel generic processors, thus cost would go down, too.
ReplyDeleteDo application developers have to rewrite their applications that worked on the previous platform for this new generic processor? No, they should only recompile their application and generate new executable files.
- The OS or programming language provider could provide a plug-in for developers to specify old platform and new platform.
- The compiler would only change the specific "SPLabel_" and "SP_Exit" to "Label_" (or strip off characters "SPLabel_" from a label) and "Exit" respectively.
- The signal prefixed with "SP_" would have the prefix removed.
- All special program statements would be marked or reallocate to regular Processing Queue.
The compiler should be able to perform tasks above.
Users ported an application to a new platform would have issues, but the application could prompt users to get updates from the company, where the new compiled application could be downloaded for their specific platform. [Their system spec may be required before a download.]
The cost of a system with new generic processor(s) could be around 70% or 80% of the old platform due to simplified circuitry of a motherboard, but higher cost for 2 combined processors.
ReplyDeleteRegarding system performance, both (old and new) systems may be the same depending on applications run by users:
- applications used more "previous" generic processors may slow down;
- applications used more "specialized" processors would run faster due to parallel combined processors.
I heard that Windows 12 will support parallel processors with a programming language similar to PLEX by Christmas 2017.
ReplyDeleteGoogle will offer the parallel processors OS by September 2018. Apple by Christmas 2018.
Microsoft will offer Mobile Router in Windows 12 mobile phone for more than 10 WiFi users. So, Microsoft would get a lot of buyers for this feature 9 months before Google could step in. It's convenient to have a mobile router in a car while travelling with kids. Kids could connect their tablets to a Win 12 phone for Internet games.
Assuming that Win 12 user interface is acceptable to users, who had been addicted to iPhone.
A laptop is very compact, thus it must come with preconfigured processors.
ReplyDeleteA desktop PC has many slots reserved for specialized graphic card or sound card. Therefore, manufacturers could provide similar empty slots to plug in extra generic processor card(s) or specialized processor card(s). This would add on processing power to a desktop PC.
It's hard to determine the number of clock cycles required to dispatch signals in the Delivery Queue for system’s best performance.
ReplyDeleteA formula should be recommended by OS developer or manufacturer of the PC in case of fine tuning was required to optimize the clock cycles that would trigger dispatching signals in a delivering queue.
Manufacturer could attempt to automate this process by checking the delivery queue performance and coming up with another number of clock cycles. In this case, users wouldn't need to call technical support. However this is a critical task that affects a system performance. Monitoring would be recommended for highly critical system, e.g. suggest users to call support after a few automated updates failed to boost system performance. Technical support would log in and gather more details about applications installed and executed in that system.
(continued)
ReplyDeleteBy diagnosis of a customer system, technical support may find out that there are many applications on the system. Some of them sent many signals, some with fewer signals. Those applications could be running in parallel or separately at anytime.
In the above case, there would be no best "number of clock cycles for delivery queue" suggested. Technical support could set the "monitoring value to 1,000,000 times for system to keep automating the best clock cycles." Customers won't call again, but system could still be dynamically adjusted based on applications executed at any moment.
Technical support could suggest customers to come up with a consistent design rule, thus their applications would behave in similar ways, i.e. sending (appropriately) the same amount signals in a certain period of time, i.e. system would be fine tuned and performed better.
(continued)
ReplyDeleteThe number of clock cycles could be based on the load in the processing queue at a given time and the capacity of the processing queue(s).
It could be a complicated formula.
A generic processor could be a cluster of (multiple core) microprocessors as long as all generic processors are identical. A parallel processor PC with 2 Intel i5 should outperform a PC with a single Intel i7. However the cost of 2 Intel i5 microprocessors is less expensive.
ReplyDelete