BACKGROUND OF THE INVENTION
[0001] The present invention relates to remote management of data processing units.
[0002] Remote management of data processing unit, as described e.g. in EP-A-962862 by the
same applicant, allows management and monitoring of a data processing unit from remote.
While in the past such remote management has mainly encompassed monitoring internal
properties, such as temperature, fan speed, and data protocols applied in the local
data processing unit (such as a computer, workstation or mainframe), more current
management units further allow visualization of data display on a remote display of
the local data processing unit. For that purpose, the remote management unit is coupled
to an internal bus (such as a PCI-bus) of the data processing unit. The remote management
unit comprises a graphic chip allowing converting instructions received e.g. from
the CPU into graphic signals to be sent to the remote data processing unit for monitoring
the local data processing unit. The remote data processing unit receives the graphic
information and can display that on a screen. However, disadvantageous in that solution
is not only that an internal graphic processing unit (such as a graphic card) has
to be disabled for allowing the remote visualization, but also that the remote management
unit requires more sophisticated and thus costly components rendering application
of such remote management units only for high-end applications.
SUMMARY OF THE INVENTION
[0003] It is an object of the present invention to provide an improved data visualization
of a local data processing unit in a remote data processing unit. The object is solved
by the independent claims. Preferred embodiments are shown by the dependent claims.
[0004] According to the present invention, a remote management unit is coupled to an internal
bus of a local data processing unit. Further coupled to the local bus is a graphics
unit for providing a data display on a monitor of the local data processing unit.
The graphics unit comprises a memory containing a digital representation of the current
display on the local monitor. A central processing unit (CPU) and further functional
units might also be coupled to the local bus subject to the specific application.
[0005] The remote management unit, situated in the local data processing unit, is adapted
to be coupled to a remote data processing unit, e.g. via a data communication network
or a wireless data transmission. The remote data processing unit is located physically
remote from the local data processing unit. In order to enable the remote data processing
unit to visualize the current content displayed on the local monitor of the local
data processing unit, the remote management unit addresses the graphics memory of
the graphics unit, reads out its current data content or at least parts of it, and
transmits the read-out data content to the remote data processing unit. The remote
data processing unit can then display or further process the received data.
[0006] In one embodiment, the remote management unit determines addresses of the graphics
memory during an initialization process of the local data processing unit, wherein
the graphics unit reports existence and size of the graphics memory to the CPU and
receives in return valid addresses enabling other devices to address the graphics
memory. The remote management unit monitors such initialization process and stores
information about the current configuration of the local data processing unit and
in particular the addresses of the graphics memory.
[0007] In a preferred embodiment, the local bus of the local data processing unit is a PCI-bus,
and the remote management unit is preferably coupled at the same PCI-level of the
local bus as the graphics unit, However, other bus-systems can be applied accordingly,
whereby the data access of the remote management unit onto the graphics memory is
determined by the specific protocol of the applied bus system.
[0008] In order to reduce effort required for the remote management unit to process the
graphics data and also to improve data transfer speed, data-compression algorithms
might be applied. In one embodiment a specific algorithm is used for reading data
from a memory such as the graphics memory. For that purpose, the memory is divided
into a plurality of sections. For each section, a characteristic property (e.g. the
checksum of the data content of that section) is determined and stored. At a successive
time unit, the sections of the memory are analyzed accordingly, and the characteristic
property of that time unit is compared with the characteristic property of the foregoing
or a previous time unit. In case that the current characteristic property is changed,
it is assumed that the content of that section has been changed, and only the contents
of such sections with changed characteristic property will be read out. Sections with
unchanged characteristic property are assumed to still contain the same (unchanged)
content.
[0009] In one embodiment for successively reading out a memory once per time unit, the content
of this memory is first divided in a plurality of sections. During a first time unit,
the content of each section is read out, and a characteristic property is determined
for the content of each one of the sections. The determined characteristic property
is stored for each section. At a second and at each successive time unit, the characteristic
property will again be determined for the then present content of each section. In
case the characteristic property of a section differs from the characteristic property
stored for that section, it is assumed that the content of that section has been changed.
In that case, the changed characteristic property will be stored for that section,
and the content of that section will be read out. In case the currently determined
characteristic property equals the value of the characteristic property stored for
that section, it will be assumed that the content of that section has not been changed,
and the stored value of the characteristic property is maintained (or refreshed),
and no data will be read out from that section.
[0010] The accuracy of the applied data compression depends on the number and size of the
sections and the ambiguity of the determined characteristic property. This data compression
algorithm is in particular suitable for reading out stored graphics data.
[0011] For determining the characteristic property, each algorithm as known in the art can
be applied in principle. Typical algorithms can be checksum, square root and (almost
arbitrary) combinations of mathematical operations. The characteristic property is
preferably only determined for a part of the content of each section, however, can
also be determined for the entire section content.
[0012] For applying the preferred compression algorithm for reading out the graphics memory,
the remote management unit divides the graphics memory into a plurality of sections.
During each time unit, the remote management unit determines the characteristic property
for each one of the sections, compares the determined characteristic properties with
the corresponding stored characteristic properties, and either stores the changed
characteristic property and reads out the content for that section, or maintains the
stored value of the characteristic property without reading out that section.
[0013] It is clear that the invention can be partly or entirely embodied or supported by
one or more suitable software programs, which can be stored on or otherwise provided
by any kind of data carrier, and which might be executed in or by any suitable data
processing unit.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Other objects and many of the attendant advantages of the present invention will
be readily appreciated and become better understood by reference to the following
detailed description when considering in connection with the accompanied drawings.
Features that are substantially or functionally equal or similar will be referred
to with the same reference sign(s).
- Figure 1
- illustrates the principals of the present invention.
- Figure 2
- illustrates an inventive memory reading out.
DETAILED DESCRIPTION OF THE INVENTION
[0015] In Figure 1, a local data processing unit 10 comprises a CPU 20, a graphics unit
(GFX) 30, and a remote management unit (RMU) 40, all coupled to an internal bus 50
of the local data processing unit 10. Further units might be coupled to the bus 50
(as indicated at the right side of Figure 1) but are not of interest here.
[0016] A display 60 is coupled to a graphics memory 70 of the graphics unit 30. The graphics
memory 70 is provided for containing a digital representation of the image presently
displayed by the display 60.
[0017] The remote management unit 40 can be coupled to a remote data processing unit 100,
which can be physically located fare off from the local data processing unit 10.
[0018] The remote management unit 40 is preferably embodied by one of the Agilent Remote
Management Cards eRMC (N2530), RMC (N2520), or pRMC (N2525) provided by the applicant
Agilent Technologies.
[0019] Generally during an initialization process of the local data processing unit 10,
the CPU 20 will initialize the graphics unit 30, and an address range will be assigned
for the graphics memory 70. The remote management unit 40 is provided to monitor such
initializing process and to store the assigned address range of the graphics memory
70.
[0020] The content of the graphics memory 70 is repeatedly updated in determined time units
or intervals. This can be done by the graphics unit 30 or directly by other devices
dependent on the specific application and set up of the local data processing unit
10. That means that the content of the graphics memory 30 is maintained unchanged
during each time interval, and might be provided to the display 60 e.g. through analog
to digital converters or other units.
[0021] The remote management unit 40 can address and read out the graphics memory 70 via
the bus 50. The read out graphics information can be transferred to the remote data
processing unit 100 and displayed thereby.
[0022] A preferred embodiment for reading out the graphics memory 70 shall now be explained
in general terms. It will become clear that this reading out scheme is not limited
to reading out the graphics memory 70 but can also be applied for other purposes.
Figures 2 illustrate the inventive algorithm for efficiently memory reading out a
generic memory 200. It goes without saying that the explanations for memory 200 apply
accordingly to the graphics memory 70.
[0023] The memory 200 is divided into a plurality of sections 210. In the example of Figures
2A-2C, the memory 200 is divided into 16 sections 210 A to 210 P. Each section 210
represents a memory range of the memory 200 greater than its smallest memory cell.
[0024] The content of the memory 200 shall be repeatedly read out in successive time intervals.
During a first time interval, the content of each one of the sections 210 is read
out. Further for each one of the sections 210, a characteristic property for that
section is determined and will also be stored.
[0025] In a preferred embodiment, the characteristic property is represented by a checksum
determined from all or only a portion of the contents of each section 210. [Those
sections represent the graphical data in form of pixels. Pixels are generally represented
as digital numbers (e.g. 2, 4, 8 bits) associated with their respective color maps.
In some representations, the color information of the pixel is directly associated
with the digital number (16, 32 bits). A typical checksum algorithm looks at such
section as a linear segment of integer data. Any standard CRC (Cyclic Redundancy Check)
could be applied. For simplicity and speed, a very small subset of the section could
be analyzed (for example 7 pixels). The simple addition of the 7 integer values representing
that segment would deliver the checksum. As it is highly likely that almost all pixels
within a segment change when the screen changes, it is sufficient to test a just subset
of pixels. The example of Figure 2A shows arbitrary values of the characteristic properties
assigned to each one of the sections 210. In Figure 2A, the characteristic property
of section 210A is 10, 15 for section 210B, 7 for section 210C, and so on. The value
of the characteristic property is stored for each one of the sections 210.
[0026] Figure 2B shows an (also arbitrary) example for the values of the characteristics
properties determined for the sections 210 in a time interval successive to the time
interval of Figure 2A. As apparent from Figure 2B, only the values of the characteristic
properties of sections 210D and 210H have been changed. Hence, it is assumed that
only those sections 210D and 210H have been changed, and only the contents of those
sections 210D and 210H will be read out.
[0027] Figure 2C depicts the values of the characteristic property determined for each one
of the sections 210 in a time interval successive to the time interval represented
by Figure 2B. In the example of Figure 2C, the values of the characteristic property
have been changed only in the sections 210D and 210P. In accordance with the aforesaid,
only the changed values of the characteristic property of sections 210A, 210D and
210P will be amended and newly stored, while the values of the characteristic property
of the other sections 210 will be maintained unchanged. Further, the content of the
sections 210A, 210D and 210P will be assumed to have been changed and (only those
sections 210A, 210D and 210P) will be read out.
[0028] Thus, only a limited number of sections 210 wherein the value of the characteristic
property has been changed will be read out. This can lead to a significantly reduced
effort for reading out the memory 200 in case that its content is only changed partially
between successive time intervals for reading out the memory 200. This represents
a compression of the data stream required for successively reading out the memory
200.
[0029] The remote management unit 40 applies the above described compression algorithm for
successively reading out the graphics memory 70. Thus, the resources required for
reading out and storing the content of the graphics memory 70 can be reduced. However,
an increased effort has to be spent by the remote management unit 40 for repeatedly
determining and storing the values of the characteristic property for each one of
the sections 210 into which the graphics memory 70 has been logically divided by the
remote management unit 40.
1. A remote management unit (40) adapted to be coupled to an internal bus (50) of a local
data processing unit (10) having a graphics unit (30), coupled to the internal bus
(50), for providing a data display on a monitor (60) of the local data processing
unit (10), the graphics unit (30) comprising a graphics memory (70) adapted for containing
a digital representation of the current display for the local monitor (60), wherein:
the remote management unit (40) is adapted to provide a data communication with a
remote data processing unit (100) located remote from the local data processing unit
(10), and
the remote management unit (40) is adapted for addressing the graphics memory (70),
reading out data content of the graphics memory (70), and transmitting the read-out
data content to the remote data processing unit (100).
2. The remote management unit (40) of claim 1, wherein the internal bus (50) is a PCI-bus.
3. The remote management unit (40) of claim 2 being coupled at the same PCI-level of
the internal bus (50) as the graphics unit (30).
4. A local data processing unit (10) having a monitor (60), a graphics unit (30) for
providing a data display on the monitor (60), an internal bus (50), and a remote management
unit (40) adapted to provide a data communication with a remote data processing unit
(100) located remote from the local data processing unit (10), wherein:
the remote management unit (40) and the graphics unit (30) are coupled to the internal
bus (50),
the graphics unit (30) comprises a graphics memory (70) adapted for containing a digital
representation of the current display for the local monitor (60), and
the remote management unit (40) is adapted for addressing the graphics memory (70),
reading out data content of the graphics memory (70), and transmitting the read-out
data content to the remote data processing unit (100).
5. A method for providing a data visualization from a local data processing unit (10)
to a remote data processing unit (100) located remote from the local data processing
unit (10), wherein a graphics unit (30) adapted for providing a data display on a
local monitor (60) is coupled to an internal bus (50) of the local data processing
unit (10), and the graphics unit (30) comprises a graphics memory (70) adapted for
containing a digital representation of the current display for the local monitor (60),
the method comprising the steps of:
(a) addressing the graphics memory (70),
(b) reading out data content of the graphics memory (70), and
(c) transmitting the read-out data content to the remote data processing unit (100).
6. The method of claim 5, further comprising prior to step (a) a step of determining
addresses of the graphics memory (70) during an initialization process of the local
data processing unit (10) wherein the graphics unit (30) reports existence and size
of the graphics memory (70) and receives in return valid addresses assigned for the
graphics memory (70).
7. The method of claim 6, comprising the steps of monitoring the initialization process
and storing assigned the addresses for the graphics memory (70).
8. The method of claim 5 or 6, wherein step (b) comprises a step (b1) of compressing
data content of the graphics memory (70) before reading out.
9. The method of claim 8, wherein step (b1) comprises one of the methods of claims 10-12
for reading out the data content of the graphics memory (70).
10. A method for reading out data content of a memory (200; 70), comprising the steps
of:
(1) dividing the memory (200; 70) into a plurality of sections (210),
(2) during a first time interval:
(2.1) determining a characteristic property for each section (210),
(2.2) storing the determined characteristic property for each section (210), and
(2.3) reading out the data content of each section (210);
(3) during successive time intervals:
(3.1) determining the characteristic property for each section (210),
(3.2) determining modified sections (210) as such sections (210) for which the determined
characteristic property deviates from the stored characteristic property,
(3.3) storing the determined characteristic property for the determined modified sections
(210), and
(3.4) reading out the data content of the determined modified sections (210).
11. The method of claim 10, wherein the characteristic property is determined for a part
of the content of each section (210).
12. The method of claim 10 or 11, wherein the characteristic property is determined by
determining a checksum for each section (210).
13. A software program or product, preferably stored on a data carrier, for executing
one of the methods of claims 5-12 when run on a data processing system such as a computer.