WO2006008961A1 - 情報処理システム及び情報処理方法、並びにコンピュータプログラム - Google Patents

情報処理システム及び情報処理方法、並びにコンピュータプログラム Download PDF

Info

Publication number
WO2006008961A1
WO2006008961A1 PCT/JP2005/012422 JP2005012422W WO2006008961A1 WO 2006008961 A1 WO2006008961 A1 WO 2006008961A1 JP 2005012422 W JP2005012422 W JP 2005012422W WO 2006008961 A1 WO2006008961 A1 WO 2006008961A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
processor
sub
image data
information
Prior art date
Application number
PCT/JP2005/012422
Other languages
English (en)
French (fr)
Inventor
Shinji Nakagawa
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to US11/632,655 priority Critical patent/US20080253673A1/en
Priority to EP20050765473 priority patent/EP1775962A1/en
Priority to KR20077000928A priority patent/KR20070035037A/ko
Publication of WO2006008961A1 publication Critical patent/WO2006008961A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Definitions

  • the present invention relates to an information processing system, an information processing method, and a computer program that link operations between two or more devices, and in particular, a plurality of devices perform virtual processing by cooperative operation, thereby enabling virtual processing.
  • the present invention relates to an information processing system, an information processing method, and a computer program that operate as a single device.
  • the present invention relates to information in which each processor suitably operates in an information processing apparatus having a multiprocessor configuration having a main processor power that commands execution of a program to one or more subprocessors and each subprocessor.
  • the information processing system relates to a processing system, an information processing method, and a computer program, and in particular, an information processing system in which each sub-processor executes processing assigned from a main processor with high performance and without reducing the performance of the entire system. And an information processing method, and a computer program.
  • a plurality of information processing devices on a network perform coordinated operations to perform distributed processing, and from a user, the information processing devices can operate virtually as one information processing device. it can.
  • Each information processing apparatus that realizes grid computing is configured as, for example, a multiprocessor system.
  • the information processing apparatus is equipped with one or more sub processors capable of executing a program developed on its own local storage, and a main processor that instructs the sub processor to execute the program.
  • the main processor is not included in each sub-processor.
  • resources such as surplus processing capacity
  • multiple functions can be executed in parallel.
  • additional processing related to recorded content such as recording reservations for TV programs, playback of recorded content, scene recognition, and re-encoding 'image quality improvement' can be distributed using sub-processors.
  • FIG. 24 schematically shows a configuration example of an information processing system that realizes grid computing.
  • the illustrated system has a multiprocessor configuration including a main processor and one or more sub-processors, and each processor can execute a program developed on its own local storage.
  • the main processor can load a subprocessor program for processing on the local storage of the subprocessor and instruct the subprocessor to execute the program.
  • the illustrated stem is provided with a main memory shared by each processor via a system bus.
  • the main processor can distribute a plurality of processes and execute them in parallel by assigning the processing of each data developed on the main memory to each sub processor.
  • the sub-processor uses data transferred from the main memory to its own local storage for calculation.
  • the arithmetic unit in the sub processor accesses only its own low-power storage during the operation, and does not directly access the main memory.
  • the operation result stored in the local storage is written back to the main memory. That is, the sub-processor does not access the main memory sequentially, but uses its own local storage as a cache memory.
  • the main processor can assign the decoding processing of the compressed image to one sub processor.
  • other processing on the decoded image data such as image quality improvement that edits the image data to the user's preferred quality, and re-encoding that re-encodes to another encoding method, etc. Can be operated as a whole system.
  • the overall code generation amount is controlled by controlling the DCT coefficient quantization scale.
  • inter-frame coding is performed to compress difference information between a compression target frame and a reference frame.
  • MPEG uses “predictive coding” that expresses the signal value of a pixel as a difference from the signal value of a pixel at another time. This is realized by combining “forward prediction between frames” based on prediction and “bidirectional prediction between frames” that predicts the current screen using both the past and future playback screens.
  • the image types handled in MPEG are I-pictures (Intra-Pictures) that can be used only for intra-coded (intra-frame prediction) screens, P-pictures (Predictive-Pictures) generated by inter-frame forward prediction, and inter-frame predictions.
  • B pictures Bidirectionally Predictive Picture
  • the size of the frame memory is about 3 Mbytes to 6 Mbytes per frame in an HD (High Definition) size image. For this reason, image coding and decoding In systems that handle image frames, DRAM with a low unit price per bit is used. And since DRAM is slow, ordinary processors often take a system with a cache. As a general cache operation, data in an area continuous to the memory address accessed by the processor is stored in the cache memory.
  • the bus connecting the main memory and the local storage is commonly used by multiple modules, and the main memory often uses low-speed DRAM. It becomes a factor that degrades the overall performance.
  • One possible solution to this problem is to implement a cache.
  • a cache By implementing a cache, the number of accesses to the main memory can be reduced, and as a result, the performance of the entire decryption process can be prevented from being degraded.
  • each sub-processor uses its own local storage as a cache.
  • the compressed stream data is sequentially processed along the time axis, so that it is continuous with the memory address accessed by the sub processor.
  • the data in the area is cached, it is easy to always place valid data in the cache by normal cache operation.
  • the predicted image data in (2) varies depending on the characteristics of the image, that is, the moving direction and speed of the image between frames, so that the probability of missing the cache varies. That is, if the data in the area continuous to the memory address accessed by the sub-processor is cached, a sufficient cache hit rate cannot be obtained in normal cache operation.
  • This cache miss causes data transfer waiting, delays the decoding process in the sub-processor, and causes an increase in system bus traffic, resulting in a decrease in overall system performance.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2002-342165
  • Patent Document 2 JP 2002-351850 A
  • Patent Document 3 Japanese Patent Laid-Open No. 2002-358289
  • Patent Document 4 Japanese Patent Laid-Open No. 2002-366533
  • Patent Document 5 Japanese Patent Laid-Open No. 2002-366534
  • An object of the present invention is to enable each processor to suitably operate in cooperation in an information processing apparatus having a multiprocessor configuration that also has one or more sub-processors and a main processor that instructs each sub-processor to execute a program.
  • An information processing system, an information processing method, and a computer program are provided.
  • a further object of the present invention is to provide an excellent information processing system in which each sub-processor can execute processing assigned main processor power with high performance and without reducing the performance of the entire system. And an information processing method and a computer program.
  • a further object of the present invention is to assign processing of each data on the memory shared by the entire system to each sub processor, and execute processing to which each sub processor is assigned without degrading the performance of the entire system. Excellent information processing system and information A processing method and a computer program are provided.
  • a further object of the present invention is that the sub-processor can execute the decoding process of the compressed image on the memory shared by the entire system with high performance and without reducing the performance of the entire system.
  • An object is to provide an excellent information processing system, information processing method, and computer program.
  • the present invention has been made in consideration of the above-mentioned problems.
  • the first aspect of the present invention is that one or more sub-processors capable of executing a program developed on its own mouthless storage,
  • This is an information processing system characterized by adaptively determining the cache area in the main memory to be cached next in the local storage based on the characteristics of the data being stored.
  • system refers to a logical collection of a plurality of devices (or function modules that realize specific functions), and each device or function module is a single unit. It does not matter whether the force is in the housing.
  • an information processing system having a multiprocessor configuration, which includes one or more sub-processors capable of executing a program developed on its own local storage, and a main processor that instructs the sub-processor to execute the program.
  • a single processor can distribute and implement high-load processing, or two or more related data processes can be synchronized and executed in a coordinated manner. Can provide value service.
  • each sub-processor uses its own local storage as a so-called cache memory when processing data in the main memory, thereby competing for access to the main memory and system-nos traffic. Increase can be suppressed. However, if the cache hit rate is not high enough, the effect cannot be fully demonstrated.
  • the present invention based on data currently cached! /, The following key is used. Since the cache area is determined adaptively, the probability of hitting the cache on the local storage in the subsequent data processing increases, and the data processing performance of the sub processor itself is improved. In addition, cache hits can reduce system bus traffic associated with access to main memory, improving overall system performance.
  • the sub processor when the compressed image data on the main memory shared by the entire system is decoded using a certain sub processor, the sub processor indicates the characteristics of the image data currently cached on the local storage. Based on the parameters, the cache area on the main memory to be cached next in the low power storage is adaptively determined.
  • the compressed image data is subjected to an inter-frame encoding process for compressing difference information between a compression target frame and a reference frame. Therefore, the sub processor obtains the reference position used to generate the difference information in the reference frame based on the parameters indicating the characteristics of the image data, and sets the image data around the reference position as a cache area. do it.
  • the motion information of the image block encoded together with the image data can be used as the parameter indicating the feature of the image data referred to here. Then, based on the motion information of the encoded image block, the movement direction and speed of the image block can be calculated to predict the operation of the image block, and the cache area can be obtained.
  • the motion information for several past image blocks is stored, and the motion information used in the next image block is obtained by extrapolation from the moving speeds in the X and Y coordinate directions. Good.
  • the operation of the image block may always be predicted, and the cache prefetching process may be executed speculatively.
  • a motion vector is always predicted regardless of the presence or absence of a cache miss.
  • Execute cache prefetch processing In this case, motion vector prediction processing is required every time, but if the overhead of the prediction processing is less than the data transfer waiting processing at the time of a cache miss, the performance of the entire system is improved. be able to.
  • the data transfer between the main memory and the local storage, which occurs due to speculative cache processing, is shorter and takes less time than image decoding processing performed in units of macroblocks. Therefore, it is possible to efficiently perform cache processing of reference image data without degrading the overall performance of the decoding system.
  • one or more sub-processors capable of executing a program developed on its own local storage, a main processor instructing the sub-processor to execute the program,
  • Main memory power Page of Tagawa which transfers data to be processed to the local storage of the sub processor
  • a cache processor that adaptively determines the cache area on the main memory to be cached in the local storage next based on the data processing procedure in which the sub processor processes the data on the local storage and the characteristics of the data processed on the local storage. Rear determination procedure,
  • the computer program according to the second aspect of the present invention defines a computer program described in a computer-readable format so as to realize predetermined processing on a computer system.
  • the computer program according to the second aspect of the present invention is installed on the computer system so as to be executed on the computer system. Has a cooperative action and can obtain the same operational effects as the information processing system according to the first aspect of the present invention.
  • each sub-processor allocates main processor power. It is possible to provide an excellent information processing system, information processing method, and computer program capable of executing the processed processing without degrading the performance of the entire system.
  • the processing of each data on the memory shared by the entire system is allocated to each sub processor, and the processing to which each sub processor is allocated is executed without degrading the performance of the entire system.
  • cache control is performed according to the characteristics of the reference image using the motion direction and motion speed of the motion vector.
  • the present invention data is stored in the cache with a high possibility of hit. Therefore, the cache size can be reduced if the same performance as the conventional system is maintained. As a result, it is possible to reduce the amount of transfer between memories, which improves power efficiency.
  • FIG. 1 is a diagram showing a configuration of a network system according to an embodiment of the present invention. is there.
  • FIG. 2 is a diagram for explaining an access procedure from the sub processor 23 to the main memory 24.
  • FIG. 3 is a diagram showing a configuration example of a software cell.
  • FIG. 4 is a diagram showing the data area of the software cell when the DMA command is a status return command.
  • FIG. 5 is a diagram showing a state in which a plurality of information processing devices operate as a single virtual information processing device.
  • FIG. 6 is a diagram illustrating an example of a software configuration of the information processing controller.
  • FIG. 7 is a diagram showing a state in which four information processing apparatuses operate as one virtual information processing apparatus.
  • FIG. 8 is a diagram showing an example of distributed processing in the system shown in FIG.
  • FIG. 9 is a diagram illustrating a specific example of each information processing apparatus and system.
  • FIG. 10 is a diagram showing a hardware configuration of the hard disk recorder in FIG.
  • FIG. 11 is a diagram showing a software configuration of the hard disk recorder in FIG.
  • FIG. 12 is a diagram showing a hardware configuration of the PDA in FIG.
  • FIG. 13 is a diagram showing the software configuration of the PDA in FIG.
  • FIG. 14 is a diagram showing a hardware configuration of the portable CD player in FIG.
  • FIG. 15 is a diagram showing a software configuration of the portable CD player in FIG.
  • FIG. 16 is a diagram schematically showing a functional configuration of a multiprocessor configuration system when one sub-processor performs image decoding processing.
  • FIG. 17 is a flowchart showing a basic operation procedure when decoding a compressed image signal.
  • FIG. 18 shows the position of the image data used for prediction in the reference frame (cache area). It is the flowchart which showed the process sequence for acquiring a).
  • FIG. 19 is a flowchart showing a processing procedure for obtaining the position (cache area) of image data used for prediction in a reference frame.
  • FIG. 20 is a diagram for explaining a processing procedure for predicting a motion vector decoded in the next macro block based on the current macro block and surrounding motion vectors.
  • FIG. 21 is a diagram for explaining a processing procedure for obtaining a frame area to be cached based on a motion vector.
  • FIG. 22 is a diagram for explaining a cache area calculation method.
  • FIG. 23 is a flowchart showing a processing procedure for acquiring a position (cache area) of image data used for prediction in a reference frame.
  • FIG. 24 is a diagram schematically showing a configuration example of an information processing system for realizing grid computing.
  • the present invention provides a recording reservation operation in each device set in different locations by suitably linking operations between two or more information processing devices via a home network. Is simple and efficient. In order to link devices on the network, grid computing technology is used to achieve high computing performance through cooperative operation of devices.
  • FIG. 1 schematically shows a configuration of a network system configured by applying grid computing.
  • the network includes the Internet and other wide area networks, and private networks such as a local area network (LAN) and a home network connected to the wide area network via a gateway.
  • the home network can be physically configured with standard network interfaces such as lOBaseT, 100BaseTX, and Giga eather.
  • Upnp Universal Plug and Play
  • XML extended Markup Language
  • a plurality of information processing apparatuses are connected on the network.
  • Examples of information processing devices include AV equipment equipped with recording media and a recording reservation function such as a DVD recorder or HD recorder, or a playback-only AV equipment that has a recording function such as a compact disc, etc.
  • Information processing apparatus is a computer processing system such as a PDA or a personal computer. In the example shown in FIG. 1, a plurality of information processing apparatuses 1, 2, 3, 4 are connected via a network 9.
  • the information processing apparatuses 1, 2, 3, and 4 are, for example, various AV (Audio and Visual) devices and portable devices (described later).
  • the information processing apparatus 1 includes an information processing controller 11 as a computer function unit.
  • the information processing controller 11 includes a main processor 21-1 and a sub processor 23— 1, 23-2, 23-3, DMAC (Direct Memory Access Controller) 25-1, and DC (Disk Controller) 27-1.
  • the information processing controller 11 is preferably configured as a one-chip IC (integrated circuit).
  • the main processor 21-1 is responsible for program execution (data processing) schedule management by the sub-processors 23-1, 1, 23-2, 23-3, and general management of the information processing controller 11 (information processing apparatus 1). And do. However, a program other than the program for managing in the main processor 21-1 can be configured to operate. In this case, the main processor 21-1 also functions as a sub processor.
  • the main processor 21 — 1 is equipped with LS (local storage) 22 — 1!
  • the number of sub-processors provided in one information processing apparatus may be one, but is preferably plural. In the illustrated example, there are a plurality of cases.
  • Each sub-processor 23-1, 23-2, 23-3 executes a program and processes data in parallel and independently under the control of the main processor 21-1. Further, in some cases, the program in the main processor 21-1 can operate in cooperation with the program in the sub-processors 23-1, 23-2, 23-3.
  • Each sub-processor 23-1, 1, 23-2, 23-3 also has LS (local storage) 24-1, 24-2, 24-3, respectively.
  • the DMAC (direct memory access controller) 25-1 is stored in the main memory 26-1 including DRAM (dynamic RAM) connected to the information processing controller 11!
  • DRAM dynamic RAM
  • the program and data are accessed without the intervention of the processor.
  • a DC (disk controller) 27-1 controls access operations to the external recording units 281, 28-2 connected to the information processing controller 11.
  • the external recording units 28-1, 28-2 may be either a fixed disk (node disk) or a removable disk.
  • various recording media such as MO (magnetic disk), CD ⁇ RW, DVD player RW and other optical disks, memory disks, SRAM (static RAM), and ROM can be used as removable disks.
  • DC27-1 which is called a disk controller, is an external recording unit controller. As shown in FIG. 1, the information processing controller 11 can be configured so that a plurality of external recording units 28 can be connected.
  • the main processor 21-1, each of the sub processors 23-1, 23-2, 23-3, DMAC25-1, and DC27-1 are interconnected by a bus 29-1.
  • An identifier that can uniquely identify the information processing device 1 in which the information processing controller 11 is mounted throughout the entire network is assigned to the information processing controller 11 as an information processing device ID.
  • the main processor 21-1 and the sub-processors 23-1, 2 3-2, and 23-3 are also assigned as identifier power main processor ID and sub-processor ID that can identify each.
  • each sub-processor 23 in one information processing controller independently executes a program and processes data, but different sub-processors simultaneously read or write to the same area in the main memory 26. If this is done, data inconsistencies may occur. Therefore, the access from the sub processor 23 to the main memory 26 is performed according to the following procedure.
  • FIG. 2A shows a location in the main memory 26.
  • the main memory 26 is composed of memory locations that can specify a plurality of addresses, and an additional segment for storing information indicating the state of data is allocated to each memory location.
  • the additional segment shall include the FZE bit, sub-processor ID and LS address (single-calor 'storage address). Each memory location is also assigned an access key, described below.
  • the FZE bit is defined as follows:
  • FZE bit 0 indicates that data can be written to the corresponding memory location, and is set to 1 after writing.
  • FZE bit 1
  • the data in the memory location is read by sub-processor 23. It indicates that the latest data is not processed and is not processed.
  • the data at this memory location is readable and is set to 0 after being read by sub-processor 23.
  • the sub processor 23 When a read reservation is made for a memory location of 0, the sub processor 23 writes the sub processor ID and LS address of the sub processor 23 as read reservation information in an additional segment of the memory location where the read reservation is made.
  • the sub-processor 23 that performs the process of the previous stage has already been processed by controlling the reading and writing of data in each memory location in this way. Immediately after the data is written to a predetermined address on the main memory 26, another sub-processor 23 that performs the subsequent process can read the pre-processed data.
  • FIG. 2 (B) shows memory locations in the LS 24 in each sub processor 23.
  • the LS 24 in each sub-processor 23 is also configured by a memory location where a plurality of addresses can be specified.
  • an additional segment is allocated as well.
  • the additional segment shall include a busy bit.
  • the sub-processor 23 When the sub-processor 23 reads the data in the main memory 26 to the memory location of its own LS24, it sets the corresponding busy bit to 1 and reserves it. No other data can be stored in the memory location where the busy bit is 1. After reading to the memory location of the LS24, the busy bit is set to 0 and can be used for any purpose.
  • the main memory 26 connected to each information processing controller further includes a plurality of sandboxes that define areas in the main memory 26.
  • the main memory 26 is also a force sandbox that consists of multiple memory location forces.
  • a sandbox is a collection of these memory locations.
  • Each sandbox is assigned to each sub-processor 23 and can be used exclusively by the corresponding sub-processor. In other words, each sub-processor 23 can use the sandbox assigned to it, and cannot access data beyond this area.
  • a key management table as shown in FIG. 2C is used.
  • the key management table is stored in a relatively high-speed memory such as a SRAM in the information processing controller, and is associated with the DMAC 25.
  • Each entry in the key management table contains a sub-processor ID, sub-processor 'key, and key mask.
  • a process when the sub processor 23 uses the main memory 26 is as follows.
  • the sub processor 23 outputs a read or write command to the DMAC 25.
  • This command includes its own sub-processor ID and the address of the main memory 26 that is the use request destination.
  • the DMAC 25 refers to the key management table before executing this command, and checks the sub processor key of the sub processor of the use request source. Next, the DMAC 25 compares the checked sub-processor key of the use request source with the access key allocated to the memory location shown in FIG. 2A in the main memory 26 that is the use request destination, and Execute the above command only when the two keys match.
  • the key mask on the key management table shown in FIG. 2 (C) is set to the corresponding bit force SO or 1 of the sub-processor key associated with the key mask when its arbitrary bit becomes 1. Can be.
  • this subprocessor key is 1010. Normally, this subprocessor key only allows access to sandboxes with 1010 access keys. However, if the key mask associated with this subprocessor key is set to 0001 !, only the digits with the keymask bit set to 1 will receive the subprocessor key.
  • This sub-processor key 1010 enables access to a sandbox having an access key whose access key is either 1010 or 1011.
  • the sandbox exclusivity of the main memory 26 is realized.
  • only the sub-processor that performs the process in the previous stage and the sub-processor that performs the process in the subsequent stage can be used. It becomes possible to access a predetermined address in the memory 26 and protect the data.
  • Such exclusive memory control can be used as follows, for example. First, the key mask values are all zero immediately after starting the information processing device. It is assumed that the program in the main processor is executed and works in conjunction with the program in the sub processor. When processing result data output by the first sub-processor is stored in the main memory and input to the second sub-processor, the corresponding main memory area is naturally accessible from either sub-processor. There is a need. In such a case, the program in the main processor can change the value of the key mask appropriately and provide a main memory area that can be accessed by multiple sub-processors, enabling multi-stage processing by the sub-processor. To do.
  • Sub-processor key of first sub-processor 0100
  • Sub-processor of the second sub-processor 'key 0101
  • software cells are transmitted between the information processing apparatuses 1, 2, 3, and 4 for distributed processing between the information processing apparatuses 1, 2, 3, and 4. That is, the main processor 21 included in the information processing controller in a certain information processing device generates a software cell including a command, a program, and data, and transmits it to another information processing device via the network 9. Processing can be distributed.
  • FIG. 3 shows an example of the configuration of the software cell.
  • the illustrated software cell includes a transmission source ID, a transmission destination ID, a response destination ID, a cell interface, a DMA command, a program, and data.
  • the transmission source ID includes the network address of the information processing device that is the transmission source of the software cell, the information processing device ID of the information processing controller in the information processing device, and information in the information processing device.
  • the identifiers (main processor ID and sub processor ID) of the main processor 21 and each sub processor 23 included in the processing controller are included.
  • the transmission destination ID and the response destination ID include the same information about the information processing apparatus that is the transmission destination of the software cell and the information processing apparatus that is the response destination of the execution result of the software cell, respectively.
  • the cell interface is information necessary for using the software cell, and includes a global ID, necessary sub-processor information, a sandbox size, and a previous software cell ID.
  • the global ID uniquely identifies the software cell throughout the network, and is created based on the transmission source ID and the date and time (date and time) of creation or transmission of the software cell.
  • the number of sub-processors necessary for executing the software cell is set.
  • the amount of memory in the main memory 26 and the LS 24 of the sub processor 23 required for execution of the software cell is set.
  • the previous software cell ID is an identifier of the previous software cell in one group of software cells that require sequential execution of streaming data or the like.
  • the execution section of the software cell consists of DMA commands, programs, and data.
  • the DMA command includes a series of DMA commands necessary for program startup.
  • the program includes a sub processor program executed by the sub processor 23.
  • the data here is data processed by a program including the sub processor program.
  • the DMA command includes a load command, a kick command, a function program execution command, a status request command, and a status return command.
  • the load command is a command for loading information in the main memory 26 into the LS 24 in the sub processor 23, and includes a main memory address, a sub processor ID, and an LS address in addition to the load command itself.
  • the main memory address indicates an address of a predetermined area in the main memory 26 from which information is loaded.
  • the sub processor ID and LS address indicate the identifier of the sub processor 23 to which the information is loaded and the address of the LS 24.
  • the kick command is a command for starting execution of a program, and includes a sub processor ID and a program counter in addition to the kick command itself.
  • the sub-processor ID identifies the sub-processor 23 to be kicked, and the program counter gives an address for the program execution program counter.
  • the function program execution command is a command in which a certain information processing device requests execution of a function program from another information processing device (described later).
  • the information processing controller in the information processing apparatus that has received the function program execution command identifies the function program to be activated by the function program ID (described later).
  • the status request command is a command for requesting transmission of device information related to the current operation state (situation) of the information processing device indicated by the transmission destination ID to the information processing device indicated by the response destination ID.
  • the function program is a program that is powerfully classified into the function program in the software configuration diagram stored in the main memory 26 of the information processing controller shown in FIG. The function program is loaded into the main memory 26 and executed by the main processor 21.
  • the status reply command is a command in which the information processing device that has received the status request command responds to the information processing device indicated by the response destination ID included in the status request command with respect to its own device information.
  • the status return command stores device information in the data area of the execution section.
  • FIG. 4 shows the structure of the data area of the software cell when the DMA command is a status return command.
  • the information processing apparatus ID is an identifier for identifying the information processing apparatus including the information processing controller, and indicates the ID of the information processing apparatus that transmits the status reply command.
  • the information processing device ID is sent to the information processing controller in the information processing device by the main processor 21 included in the information processing device. It is generated based on the number of sub-processors 23 included.
  • the information processing apparatus type ID includes a value representing the characteristics of the information processing apparatus.
  • the features of the information processing apparatus mentioned here include, for example, a hard disk recorder (described later), a PDA (Personal Digital Assistants), a portable CD (Compact Disc) player, and the like.
  • the information processing device type ID may represent a function of the information processing device, such as video / audio recording or video / audio playback.
  • the values representing the features and functions of the information processing device are determined in advance. It is possible to grasp the features and functions of the information processing device by calling the information processing device type ID.
  • the MS (master Z slave) status indicates whether the information processing apparatus is operating as a master apparatus or a slave apparatus, as will be described later, and if this is set to 0, the master apparatus If it is set to 1, it indicates that it is operating as a slave device.
  • the main processor operating frequency represents the operating frequency of the main processor 21 in the information processing controller.
  • the main processor usage rate represents the usage rate in the main processor 21 for all programs currently running on the main processor 21.
  • the main processor usage rate is the ratio of the processing capacity in use to the total processing capacity of the target main processor.
  • MIPS Manufacturing ion Instructions Per Second
  • MIPS is a unit for evaluating processor processing capacity, is used as the unit. Or calculated based on processor usage time per unit time. The same applies to the sub processor usage rate described later.
  • the number of sub-processors is the number of sub-processors 23 included in the information processing controller. Represents.
  • the sub processor ID is an identifier for identifying each sub processor 23 in the information processing controller.
  • the sub-processor status represents the state of each sub-processor 23, and there are states such as "unused”, "reserved", and "busy". unused indicates that the sub-processor is not reserved for use as it is currently used. reserved indicates a state that is not used at present but is reserved. busy indicates that it is currently in use.
  • the sub processor usage rate represents the usage rate of the sub processor for a program currently being executed by the sub processor or reserved for execution by the sub processor. That is, the sub-processor usage rate indicates the current usage rate when the sub-processor status is 3 ⁇ 4usy, and indicates the estimated usage rate scheduled to be used later when the sub-processor status is reserved.
  • One set of sub processor ID, sub processor status, and sub processor usage rate is set for one sub processor 23, and the number of sets corresponding to the sub processor 23 in one information processing controller is set.
  • the main memory total capacity and the main memory usage represent the total capacity of the main memory 26 connected to the information processing controller and the capacity currently in use, respectively.
  • the number of external recording units represents the number of external recording units 28 connected to the information processing controller.
  • the external recording unit ID is information for uniquely identifying the external recording unit 28 connected to the information processing controller.
  • the external recording unit type ID indicates the type of the external recording unit (for example, hard disk, CD ⁇ RW, DVD player RW, memory disk, SRAM, ROM, etc.).
  • the external recording unit total capacity and the external recording unit usage amount represent the total capacity and the currently used capacity of the external recording unit 28 identified by the external recording unit ID, respectively.
  • the external recording unit ID, the external recording unit type ID, the total external recording unit capacity, and the external recording unit usage amount are set for one external recording unit 28. Only the number of sets of external recording units 28 connected to the controller is set. That is, when multiple external recording units are connected to one information processing controller !, different external recording unit IDs are assigned to the respective external recording units, and the external recording unit type ID and external recording unit are assigned. The total capacity and the external recording unit usage are also managed separately.
  • the main processor 21 included in the information processing controller in one information processing apparatus generates a software cell having the above-described configuration, and transmits it to another information processing apparatus and the information processing controller in the apparatus via the network 9. Send.
  • the source information processing device, the destination information processing device, the response destination information processing device, and the information processing controller in each device are respectively the above-mentioned source ID, transmission destination ID, and response destination ID. Identified by.
  • the main processor 21 included in the information processing controller in the information processing apparatus that has received the software cell stores the software cell in the main memory 26. Further, the transmission destination main processor 21 reads the software cell and processes the DMA command included therein.
  • the transmission destination main processor 21 first executes a load command. As a result, information is loaded from the main memory address specified by the load command to a predetermined area of the LS24 in the subprocessor specified by the subprocessor ID and LS address included in the load command.
  • the information loaded here is the sub-processor program or data included in the received software cell, or other indicated data.
  • the main processor 21 outputs the kick command to the sub processor indicated by the sub processor ID included therein, together with the program counter included in the kick command.
  • the instructed subprocessor executes the subprocessor program according to the kick command and the program counter. After the execution result is stored in the main memory 26, the main processor 21 is notified that the execution has been completed.
  • the processor that executes the software cell in the information processing controller in the information processing apparatus of the transmission destination is not limited to the sub processor 23.
  • the main processor 21 is a main memory such as a function program included in the software cell. It is also possible to specify to execute the program.
  • the transmission source information processing apparatus sends the sub-address to the transmission destination information processing apparatus.
  • the main memory program and the data processed by the main memory program are included, and the DMA command is transmitted as a load command software cell, and the main memory 26 and the main memory program are transmitted to the main memory 26.
  • the data to be processed is stored.
  • the transmission source information processing apparatus addresses the transmission destination information processing apparatus to the main processor ID, main memory 'address, main memory program for the information processing controller in the transmission destination information processing apparatus.
  • a software cell that includes an identifier such as a function program ID (to be described later) for identifying the program and a program counter and whose DMA command is a kick command or a function program execution command is transmitted to the main processor 21. Is executed.
  • the transmission source information processing apparatus transmits the sub processor program or the main memory program to the transmission destination information processing apparatus using the software cell.
  • the sub processor program is loaded into the sub processor 23 included in the information processing controller in the transmission destination information processing apparatus, and the transmission destination information processing apparatus is caused to execute the sub processor program or the main memory program. Can do.
  • the information processing controller in the information processing apparatus of the transmission destination loads the subprocessor program to the designated subprocessor. Then, the sub processor program or the main memory program included in the software cell is executed.
  • the sub processor program or the main memory program can be automatically executed by the information processing controller in the transmission destination information processing apparatus. Can do.
  • the information processing apparatus has a main memory program such as a sub-processor program or a function program in the information processing controller in its own apparatus. In this case, other information connected to the network may be used. Processor power can get them.
  • data is transferred between each sub-processor using the DMA method, and by using the sandbox described above, data can be stored in multiple stages within one information processing controller. Even if it is necessary to process to the floor, it can be executed at high speed and with high security.
  • Figure 5 shows how multiple information processing devices are operating as one virtual information processing device.
  • a plurality of information processing devices 1, 2, 3, and 4 connected to the network 9 are virtually connected as shown in the lower part of the figure. It operates as a single information processing device 7.
  • the following processing needs to be executed with the following configuration.
  • FIG. 6 shows a software configuration stored in the main memory 26 of each information processing controller. These software (programs) are recorded in the external recording unit 28 connected to the information processing controller before the information processing apparatus is turned on. Each program is classified into a control program, a function program, and a device driver according to function or feature.
  • the control program is the same for each information processing controller, and is executed by the main processor 21 of each information processing controller, and includes an MS (master Z slave) manager and a capability exchange program described later. .
  • the function program is executed by the main processor 21, and for each information processing controller, a program suitable for the information processing device, such as recording, reproduction, and material search, is provided.
  • the device driver is used for input / output (transmission / reception) of the information processing controller (information processing device), such as broadcast reception, monitor output, bit stream input / output, and network input / output. Is provided.
  • the main processor 21 of the information processing controller of the information processing apparatus loads each program belonging to the control program and each program belonging to the device driver into the main memory 26.
  • the main processor 21 first reads a program from the external recording unit 28 by causing the DC 27 to execute a read instruction, and then causes the DMA C25 to execute a write instruction. The program is written into the main memory 26.
  • each program belonging to the function program it may be configured to load only the necessary program into the memory when necessary, or just like the programs belonging to other categories, immediately after the main power is turned on. It can be configured to load each program.
  • Each program belonging to the function program does not necessarily need to be recorded in the external recording unit 28 of all information processing devices connected to the network.
  • the external recording unit 28 of one information processing device 28 Can be loaded from another information processing device by the method described above. As a result, as shown in the lower part of FIG. 5, it functions as a single virtual information processing device 7.
  • the program can be executed.
  • the function program processed by the main processor 21 may operate in cooperation with the sub processor program processed by the sub processor 23. Therefore, when there is a sub processor program that operates in cooperation with the target functional program when the main processor 21 reads the functional program from the external recording unit 28 and writes it to the main memory 26, the sub processor program is also included. It shall be written to the same main memory 26. In this case, there may be one or more sub-processor programs that operate in cooperation with each other. If there are a plurality of sub-processor programs, all the sub-processor programs that operate in cooperation are written in the main memory 26. The sub processor program written in the main memory 26 is then written in the LS 24 in the sub processor 23 and operates in cooperation with the function program processed by the main processor 21.
  • a sub processor program ID is also assigned to the sub processor program, whereby the sub processor program can be uniquely identified.
  • the sub processor program ID to be assigned is an identifier related to the function program ID of the function program with which the cooperative operation is performed, for example, the function program ID as a parent number and a branch number added at the end. It is possible that the function It may be an identifier that is not related to the program's functional program ID. If the function program and sub-processor program operate in cooperation with each other even if they are different from each other, it is necessary to store the program ID, which is the other's identifier, in the own program. Even when a function program operates in cooperation with a plurality of sub-processor programs, the function program stores the sub-processor program IDs of all the plurality of sub-processor programs.
  • an identifier that can uniquely identify a program for each program is assigned to the function program as a function program ID.
  • the function program ID is determined from the creation date and time, information processing device ID, and the like at the stage of creating the function program.
  • the main processor 21 secures an area in the main memory 26 for storing device information (information on the operation state) of the information processing device on which it operates, and stores this information in the device information table of the own device. Record as.
  • the device information referred to here is information below the information processing device ID in the data area of the status reply command shown in FIG.
  • the main processor 21 of the information processing controller of the information processing device loads a master Z slave manager (hereinafter referred to as MS manager) into the main memory 26, Execute.
  • MS manager master Z slave manager
  • connection means that the information processing apparatus is not only physically connected to the network 9 but also electrically and functionally connected to the network 9 as described above. Indicates.
  • an information processing apparatus on which it operates is referred to as an own apparatus, and another information processing apparatus is referred to as an other apparatus.
  • the apparatus also indicates the information processing apparatus.
  • the MS manager indicates that the DMA command is a status request command, A software cell whose response destination ID is the information processing apparatus and does not specify the transmission destination ID is generated, transmitted to the network to which the information processing apparatus is connected, and a timer for network connection confirmation is set.
  • the timer timeout is, for example, 10 minutes.
  • the other apparatus When another information processing apparatus is connected to the network system, the other apparatus receives the status request command software cell and issues a status request command specified by the response destination ID.
  • the DMA command is a status reply command and the software cell containing the device information of itself (other device) is transmitted as data to the information processing device.
  • the software cell of this status reply command includes at least information for identifying the other device (information processing device ID, information on the main processor, information on the sub processor, etc.) and the MS status of the other device.
  • the MS manager of the information processing device that has issued the status request command does not receive the software cell of the status return command sent from another device on the network until the timer for network connection confirmation times out. Monitor.
  • the MS status in the device information table of its own device is set to 1. This makes the device a slave device.
  • the apparatus when no information processing apparatus is connected to the network 9 in a state where no apparatus is connected to the network 9 or a master apparatus does not exist on the network 9, the apparatus It is automatically set as a master device. On the other hand, when a new information processing apparatus is connected to the network 9 in a state where the master apparatus already exists on the network 9, the apparatus is automatically set as a slave apparatus.
  • the MS manager For both the master and slave devices, the MS manager periodically sends status request commands to other devices on the network 9 to query status information. By doing so, the status of other devices is monitored. As a result, the main power source of the information processing apparatus connected to the network 9 is cut off or the information processing apparatus is disconnected from the network 9, so that the information processing apparatus can be switched from a specific other apparatus within a predetermined period set in advance for determination. If there is a change in the connection status of the network 9, such as when a response command is not sent back or when a new information processing device is connected to the network 9, the information is exchanged as described below. Notify the program.
  • the main processor 21 executes the capability exchange program.
  • the self-device is the master device
  • the capability exchange program is connected to the network 9 !, and all other information processing devices, that is, the device information of each slave device. Get information.
  • the device information of the other device is acquired by generating a software cell in which the DMA command is a status request command and transmitting it to the other device, and then the DMA command is a status return command. It is possible by receiving a software cell including device information of another device as data.
  • the capability exchange program stores the device information of all other devices (each slave device) connected to the network 9 in the same manner as the device information table of its own device which is the master device. Is reserved in the main memory 26 of its own device, and these pieces of information are recorded as a device information table of another device (slave device). That is, the device information of all information processing devices connected to the network 9 including the device itself is recorded in the main memory 26 of the master device as a device information table.
  • the capability exchange program is a self-device power S slave device
  • the information processing device ID and the MS status included in the device information are recorded in the main memory 26 of the own device.
  • the main device 26 of the slave device stores the device information of its own device in the device information table.
  • the information processing device ID and the MS status are recorded as a separate device information table by the master device and each slave device connected to the network 9 other than its own device.
  • the capability exchange program when notified from the MS manager that the information processing device is newly connected to the network 9, as described above, The device information of the device is acquired and recorded in the main memory 26 as described above.
  • MS manager and the capability exchange program are not limited to being executed by the main processor 21, but may be executed by any of the sub processors 23.
  • the MS manager and the capability exchange program are resident programs that always operate while the main power supply of the information processing apparatus is turned on.
  • the capacity exchange program shuts off the main power supply of the information processing device connected to the network 9 or disconnects the information processing device from the network 9 from the MS manager.
  • the device information table of the information processing device is deleted from the main memory 26 of the own device.
  • a new master apparatus is determined by the following method.
  • each of the information processing devices that are not disconnected from the network 9 replaces the information processing device IDs of the own device and other devices with numerical values, and replaces the information processing device ID of the own device with the information processing device of the other device If the information processing device ID of its own device is the smallest among the information processing devices that are not disconnected from the network 9, the slave device moves to the master device, sets the MS status to 0, As described above, device information is acquired from all other information processing devices (each slave device) connected to the network 9 as a master device and recorded in the main memory 26.
  • FIG. 7 shows a state where four information processing apparatuses operate as one virtual information processing apparatus 7.
  • the information processing apparatus 1 is operating as a master apparatus and the information processing apparatuses 2, 3, and 4 are operating as slave apparatuses A, B, and C, respectively.
  • the operation information is directly grasped by the master apparatus 1. If the slave device is an operation target force slave device, the operation information is transmitted to the master device 1 from the operated slave device. That is, regardless of whether the user's operation target is a difference between the master device 1 and the slave device, the operation information is always grasped by the master device 1.
  • the operation information is transmitted, for example, by a software cell whose DMA command is an operation information transmission command.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 selects a function program to be executed according to the operation information.
  • the main processor 2 1 1 included in the information processing controller 11 in the master device 1 can connect the external memory 28-1 and 28-2 of the device itself to the main memory 2 6- The ability to load a function program into 1
  • Another information processing device may send a function program to the master device 1.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 reads out the above-mentioned required specifications necessary for each function program. Also, the device information table of each information processing device is read out by referring to the device information table recorded in the main memory 26-1 by the capability exchange program in advance.
  • the device information here is information related to the information processor ID shown in FIG. 4 and below, and is information related to the main processor, sub processor, main memory, and external recording unit.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 The device information of each information processing device connected on the network 9 is sequentially compared with the required specifications necessary for executing the function program.
  • the function program requires a recording function
  • only the information processing apparatus having the recording function is specified and extracted based on the information processing apparatus type ID.
  • a slave device that can secure the conditions regarding the processing capability of the main processor or sub processor, the amount of main memory used, and the external recording unit necessary for executing the function program is specified as an execution request candidate device.
  • one execution request candidate device is specified and selected from the candidate devices.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 determines whether or not the slave device in the own device has the identified slave device. Recorded in the main memory 26-1 included in the information processing controller 11, the device information table of the slave device is updated.
  • the slave device requested to execute the function program executes the function program and updates the device information table of the own device.
  • the main processor 21 included in the information processing controller in the slave device may store the function program and the function program in the main memory 26 from the external recording unit 28 of the own device by the above method. Load the sub-processor program that operates in cooperation.
  • the required function program or the sub processor program that operates in cooperation with the function program is recorded in the external recording unit 28 of the slave device that is requested to execute the function program.
  • the system may be configured so that the processing device transmits the function program or sub-processor program to the function program execution request destination slave device.
  • the main processor 21 included in the information processing controller in the slave device that has executed the function program sends an end notification to the main processor 21 included in the information processing controller 11 in the master device 1. At the same time, it updates the device information table of its own device.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 receives the end notification and updates the device information table of the slave device that has executed the function program.
  • the main processor 21-1 included in the information processing controller 11 in the master device 1 is an information processing device that can execute the function program based on the reference result of the device information table of the own device and the other device. , You may choose yourself. In that case, the master device 1 executes the function program.
  • slave device A when the user operates slave device A, distributed processing of the entire network system including slave device A starts.
  • slave device A transmits the operation information to master device 1.
  • master device 1 To (step 81).
  • the master device 1 receives the operation information (step 72), and is recorded in the main memory 26-1 of the own device and stored in the device information tables of the own device and other devices.
  • the operating state is checked, and an information processing apparatus that can execute the function program corresponding to the received operation information is selected (step 73). In the example shown in the figure, the case where the slave device B is selected is shown.
  • master device 1 requests execution of the function program from the selected slave device B (step 74).
  • Slave device B receives the execution request (step 95), and further executes the function program requested to be executed (step 96).
  • the information processing devices 1, 2, 3, and 4 connected to each other via the network 9 are basically any ones that can process information by the information processing controllers 11, 12, 13, and 14 as described above. Such a configuration may be used.
  • FIG. 9 shows a configuration example of the information processing apparatus.
  • An example of the information processing apparatus 1 including the information processing controller 11 is a hard disk recorder. 10 and 11 show the hardware configuration and software configuration of the hard disk recorder shown in FIG. As the hardware configuration of the hard disk recorder, a hard disk is built in as the external recording unit 28-1 shown in FIG. 1, and the DVD player RZRW, CD player RZRW, Bluray— Disc (external recording unit 28-2 shown in FIG.
  • bus 31-1 connected to the bus 29-1 of the information processing controller 11 is connected to the broadcast receiver 32-1, video input unit 331, The audio input unit 34-1, video output unit 35-1, audio output unit 36-1, operation panel unit 37-1, remote control light receiving unit 38-1 and network connection unit 39-1 are connected.
  • the broadcast receiving unit 32-1, the video input unit 33-1 and the audio input unit 34-1 receive a broadcast signal or input a video signal and an audio signal from the outside of the information processing apparatus 1, respectively.
  • the data is converted to digital data in the specified format and sent to the bus 31-1 for processing by the information processing controller 11.
  • the video output unit 35-1 and audio output unit 36-1 process the video data and audio data sent from the information processing controller 11 to the bus 31-1, and convert them into digital data or analog signals.
  • the remote control light receiving unit 38-1 receives the remote control (remote operation) infrared signal from the remote control transmitter 43-1.
  • a monitor display device 41 and a speaker device 42 are connected to the video output unit 35-1 and the audio output unit 36-1 of the information processing device (hard disk recorder) 1.
  • the information processing device hard disk recorder
  • the information processing apparatus 2 including the information processing controller 12 illustrated in FIG. 9 is also a hard disk recorder, and is configured in the same manner as the information processing apparatus 1 as indicated by reference numerals in parentheses in FIG. . However, as shown in FIG. 2) A monitor display device and a speaker device are not connected to 2.
  • the software configuration of the information processing devices (node disk recorders) 1 and 2, that is, the information processing controllers 11 and 12, as shown in Fig. 11, includes an MS manager and a capability exchange program as a control program, Function programs include programs for video / audio recording, video / audio playback, material search and program recording reservation, and device drivers for broadcast reception, video output, audio output, external recording unit input / output and network input / output The program is provided.
  • FIG. 12 shows the hardware configuration of the information processing apparatus 3 configured as a PDA.
  • the external recording unit 28-5 shown in FIG. 1 is configured so that a memory card disk can be mounted, and a liquid crystal display is provided on the bus 51 connected to the bus 29-3 of the information processing controller 13.
  • the unit 52, the audio output unit 53, the camera unit 54, the audio input unit 55, the keyboard unit 56, and the network connection unit 57 are connected.
  • the information processing controller 13 that is not shown in FIG. 1 includes a main processor 21-3, sub-processors 23-7, 23-8, 23-9, DMAC (direct memory access controller) 25-3, It has DC (disk controller) 27-3 and bus 29-3, and its main processor 21-3 has LS (local 'storage) 22-3, and each sub-processor 23-7, 23-8, 23 — 9 ⁇ , LS (low-power storage) 24—7, 24—8, 24—9!
  • FIG. 13 shows a software configuration of the information processing apparatus (PDA) 3, that is, the information processing controller 13.
  • the control program includes MS manager and capability exchange program
  • the function program includes video / audio recording, video / audio playback, phone book, word processor, spreadsheet program, and Web browser.
  • device drivers programs for video output, audio output, camera video input, microphone audio input, and network input / output are provided.
  • FIG. 14 shows the hardware configuration of the portable CD player.
  • the portable CD player is configured so that a CD (Compact Disc) can be mounted as the external recording unit 28-6 shown in FIG.
  • the liquid crystal display unit 62, the audio output unit 63, the operation button unit 64, and the network connection unit 65 are connected to the node 61 connected to the bus 29-4 of 4.
  • the information processing controller 14 whose interior is omitted is the main processor 21-4, subprocessor 23-10, 23-11, 23-12, DMAC25-4, DC27-4, and bus 29-4.
  • the main processor 21-4 has LS22-4, and each of the sub processors 23-10, 23-11, 23-12 has LS24-10, 24-11, 24-12.
  • FIG. 15 shows a software configuration of the information processing apparatus (portable CD player) 4, that is, the information processing controller 14.
  • the control program includes an MS manager and an ability exchange program
  • the function program includes a program for music playback
  • the device driver includes a program for audio output, CD control, and network input / output.
  • the information processing device 2 when the information processing device 2 is newly connected to the network 9, it is executed by the main processor 2 1 2 included in the information processing controller 12 in the information processing device 2 by the method described above.
  • the information processing device 1 set as the master device collects device information of each device including the newly added information processing device 2 and updates the device information table in the main memory 26-1. .
  • the information processing device (PDA) 3 which is a slave device, makes a recording reservation including information such as recording start time, recording end time, recording target broadcast channel, and recording quality from the user.
  • the information input is received, a software cell including the recording reservation information and a recording reservation command as a DMA command is generated, and transmitted to the information processing apparatus 1 which is a master apparatus.
  • the main processor 21-1 included in the information processing controller 11 in the information processing apparatus 1 that has received the software cell in which the DMA command is a recording reservation command reads out the recording reservation command and stores it in the main memory 26-1 Information processing apparatus that can execute the recording reservation command is specified.
  • the main processor 21-1 can read the information processing device type IDs of the information processing devices 1, 2, 3, and 4 included in the device information table and execute the function program corresponding to the recording reservation command. A simple information processing apparatus is extracted.
  • the information processing devices 1 and 2 having the information processing device type ID indicating the recording function are specified as candidate devices, and the information processing devices 3 and 4 are excluded from the candidate devices.
  • the main processor 21-1 included in the information processing controller 11 in the information processing apparatus 1 which is the master apparatus refers to the apparatus information table, and the main processor or sub processor of the information processing apparatuses 1 and 2 Reads information about the processor, such as the processor's processing capacity and information about the main memory, and determines whether the information processing devices 1 and 2 meet the required specifications required to execute the function program corresponding to the recording reservation command. To do.
  • the information processing apparatuses 1 and 2 satisfy the required specifications necessary for executing the function program corresponding to the recording reservation command.
  • the main processor 21-1 refers to the device information table, reads information related to the external recording units of the information processing devices 1 and 2, and the free space of the external recording unit is used to execute the recording reservation command. Judgment is made on whether or not the required capacity is satisfied. Since the information processing apparatuses 1 and 2 are hard disk recorders, the difference between the total capacity and the used capacity of the node disks 28-1 and 28-3 corresponds to the respective free capacity.
  • the free space capacity of the hard disk 28-1 of the information processing device 1 is 10 minutes in terms of recording time, and the free space capacity of the hard disk 28-3 of the information processing device 2 is converted to 20 hours. Suppose it is time.
  • the main processor 21-1 identifies the information processing device that can secure the free space for two hours necessary for executing the recording reservation command as the execution request destination slave device.
  • the main processor 21-1 included in the information processing controller 11 in the information processing device 1 which is the master device is operated by the user.
  • the recording reservation command including the recording reservation information transmitted from the information processing apparatus 3 is transmitted to the information processing apparatus 2 to request execution of recording reservation for the broadcast program for the above two hours.
  • the main processor 2 1 2 included in the information processing controller 12 in the information processing device 2 analyzes the recording reservation command, and stores a function program necessary for recording in the hard disk 28- that is an external recording unit. 3 is loaded into the main memory 26-2, and recording is performed according to the recording reservation information. As a result, the video / audio data of the 2-hour broadcast program reserved for recording is recorded on the hard disk 28-3 of the information processing device 2.
  • the information processing system includes one or more sub-processors that can execute a program developed on its own local storage, and a main processor that instructs the sub-processor to execute the program.
  • Multiprocessor configuration According to such an information processing system with a multi-processor configuration, each processor can be linked to achieve high-load processing in a single processor, or two or more related data processing can be synchronized. Since it can be executed in a coordinated manner, it can provide high-function, high-value-added services to users.
  • Each processor shares the main memory via the system bus, and the processing data of the system is expanded on the main memory.
  • the main processor assigns data processing on the main memory to each sub processor and instructs execution of the processing.
  • the sub-processor loads a sub-processor program for executing data processing and sends it from the main processor.
  • the program is started by the instruction, and the data on the main memory is executed.
  • DRAM having a relatively large capacity and a low unit price per storage amount is used. For this reason, there are problems such as high latency between the sub processor and the main memory, and contention of access to the main memory between the sub processor.
  • each sub-processor has its own local storage, and when processing data on the main memory, the local storage is used as a so-called cache memory.
  • the cache memory By using it, it is possible to suppress contention on access to the main memory and increase in system bus traffic.
  • the cache hit rate is not high enough, the effect cannot be fully demonstrated.
  • adaptive control of the cache area to improve the probability of hitting the cache on the local storage in subsequent data processing improves the data processing performance of the sub processor and the overall system performance. It is considered necessary for this.
  • the main processor can assign the decoding processing of the compressed image to one sub-processor.
  • other processing on the decoded image data such as image quality improvement for editing the image data to the user's preferred quality and re-encoding for re-encoding to another encoding method, is performed.
  • image quality improvement for editing the image data to the user's preferred quality
  • re-encoding for re-encoding to another encoding method
  • FIG. 16 schematically shows a functional configuration of the multiprocessor configuration system when one sub-processor performs image decoding processing.
  • the system shown has the following characteristics.
  • Each sub-processor has a dedicated local storage.
  • the main memory uses a relatively low-speed memory device such as DRAM.
  • the sub-processor has a mechanism that caches a part of the main memory area in the local storage as needed.
  • signal processing is performed by dividing the entire frame into small areas called macroblocks.
  • macroblocks For example, the basic compression algorithm in MPEG, one of the standard image compression standards, is as follows. That is,
  • the overall code generation amount is controlled by controlling the DCT coefficient quantization scale.
  • FIG. 17 shows a basic operation procedure in the form of a flowchart when decoding a compressed image signal.
  • the compressed image decoding process flow includes compressed stream input (step S1), stream decoding (step S2), reference frame input (step S3), image decompression process (step S4), A series of processes of decoding result output (step S5) is performed for each frame by determining the number of blocks (step S6).
  • steps Sl, S3, and S5 data transfer occurs between the main memory and the local storage. Data transfer between memories is performed via a system node that is shared by multiple modules. As already mentioned, in order to prevent the performance of the entire decoding system from being degraded due to the deterioration of the transfer performance of the node, the subprocessor must implement a cache to improve the performance of memory-to-memory transfers.
  • step S1 In the transfer for stream input in step S1, the stream is continuously arranged in the memory and processed sequentially, so that the cache can be controlled easily. There is no cache miss.
  • step S5 In addition, in the output of the decoding result in step S5, a plurality of macroblocks do not write the output result to the same address, and the output result is not changed until the entire frame is decoded. It is not read by macroblock processing. Therefore, the decoding result can be transferred to the main memory asynchronously with the decoding processing of the succeeding macroblock, which can suppress the performance degradation. Excluded.
  • inter-frame coding is performed to transmit only the difference information between the frame to be compressed and the reference frame to improve the compression efficiency (described above). In this case, it is necessary to acquire the reference image data used to generate the difference information in the decoding process.
  • the position of the image data used for prediction in the reference frame can be obtained by using a motion vector encoded in the stream.
  • the procedure is realized by the processing procedure shown in the flow chart format in Fig. 18.
  • the reference position in the reference frame is calculated based on the motion vector (step Sl l).
  • step S12 it is determined whether or not the image data at the calculated reference position is cached in the local storage (step S12).
  • the cache area is transferred from the main memory (steps S13 and S14).
  • the cache area is adaptively changed according to the moving direction and moving speed of the motion vector from the motion vectors used for the peripheral macroblock processing.
  • FIG. 19 shows the procedure of the reference image acquisition process in this case in the form of a flowchart.
  • the reference position in the reference frame is calculated based on the motion vector (step S21).
  • the image data of the calculated reference position is cached in the local storage! (Step S22).
  • step S23 the motion vector decoded in the next macroblock is predicted based on the current macroblock and surrounding motion vectors.
  • a frame area to be cached that is, a cache area is calculated (step S24). Then, the calculated cache area is transferred from the main memory to the local storage of the sub processor (steps S25 and S26).
  • FIG. 20 illustrates an example of a processing procedure for predicting a motion vector decoded in the next macroblock based on the current macroblock and surrounding motion vectors in step S23.
  • the motion vector of the macroblock due to the outer fence is predicted.
  • the motion vectors of the past several macroblocks (2 macroblocks in the example shown in the figure) are always saved, and the next macroblock is determined from the movement speed in the X and Y coordinate directions. Calculate the motion vector used in.
  • FIG. 21 illustrates a processing procedure for obtaining a frame area to be cached, that is, a cache area, based on the motion vector in step S24.
  • the motion vector of the next block calculated in the preceding step S23 is input to the cache processing block, and the area to be cached is determined.
  • Fig. 21 (a) shows an operation example in the case where power is taken into consideration in consideration of the motion vector prediction result.
  • the area centering on the reference data used this time is cached.
  • Fig. 21 (b) shows a state where the cache area is calculated in consideration of the motion vector prediction result. In this case, there is a high possibility that the data used in the next macroblock processing is cached, so it is expected to increase the performance of the decoding processing system.
  • FIG. 22 illustrates an example of a cache area calculation method.
  • the size of the cache memory an area that is three times larger than the macro block in both the vertical and horizontal directions can be stored.
  • the coordinates of the image referenced by the macroblock being decoded are (X, Y) and
  • next macroblock is Let the coordinates of the image predicted to be referenced be (X, Y). When transferring the reference image, next next next
  • Determining which area of the frame memory is to be transferred from the main memory to the cache is equivalent to obtaining the parameters h and w in the figure, and this is expressed as (X, Y), (X, Y
  • weightH and weightW are mobility weighting factors, and optimal values are selected depending on the implementation.
  • is ⁇ '
  • is ⁇ ' saturated in the range of 1 to 1, respectively.
  • FIG. 23 shows an application example of the reference image acquisition processing procedure shown in FIG. 19 in the form of a flowchart.
  • the reference position in the reference frame is calculated based on the motion vector (step S31).
  • step S32 The motion vector decoded in the next macroblock is predicted (step S32). Based on the calculated motion vector, a frame area to be cached, that is, a cache area is calculated (step S33).
  • step S34 the transfer of the calculated cache area from the main memory to the local storage of the sub processor is started (step S34).
  • the cache area is transferred from the main memory to the low power storage of the sub processor (step S36).
  • the motion vector prediction (step S23) and cache area calculation (step S24) processes are activated only when a cache miss occurs.
  • the cache area is limited. Processing performance deteriorates due to the overhead of waiting for transfer due to a cache miss.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 各サブプロセッサが、メインプロセッサから割り当てられた処理を、システム全体の性能を低下させることなく実行する。 圧縮画像の復号処理を行なうサブプロセッサは、メインメモリからデータをキャッシュに転送する際、画像の特徴を表すパラメータを基にキャッシュエリアを計算し、キャッシュするメモリ領域を適応的に変化させることにより、後続の処理でキャッシュにヒットする確率を高くする。サブプロセッサにおける画像信号処理のパフォーマンスが向上するとともに、メモリ転送のためのシステムバスのトラフィックを低減し、システム全体の性能の低下を防止する。  

Description

明 細 書
情報処理システム及び情報処理方法、並びにコンピュータプログラム 技術分野
[0001] 本発明は、 2以上の機器間における動作を連携させる情報処理システム及び情報 処理方法、並びにコンピュータプログラムに係り、特に、複数の機器が協調動作によ り分散処理を行なうことで、仮想的に 1台の機器として動作する情報処理システム及 び情報処理方法、並びにコンピュータプログラムに関する。
[0002] さらに詳しくは、本発明は、 1以上のサブプロセッサと各サブプロセッサにプログラム の実行を命令するメインプロセッサ力 なるマルチプロセッサ構成の情報処理装置に おいて各プロセッサが好適に連携動作する情報処理システム及び情報処理方法、 並びにコンピュータプログラムに係り、特に、各サブプロセッサが、メインプロセッサか ら割り当てられた処理を、高 、パフォーマンスで且つシステム全体の性能を低下させ ることなく実行する情報処理システム及び情報処理方法、並びにコンピュータプログ ラムに関する。
背景技術
[0003] 複数のコンピュータ同士をネットワークで相互接続することにより、情報資源の共有 、ハードウェア資源の共有、複数のユーザ間でのコラボレーションが実現することが 知られている。コンピュータ間の接続メディアとして、 LAN (Local Area Network )、 WAN (Wide Area Network)、インターネットなどさまざまである。
[0004] 特に最近では、一般家庭内にもコンピュータやネットワークなどの技術が深く浸透し てきている。家庭内のパーソナルコンピュータや PDA (Personal Digital Assista nts)などの情報機器、さらにはテレビ受像機やビデオ再生装置など AV機器や、各 種の情報家電、 CE (Consumer Electronics)機器などがホームネットワーク経由 で相互接続されている。また、このようなホームネットワークは、多くの場合、ルータ経 由でインターネットを始めとする外部の広域ネットワークに相互接続されて 、る。
[0005] 上述したようにホームネットワーク上に複数の AV機器が接続されるという利用形態 が想定されるが、いままでは、 AV機器間で充分な連携がなされていない、という問題 がある。このような問題に対し、最近では、ネットワーク上の機器同士を連携させるた めに、機器の協調動作により高い演算性能を実現するというグリッドコンビユーティン グ技術に関する研究開発が進められている(例えば、特許文献 1〜5を参照のこと)。
[0006] このグリッドコンピューティング技術によれば、ネットワーク上の複数の情報処理装 置が協調動作して分散処理を行ない、ユーザからは仮想的に 1台の情報処理装置と して動作することができる。
[0007] 例えば、録画予約機能を持つ複数台の情報処理装置がネットワーク上に接続され ている場合、録画予約の連携動作を実現することができる。すなわち、複数台の情報 処理装置がホームネットワーク経由で録画予約の動作を連携させている場合、ホー ムネットワーク上では仮想的に 1台の録画機器として動作する。そして、ユーザは、い ずれかの機器のユーザ'インターフェースを用いて、ホームネットワークに接続されて V、る任意の機器を用いて録画予約を行なうことができる。
[0008] さらにこのような録画予約機能の連携により、予約時間が重複した番組 (いわゆる裏 番組)を同時録画することが可能である。同様に、記録したコンテンツの再生動作を 複数の機器間で連携させ、同時'同期的なコンテンツ再生を実現することができる。 このコンテンツ再生機能の連携により、別々の機器で記録されたコンテンツの再生を 同時、同期的に進行させることにより、コンテンツ再生においてチャンネル切り換えの 概念を導入することができる。
[0009] このような仮想的な 1台の機器によれば、 1台の機器のハードウェア資源や処理能 力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上 で連携'協調動作する他の機器における余剰の処理能力を活用することで、ユーザ の要求に応じることができ、さらに通常の 1台の機器では現実的ではないサービスを 実現することができる。
[0010] グリッドコンピューティングを実現する個々の情報処理装置は、例えばマルチプロセ ッサシステムとして構成される。この場合、情報処理装置には、 自己のローカルストレ ージ上に展開されたプログラムを実行可能な 1以上のサブプロセッサと、サブプロセ ッサにプログラムの実行を命令するメインプロセッサが装備されている。
[0011] このような情報処理装置においては、メインプロセッサは各サブプロセッサが持つ余 剰処理能力などの資源管理を行な 、、複数の機能を同時並行して実行することがで きる。例えば、テレビ番組の録画予約や、録画コンテンツの再生や、シーン認識、再 エンコード '画質改善などの録画コンテンツに関する付カ卩的な処理を、サブプロセッ サを用いて分散処理することができる。
[0012] 図 24には、グリッドコンピューティングを実現する情報処理システムの構成例を模 式的に示している。
[0013] 図示のシステムは、メインプロセッサと、 1以上のサブプロセッサからなるマルチプロ セッサ構成であり、各プロセッサは自己のローカノレストレージ上に展開されたプロダラ ムを実行することができる。メインプロセッサは、サブプロセッサのローカルストレージ 上に処理を依頼するサブプロセッサプログラムをロードし、サブプロセッサに対しその プログラムの実行を命令することができる。
[0014] また、図示のステムでは、システムバスを介して各プロセッサで共有するメインメモリ が設けられている。メインプロセッサは、このメインメモリ上に展開されている各データ の処理をサブプロセッサ毎に割り当てることにより、複数の処理を分散し、同時並行し て実行することができる。
[0015] 例えば、サブプロセッサは、メインメモリから自分のローカルストレージに転送された データを演算に使用する。サブプロセッサ内部の演算器は、演算中は自分のロー力 ルストレージにのみアクセスし、直接メインメモリをアクセスすることはしない。演算が 終了すると、ローカルストレージ内に格納された演算結果がメインメモリに書き戻され る。すなわち、サブプロセッサは、逐次メインメモリにアクセスせず、自分のローカルス トレージをいわばキャッシュメモリとして使用する。このような動作手順をとることで、以 下の問題が解決される。
[0016] (1)メインメモリを共有することによるアクセス競合の防止
(2)低速なメインメモリを使うことによるパフォーマンス低下
(3)システムバスのトラヒック増加防止
[0017] 但し、ローカルストレージにおけるキャッシュのヒット率が十分に高くないと、データ 処理中のメインメモリへのアクセス回数が増えるため、サブプロセッサにおけるデータ 処理のパフォーマンスが低下してしまう。また、メインメモリへアクセスする度にシステ ムノ スのトラフィックが増加するので、システム全体の性能も低下してしまう。
[0018] ところで、上述したようなマルチプロセッサ構成の情報処理システムで画像処理を 扱う場合に、メインプロセッサは、圧縮された画像の復号処理を、 1つのサブプロセッ サに割り当てることができる。この場合、さらに他のサブプロセッサに対し、画像デー タをユーザの好みの品質に編集する画質改善や、他の符号化方式へ再符号化する リエンコードなど、復号された画像データに対する他の処理を指示し、システム全体と して連携動作を行なうことができる。
[0019] 画像の圧縮処理では一般に、フレーム全体をマクロブロックと呼ばれる小さな領域 に分割して信号処理が行なわれる。例えば、標準的な画像圧縮規格の 1つである M PEG (Moving Picture Experts Group)における基本的な圧縮アルゴリズムは 以下の通りである。すなわち、
[0020] (1)マクロブロックを符号ィ匕単位として時間的画面相関に基づく情報圧縮を行なう。
(2)マクロブロックをサブブロックに細分ィ匕して、 DCTによる空間的情報圧縮を行なう
(3)動き補償フレーム間予測などを利用して可変長符号ィ匕を行なう。
(4) DCT係数の量子化スケール制御により、全体の符号発生量の制御を行なう。
[0021] また、画像圧縮では、一般に、圧縮対象のフレームと参照となるフレーム間の差分 情報を圧縮するフレーム間符号ィ匕が行なわれる。例えば MPEGでは、ある画素の信 号値を別の時間の画素の信号値との差分で表す「予測符号化」を用いるが、特に、 フレーム内で予測する「フレーム内予測」、この再生画面を基に予測する「フレーム間 順方向予測」と、過去再生画面と未来再生画面の双方を用いて現在画面を予測する 「フレーム間双方向予測」の組み合わせで実現される。このため、 MPEGで扱う画像 タイプは、イントラ符号化(フレーム内予測)画面のみ力もなる Iピクチャ(Intra— Pict ure)、フレーム間順方向予測により生成される Pピクチヤ(Predictive— Picture)、 フレーム間双方向予測により生成される Bピクチヤ(Bidirectionallypredictive Pict ure)の 3種類となる。
[0022] ここで、フレームメモリのサイズは HD (High Difinition)サイズの画像では 1フレ ーム当たり 3Mバイトから 6Mバイト程度にのぼる。このため、画像符号化'復号化など 画像フレームを扱うシステムでは、ビット当たりの単価が安い DRAMが使われる。そ して、 DRAMは低速であることから、通常のプロセッサはキャッシュを有するシステム をとることが多い。一般的なキャッシュの動作としては、プロセッサがアクセスしたメモリ アドレスに連続した領域のデータがキャッシュメモリに格納される。
[0023] 上述したようなマルチプロセッサ構成の情報処理システムを用いて圧縮画像の復 号処理を実現する場合、圧縮画像データ、復号結果を格納するフレームメモリなどの 大容量メモリを必要とするデータは、システム全体で共用するメインメモリにその領域 が確保される。そして、サブプロセッサは、マクロブロックの復号処理に応じてサイズ の小さなローカルストレージに必要な一部分のデータのみを転送して、復号処理を する必要がある。
[0024] 例えば、フレーム間の予測符号化が行なわれている圧縮画像を復号する場合、以 下のようにメインメモリ ローカルメモリ間でデータ転送が発生する。
[0025] (1)圧縮された差分信号の転送 (メインメモリからローカルストレージへ)
(2)予測画像データの転送 (メインメモリからローカルストレージへ)
(3)復号結果の転送(ローカルストレージからメインメモリへ)
[0026] メインメモリとローカルストレージ間を繋ぐバスは複数のモジュールが共通して使用 すること、メインメモリは低速な DRAMが用いられる場合が多いことなどから、メインメ モリーローカルストレージ間のデータ転送がシステム全体の性能を低下させる要因と なる。
[0027] この問題の解決策の 1つとしてキャッシュを実装することが考えられる。キャッシュを 実装することでメインメモリへのアクセス回数を減らし、結果として復号処理全体の性 能低下を防ぐことが可能になる。図 24に示したマルチプロセッサ構成のシステムでは 、各サブプロセッサは自己のローカルストレージをキャッシュとして利用する。
[0028] 圧縮信号の転送を行なう (1)の場合、圧縮されたストリームデータは時間軸に沿つ て逐次的に処理されるものであることから、サブプロセッサがアクセスしたメモリアドレ スに連続した領域のデータをキャッシュすると 、う通常のキャッシュ動作により、常に キャッシュに有効なデータを置 、ておくことが容易に実現できる。
[0029] また、復号結果をフレームメモリへの書き戻す(3)の場合、転送結果を用いて次の 処理を行なう必要がないため、サブプロセッサ側で転送終了待ちによるパフオーマン ス低下が発生することはな 、。
[0030] これに対し、(2)の予測画像データは、画像の特徴、つまりフレーム間での画像の 動く方向や速度などに応じて変動するため、キャッシュをミスする確率が変わってくる 。すなわち、サブプロセッサがアクセスしたメモリアドレスに連続した領域のデータをキ ャッシュすると 、う通常のキャッシュ動作では、十分なキャッシュヒット率を得ることがで きない。
[0031] このキャッシュミスによりデータ転送待ちが発生してしまい、サブプロセッサにおける 復号処理が滞るとともに、システムバスのトラフィック増加によりシステム全体の性能低 下を引き起こしてしまう。
[0032] 特許文献 1 :特開 2002— 342165号公報
特許文献 2 :特開 2002— 351850号公報
特許文献 3:特開 2002— 358289号公報
特許文献 4:特開 2002— 366533号公報
特許文献 5:特開 2002— 366534号公報
発明の開示
発明が解決しょうとする課題
[0033] 本発明の目的は、 1以上のサブプロセッサと各サブプロセッサにプログラムの実行 を命令するメインプロセッサ力もなるマルチプロセッサ構成の情報処理装置において 各プロセッサが好適に連携動作することができる、優れた情報処理システム及び情 報処理方法、並びにコンピュータプログラムを提供することにある。
[0034] 本発明のさらなる目的は、各サブプロセッサが、メインプロセッサ力 割り当てられた 処理を、高 、パフォーマンスで且つシステム全体の性能を低下させることなく実行す ることができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプ ログラムを提供することにある。
[0035] 本発明のさらなる目的は、システム全体で共有するメモリ上の各データの処理をサ ブプロセッサ毎に割り当て、システム全体の性能を低下させることなく各サブプロセッ サが割り当てられた処理を実行することができる、優れた情報処理システム及び情報 処理方法、並びにコンピュータプログラムを提供することにある。
[0036] 本発明のさらなる目的は、サブプロセッサが、システム全体で共有するメモリ上の圧 縮画像の復号処理を、高 、パフォーマンスで且つシステム全体の性能を低下させる ことなく実行することができる、優れた情報処理システム及び情報処理方法、並びに コンピュータプログラムを提供することにある。
課題を解決するための手段
[0037] 本発明は、上記課題を参酌してなされたものであり、その第 1の側面は、自己の口 一力ノレストレージ上に展開されたプログラムを実行可能な 1以上のサブプロセッサと、 前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、プロセッサが 共有するメインメモリとを備え、前記メインメモリ上に展開されているデータの処理が 割り当てられたサブプロセッサは、現在ローカルストレージ上にキャッシュされている データの特徴に基づいて、次にローカルストレージにキャッシュすべきメインメモリ上 のキャッシュエリアを適応的に決定することを特徴とする情報処理システムである。
[0038] 但し、ここで言う「システム」とは、複数の装置 (又は特定の機能を実現する機能モジ ユール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐 体内にある力否かは特に問わない。
[0039] 自己のローカルストレージ上に展開されたプログラムを実行可能な 1以上のサブプ 口セッサと、サブプロセッサにプログラムの実行を命令するメインプロセッサとを備えた マルチプロセッサ構成の情報処理システムによれば、各サブプロセッサの連携により
、 1つのプロセッサでは負荷の高い処理を分散して実現可能となり、あるいは関連す る 2以上のデータ処理を同期 '協調して実行することができるようになるので、ユーザ に対し高機能 ·高付加価値のサービスを提供することができる。
[0040] ここで、各サブプロセッサは、メインメモリ上にあるデータの処理を行なう際に、自己 のローカルストレージをいわゆるキャッシュメモリとして使用することで、メインメモリへ のアクセス競合やシステムノ スのトラフィック増加を抑止することができる。ところが、 キャッシュのヒット率が十分に高くなければ、その効果を十分に発揮することができな い。
[0041] これに対し、本発明によれば、現在キャッシュされて!/、るデータに基づ!/、て、次のキ ャッシユエリアを適応的に決定するので、後続のデータ処理でローカルストレージ上 のキャッシュにヒットする確率が高くなり、サブプロセッサ自体のデータ処理のパフォ 一マンスが向上する。また、キャッシュのヒットにより、メインメモリへのアクセスに伴うシ ステムバスのトラフィックを低減することができるので、システム全体の性能も向上する
[0042] 例えば、システム全体で共有するメインメモリ上の圧縮画像データをあるサブプロセ ッサを用いて復号処理する場合、このサブプロセッサは、現在ローカルストレージ上 にキャッシュされている画像データの特徴を示すパラメータに基づいて、次にロー力 ルストレージにキャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定する
[0043] 圧縮画像データは、一般に、圧縮対象のフレームと参照となるフレーム間の差分情 報を圧縮するフレーム間符号化処理が施されている。したがって、サブプロセッサは 、画像データの特徴を示すパラメータに基づ!/ヽて参照フレーム内で差分情報の生成 に使用した参照位置を求め、該参照位置周辺の画像データをキャッシュエリアとする ようにすればよい。ここで言う画像データの特徴を示すパラメータとして、画像データ とともに符号化される画像ブロックの動き情報を用いることができる。そして、符号化さ れた画像ブロックの動き情報に基づいて、画像ブロックの移動方向、速度を計算して 画像ブロックの動作を予測し、キャッシュエリアを求めることができる。
[0044] ここで、過去の画像ブロック数個分の動き情報を保存し、 X及び Y各座標方向の移 動速度から、次の画像ブロックで使用する動き情報を外挿により求めるようにしてもよ い。
[0045] また、常に画像ブロックの動作の予測を行ない、投機的にキャッシュの先読み処理 を実行するようにしてもよ 、。
[0046] 動きベクトルを用いて画像ブロックの移動方向、速度を計算して、キャッシュエリアを 求める場合であっても、キャッシュ領域は有限なため、キャッシュミスした際にのみ動 き予測とキャッシュエリア算出を行なう場合には、いっかキャッシュミスして転送待ちの オーバヘッドにより処理性能が低下してしまう。
[0047] そこで、キャッシュミスの有無に拘らず、常に動きベクトルの予測を行ない、投機的 にキャッシュの先読み処理を実行する。この場合、毎回動きベクトルの予測処理が必 要になるが、キャッシュミス時のデータ転送待ち処理に比べて予測処理のオーバへッ ドの方の負荷が少なければ、システム全体としての性能を向上させることができる。投 機的なキャッシュ処理によって発生するメインメモリとローカルストレージ間のデータ 転送は、マクロブロック単位で行なう画像復号処理に比べて短 、時間で処理を終え る。したがって、復号システムの全体性能を低下させることなぐ効率よく参照画像デ ータのキャッシュ処理を行なうことが実現可能になる。
[0048] また、本発明の第 2の側面は、自己のローカノレストレージ上に展開されたプログラム を実行可能な 1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を 命令するメインプロセッサと、各プロセッサが共有するメインメモリとを備えたシステム 上で、メインメモリ上のデータの処理をサブプロセッサに割り当てて実行するための処 理手順をコンピュータ可読形式で記述されたコンピュータプログラムであって、前記コ ンピュータシステムに対し、
メインメモリ力 処理対象のデータをサブプロセッサのローカルストレージに転送す る手川頁と、
サブプロセッサがローカルストレージ上のデータを処理するデータ処理手順と、 ローカルストレージ上で処理したデータの特徴に基づいて次にローカルストレージ にキャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定するキャッシュェ リア決定手順と、
キャッシュエリアが既にローカルストレージ上にキャッシュされているか否かを判定 する手順と、
キャッシュミスして 、る場合に、決定されたキャッシュエリアをメインメモリからキヤッシ ユエリアに転送する手順と、
を実行させることを特徴とするコンピュータプログラムである。
[0049] 本発明の第 2の側面に係るコンピュータ 'プログラムは、コンピュータシステム上で所 定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラム を定義したものである。換言すれば、本発明の第 2の側面に係るコンピュータプロダラ ムをコンピュータシステムにインストールすることによって、コンピュータシステム上で は協働的作用が発揮され、本発明の第 1の側面に係る情報処理システムと同様の作 用効果を得ることができる。
発明の効果
[0050] 本発明によれば、 1以上のサブプロセッサと各サブプロセッサにプログラムの実行を 命令するメインプロセッサからなるマルチプロセッサ構成の情報処理システムにお ヽ て、各サブプロセッサが、メインプロセッサ力 割り当てられた処理を、システム全体の 性能を低下させることなく実行することができる、優れた情報処理システム及び情報 処理方法、並びにコンピュータプログラムを提供することができる。
[0051] また、本発明によれば、システム全体で共有するメモリ上の各データの処理をサブ プロセッサ毎に割り当て、システム全体の性能を低下させることなく各サブプロセッサ が割り当てられた処理を実行することができる、優れた情報処理システム及び情報処 理方法、並びにコンピュータプログラムを提供することができる。
[0052] また、本発明によれば、システム全体で共有するメモリ上の圧縮画像の復号処理を 、あるサブプロセッサを用いて、システム全体の性能を低下させることなく実行するこ とができる、優れた情報処理システム及び情報処理方法、並びにコンピュータプログ ラムを提供することができる。
[0053] 本発明によれば、動きベクトルの動き方向、動き速度を用いて参照画像の特徴に合 わせてキャッシュ制御を行なう。これによつて、マクロブロックの復号処理において参 照画像データのキャッシュヒット率を高くすることにより、転送待ちをする確率が低くな り、復号システムの処理速度面での性能向上を図ることができる。
[0054] また、本発明によれば、ヒットする可能性の高 、データをキャッシュに格納する。した がって、従来のシステムと同等の性能を維持するのであれば、キャッシュサイズを小さ くすることができる。結果的にメモリ間を転送量の削減することが可能になるので、電 力効率が向上する。
[0055] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する 図面に基づくより詳細な説明によって明らかになるであろう。
図面の簡単な説明
[0056] [図 1]図 1は、本発明の一実施形態に係るネットワーク 'システムの構成を示した図で ある。
[図 2]図 2は、サブプロセッサ 23からメインメモリ 24へのアクセス手順を説明するため の図である。
[図 3]図 3は、ソフトウェアセルの構成例を示した図である。
[図 4]図 4は、 DMAコマンドがステータス返信コマンドである場合のソフトウェアセル のデータ領域を示した図である。
[図 5]図 5は、複数の情報処理装置が仮想的な 1台の情報処理装置として動作する 様子を示した図である。
[図 6]図 6は、情報処理コントローラのソフトウェア構成の一例を示した図である。
[図 7]図 7は、 4台の情報処理装置が仮想的な 1台の情報処理装置として動作する様 子を示した図である。
[図 8]図 8は、図 7に示したシステムにおける分散処理の例を示した図である。
[図 9]図 9は、各情報処理装置及びシステムの具体例を示した図である。
[図 10]図 10は、図 9中のハードディスクレコーダのハードウェア構成を示した図である
[図 11]図 11は、図 9中のハードディスクレコーダのソフトウェア構成を示した図である
[図 12]図 12は、図 9中の PDAのハードウェア構成を示した図である。
[図 13]図 13は、図 9中の PDAのソフトウェア構成を示した図である。
[図 14]図 14は、図 9中のポータブル CDプレーヤのハードウェア構成を示した図であ る。
[図 15]図 15は、図 9中のポータブル CDプレーヤのソフトウェア構成を示した図である
[図 16]図 16は、 1つのサブプロセッサが画像復号処理を行なう場合のマルチプロセッ サ構成システムの機能構成を模式的に示した図である。
圆 17]図 17は、圧縮された画像信号の復号を行なう場合の基本的な動作手順を示 したフローチャートである。
[図 18]図 18は、参照フレーム内の予測に使用した画像データの位置(キャッシュエリ ァ)を取得するための処理手順を示したフローチャートである。
[図 19]図 19は、参照フレーム内の予測に使用した画像データの位置(キャッシュエリ ァ)を取得するための処理手順を示したフローチャートである。
[図 20]図 20は、現マクロブロックと周囲の動きベクトルに基づいて、次のマクロブロッ クで復号される動きベクトルを予測する処理手順を説明するための図である。
[図 21]図 21は、動きベクトルを基にキャッシュするフレーム領域を求める処理手順を 説明するための図である。
[図 22]図 22は、キャッシュエリアの計算方法を説明するための図である。
[図 23]図 23は、参照フレーム内の予測に使用した画像データの位置(キャッシュエリ ァ)を取得するための処理手順を示したフローチャートである。
[図 24]図 24は、グリッドコンピューティングを実現する情報処理システムの構成例を 模式的に示した図である。
符号の説明
[0057] 10, 11, 12· ··情報処理装置
20· 仮想情報処理装置
30· "ローカルネットワーク
40· ··通信ネットワーク
50· · .サーノ
60· "機能情報データベース
61· "ソフトウェアデータベース
71· "情報処理装置機能データベース
72· "機能データベース
73· "連携機能データベース
発明を実施するための最良の形態
[0058] 以下、図面を参照しながら本発明の実施形態について詳解する。
[0059] A.システム構成
本発明は、 2以上の情報処理装置間における動作をホームネットワーク経由で好適 に連携させることにより、別々の場所に設定されている各機器における録画予約操作 を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために 、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技 術を活用する。
[0060] 図 1には、グリッドコンピューティングを適用して構成される、ネットワークシステムの 構成を模式的に示している。
[0061] ネットワークは、インターネットやその他の広域ネットワーク、並びに、広域ネットヮー クとはゲートウェイなどを介して接続される LAN (Local Area Network)やホーム ネットワークなどのプライベートなネットワークで構成される。ホームネットワークは、物 理的には、 lOBaseTや 100BaseTX、 Giga eatherなどの標準的なネットワークィ ンターフェースで構成することができる。また、ホームネットワーク上で他の機器を発 見する仕組みとして Upnp (Universal Plug and Play)を利用することができる。 Upnpによれば、ネットワーク接続された機器間で、 XML (extended Markup La nguage)形式で記述された定義ファイルを交換し、アドレッシング処理、ディスカバリ 処理、サービス要求処理を経て相互認証を行なう。あるいは同一セグメント内での規 定の機器情報を記述したパケットのブロードキャストすることによつても実現可能であ る。
[0062] ネットワーク上には、複数の情報処理装置が接続されている。情報処理装置の例と して、 DVDレコーダや HDレコーダのような、記録メディアを搭載し録画予約機能を 備えた AV機器、あるいはコンパクトディスクなどの記録機能を持たな ヽ再生専用の A V機器、その他の情報処理装置が挙げられる。また、情報処理装置の他の例は、 PD Aやパーソナルコンピュータなどの計算機処理システムを挙げることができる。図 1に 示す例では、ネットワーク 9を介して複数の情報処理装置 1、 2、 3、 4が接続されてい る。
[0063] A— 1.情報処理装置及び情報処理コントローラ
情報処理装置 1、 2、 3、 4は、例えば各種の AV( Audio and Visual)機器ゃポ ータブル機器である (後述)。
[0064] 図示の通り、情報処理装置 1は、コンピュータ機能部として情報処理コントローラ 11 を備える。情報処理コントローラ 11は、メインプロセッサ 21— 1、サブプロセッサ 23— 1、 23— 2、 23— 3、 DMAC (ダイレクトメモリアクセスコントローラ) 25— 1、及び DC ( ディスクコントローラ) 27— 1を備えている。情報処理コントローラ 11は、ワンチップ IC (集積回路)として構成することが望ま 、。
[0065] メインプロセッサ 21— 1は、サブプロセッサ 23— 1、 23— 2、 23— 3によるプログラム 実行 (データ処理)のスケジュール管理と、情報処理コントローラ 11 (情報処理装置 1 )の全般的な管理とを行なう。但し、メインプロセッサ 21 - 1内で管理を行なうための プログラム以外のプログラムが動作するように構成することもできる。この場合、メイン プロセッサ 21— 1はサブプロセッサとしても機能することになる。メインプロセッサ 21 — 1は、 LS (ローカルストレージ) 22— 1を備えて!/ヽる。
[0066] 1台の情報処理装置に備わるサブプロセッサ数は 1つでもよいが、望ましくは複数と する。図示の例では、複数の場合である。各サブプロセッサ 23— 1、 23- 2, 23- 3 は、メインプロセッサ 21— 1の制御下で、並列的且つ独立にプログラムを実行し、デ ータを処理する。さらに、場合によってメインプロセッサ 21— 1内のプログラムがサブ プロセッサ 23— 1、 23- 2, 23— 3内のプログラムと連携して動作することもできる。 各サブプロセッサ 23— 1、 23- 2, 23— 3も、それぞれ LS (ローカルストレージ) 24— 1、 24— 2、 24— 3を備えている。
[0067] DMAC (直接メモリアクセスコントローラ) 25— 1は、情報処理コントローラ 11に接続 された DRAM (ダイナミック RAM)などからなるメインメモリ 26— 1に格納されて!、る プログラム及びデータにプロセッサの介在なしにアクセスするものである。また、 DC ( ディスクコントローラ) 27— 1は、情報処理コントローラ 11に接続された外部記録部 28 1、 28— 2へのアクセス動作を制御する。
[0068] 外部記録部 28— 1、 28— 2は、固定ディスク(ノヽードディスク)、あるいはリムーパブ ルディスクのいずれの形態でもよい。また、リムーバブルディスクとして、 MO (磁気デ イスク)、 CD±RW、 DVD士 RWなどの光ディスク、メモリディスク、 SRAM (スタティッ ク RAM)、 ROMなど各種の記録メディアを用いることができる。 DC27— 1は、デイス クコントローラと称するが、要するに外部記録部コントローラである。図 1に示すように 、外部記録部 28を複数接続できるように、情報処理コントローラ 11を構成することが できる。 [0069] メインプロセッサ 21— 1、各サブプロセッサ 23— 1、 23— 2、 23— 3、 DMAC25— 1 、及び DC27— 1は、バス 29— 1によって相互接続されている。
[0070] 情報処理コントローラ 11には、当該情報処理コントローラ 11を搭載する情報処理 装置 1をネットワーク全体を通して一意に識別できる識別子が、情報処理装置 IDとし て割り当てられている。また、メインプロセッサ 21— 1及び各サブプロセッサ 23— 1、 2 3— 2、 23— 3に対しても同様に、それぞれを特定できる識別子力 メインプロセッサ I D及びサブプロセッサ IDとして割り当てられる。
[0071] 他の情報処理装置 2、 3、 4も同様に構成されるので、ここでは説明を省略する。ここ で、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同 じ働きをするものとする。また、以下の説明において枝番号が省略されている場合に は、枝番号の違いによる差異を生じないものとする。
[0072] A— 2.各サブプロセッサからメインメモリへのアクセス
上述したように、 1つの情報処理コントローラ内の各サブプロセッサ 23は、独立にプ ログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ 26内の 同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整 合を生じ得る。そこで、サブプロセッサ 23からメインメモリ 26へのアクセスは、以下の ような手順によって行なう。
[0073] 図 2 (A)には、メインメモリ 26内のロケーションを示している。同図に示すように、メイ ンメモリ 26は複数のアドレスを指定できるメモリロケーションによって構成され、各メモ リロケーションに対してデータの状態を示す情報を格納するための追加セグメントが 割り振られる。追加セグメントは、 FZEビット、サブプロセッサ ID及び LSアドレス(口 一カル'ストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述 のアクセス 'キーも割り振られる。 FZEビットは、以下のように定義される。
[0074] FZEビット =0は、サブプロセッサ 23によって読み出されている処理中のデータ、 又は空き状態であるため最新データではな!、無効データであり、読み出し不可であ ることを示す。また、 FZEビット =0は、当該メモリ'ロケーションにデータ書き込み可 能であることを示し、書き込み後に 1に設定される。
[0075] FZEビット = 1は、当該メモリロケーションのデータがサブプロセッサ 23によって読 み出されておらず、未処理の最新データであることを示す。当該メモリ'ロケーション のデータは読み出し可能であり、サブプロセッサ 23によって読み出された後に 0に設 定される。また、 FZEビット = 1は、当該メモリ'ロケーションがデータ書き込み不可で あることを示す。
[0076] さらに、上記 FZEビット =0 (読み出し不可 Z書き込み可)の状態において、当該メ モリ ·ロケーションについて読み出し予約を設定することは可能である。 FZEビット =
0のメモリロケーションに対して読み出し予約を行なう場合には、サブプロセッサ 23は 、読み出し予約を行なうメモリロケーションの追加セグメントに、読み出し予約情報とし て当該サブプロセッサ 23のサブプロセッサ ID及び LSアドレスを書き込む。
[0077] その後、データ書き込み側のサブプロセッサ 23により、読み出し予約されたメモリ · ロケーションにデータが書き込まれ、 FZEビット = 1 (読み出し可 Z書き込み不可)に 設定されたとき、あら力じめ読み出し予約情報として追加セグメントに書き込まれたサ ブプロセッサ ID及び LSアドレスに読み出される。
[0078] 複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このよ うに各メモリロケーションのデータの読み出し Z書き込みを制御することにより、前段 階の処理を行なうサブプロセッサ 23が処理済みのデータをメインメモリ 26上の所定 のアドレスに書き込んだ後に即座に、後段階の処理を行なう別のサブプロセッサ 23 が前処理後のデータを読み出すことが可能となる。
[0079] また、図 2 (B)には、各サブプロセッサ 23内の LS24におけるメモリロケーションを示 している。同図に示すように、各サブプロセッサ 23内の LS24も、複数のアドレスを指 定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同 様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされ る。
[0080] サブプロセッサ 23がメインメモリ 26内のデータを自身の LS24のメモリロケーション に読み出すときには、対応するビジービットを 1に設定して予約する。ビジービットが 1 であるメモリロケーションには、他のデータは格納することができない。 LS24のメモリ ロケーションに読み出し後、ビジービットは 0になり、任意の目的に使用できるようにな る。 [0081] 02 (A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ 26 には、メインメモリ 26内の領域を画定する複数のサンドボックスが含まれる。メインメモ リ 26は、複数のメモリロケーション力も構成される力 サンドボックスは、これらのメモリ ロケーションの集合である。各サンドボックスは、サブプロセッサ 23毎に割り当てられ 、該当するサブプロセッサが排他的に使用することができる。すなわち、各々のサブ プロセッサ 23は、 自身に割り当てられたサンドボックスを使用できる力 この領域を超 えてデータのアクセスを行なうことはできな 、。
[0082] さらに、メインメモリ 26の排他的な制御を実現するために、図 2 (C)に示すようなキ 一管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内の SR AMのような比較的高速のメモリに格納され、 DMAC25と関連付けられる。キー管理 テーブル内の各エントリには、サブプロセッサ ID、サブプロセッサ 'キー及びキーマス クが含まれる。
[0083] サブプロセッサ 23がメインメモリ 26を使用する際のプロセスは、以下の通りである。
まず、サブプロセッサ 23は DMAC25に、読み出し又は書き込みのコマンドを出力す る。このコマンドには、自身のサブプロセッサ IDと、使用要求先であるメインメモリ 26 のアドレスが含まれる。
[0084] DMAC25は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求 元のサブプロセッサのサブプロセッサキーを調べる。次に、 DMAC25は、調べた使 用要求元のサブプロセッサキーと、使用要求先であるメインメモリ 26内の図 2 (A)に 示したメモリロケーションに割り振られたアクセスキーとを比較して、 2つのキーが一致 した場合にのみ、上記のコマンドを実行する。
[0085] 図 2 (C)に示したキー管理テーブル上のキーマスクは、その任意のビットが 1になる ことによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビット 力 SO又は 1になることができる。
[0086] 例えば、サブプロセッサキーが 1010であるとする。通常、このサブプロセッサキー によって 1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。 し力し、このサブプロセッサキーと関連付けられたキーマスクが 0001に設定されて!ヽ る場合には、キーマスクのビットが 1に設定された桁のみにつき、サブプロセッサキー とアクセスキーとの一致判定がマスクされ、このサブプロセッサキー 1010によってァク セスキーが 1010又は 1011のいずれかであるアクセスキーを持つサンドボックスへの アクセスが可能となる。
[0087] 以上のようにして、メインメモリ 26のサンドボックスの排他性が実現される。すなわち 、 1つの情報処理コントローラ内に配置された複数のサブプロセッサによってデータを 多段階に処理する必要がある場合、前段階の処理を行なうサブプロセッサと、後段 階の処理を行なうサブプロセッサのみ力 メインメモリ 26の所定アドレスにアクセスで きるようになり、データを保護することができる。
[0088] このようなメモリの排他制御は、例えば以下のように使用することができる。まず、情 報処理装置の起動直後においては、キーマスクの値はすべてゼロである。メインプロ セッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するもの とする。第 1のサブプロセッサにより出力された処理結果データをー且メインメモリに 格納し、第 2のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当 然どちらのサブプロセッサからもアクセス可能である必要がある。このような場合に、メ インプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセ ッサカもアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段 階的の処理を可能にする。
[0089] より具体的には、他の情報処理装置からのデータ→第 1のサブプロセッサによる処 理→第 1のメインメモリ領域→第 2のサブプロセッサによる処理→第 2のメインメモリ領 域、という手順で多段階処理が行なわれるときには、以下のような設定のままでは、第 2のサブプロセッサは第 1のメインメモリ領域にアクセスすることができない。
[0090] 第 1のサブプロセッサのサブプロセッサ ·キー: 0100、
第 1のメインメモリ領域のアクセス 'キー :0100、
第 2のサブプロセッサのサブプロセッサ 'キー: 0101、
第 2のメインメモリ領域のアクセス.キー :0101
[0091] そこで、第 2のサブプロセッサのキーマスクを 0001にすることにより、第 2のサブプロ セッサによる第 1のメインメモリ領域へのアクセスを可能にすることができる。
[0092] A- 3.ソフトゥ アセルの生成及び構成 図 1のネットワークシステムでは、情報処理装置 1、 2、 3、 4間での分散処理のため に、情報処理装置 1、 2、 3、 4間でソフトウェアセルが伝送される。すなわち、ある情報 処理装置内の情報処理コントローラに含まれるメインプロセッサ 21は、コマンド、プロ グラム及びデータを含むソフトウェアセルを生成し、ネットワーク 9を介して他の情報処 理装置に送信することによって、処理を分散することができる。
[0093] 図 3には、ソフトウェアセルの構成の一例を示している。図示のソフトウェアセルは、 送信元 ID、送信先 ID、応答先 ID、セルインターフェース、 DMAコマンド、プログラム 、及びデータによって構成される。
[0094] 送信元 IDには、ソフトウェアセルの送信元である情報処理装置のネットワークァドレ ス及び当該情報処理装置内の情報処理コントローラの情報処理装置 ID、さらに、当 該情報処理装置内の情報処理コントローラが備えるメインプロセッサ 21及び各サブ プロセッサ 23の識別子 (メインプロセッサ ID及びサブプロセッサ ID)が含まれる。
[0095] 送信先 ID及び応答先 IDには、ソフトウエアセルの送信先である情報処理装置、及 びソフトウェアセルの実行結果の応答先である情報処理装置についての同じ情報が それぞれ含まれる。
[0096] セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバル I D、必要なサブプロセッサの情報、サンドボックスサイズ、及び前回のソフトウェアセル IDで構成される。
[0097] グローバル IDは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別 できるものであり、送信元 IDと、ソフトウェアセルの作成又は送信の日時(日付及び時 刻)に基づいて作成される。
[0098] 必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセ ッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要 なメインメモリ 26内及びサブプロセッサ 23の LS24内のメモリ量が設定される。
[0099] 前回のソフトウェアセル IDは、ストリーミングデータなどのシーケンシャルな実行を要 求する 1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
[0100] ソフトウェアセルの実行セクションは、 DMAコマンド、プログラム及びデータで構成 される。 DMAコマンドには、プログラムの起動に必要な一連の DMAコマンドが含ま れ、プログラムには、サブプロセッサ 23によって実行されるサブプロセッサプログラム が含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによつ て処理されるデータである。
[0101] さらに、 DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コ マンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
[0102] ロードコマンドは、メインメモリ 26内の情報をサブプロセッサ 23内の LS24にロード するコマンドであり、ロードコマンド自体の他に、メインメモリアドレス、サブプロセッサ I D及び LSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ 2 6内の所定領域のアドレスを示す。サブプロセッサ ID及び LSアドレスは、情報のロー ド先であるサブプロセッサ 23の識別子及び LS24のアドレスを示す。
[0103] キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体の 他に、サブプロセッサ ID及びプログラムカウンタを含む。サブプロセッサ IDは、キック 対象のサブプロセッサ 23を識別し、プログラムカウンタは、プログラム実行用プロダラ ムカウンタのためのアドレスを与える。
[0104] 機能プログラム実行コマンドは、ある情報処理装置が他の情報処理装置に対して、 機能プログラムの実行を要求するコマンドである(後述)。機能プログラム実行コマンド を受信した情報処理装置内の情報処理コントローラは、機能プログラム ID (後述)に よって、起動すべき機能プログラムを識別する。
[0105] ステータス要求コマンドは、送信先 IDで示される情報処理装置の現在の動作状態( 状況)に関する装置情報を、応答先 IDで示される情報処理装置宛てに送信要求す るコマンドである。機能プログラムについては後述する力 図 6に示す情報処理コント ローラのメインメモリ 26が記憶するソフトウェアの構成図において機能プログラムに力 テゴライズされるプログラムである。機能プログラムは、メインメモリ 26にロードされ、メ インプロセッサ 21により実行される。
[0106] ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装 置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先 IDで示され る情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクショ ンのデータ領域に装置情報を格納する。 [0107] 図 4には、 DMAコマンドがステータス返信コマンドである場合におけるソフトウェア セルのデータ領域の構造を示して 、る。
[0108] 情報処理装置 IDは、情報処理コントローラを備える情報処理装置を識別するため の識別子であり、ステータス返信コマンドを送信する情報処理装置の IDを示す。情 報処理装置 IDは、電源投入時に、その情報処理装置内の情報処理コントローラに 含まれるメインプロセッサ 21によって、電源投入時の日時、情報処理装置のネットヮ ークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ 23の数などに基づいて生成される。
[0109] 情報処理装置種別 IDには、当該情報処理装置の特徴を表す値が含まれる。ここで 言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ (後述)、 PDA (Pers onal Digital Assistants)、ポータブノレ CD (Compact Disc)プレーヤなどである 。また、情報処理装置種別 IDは、映像音声記録、映像音声再生など、情報処理装置 が持つ機能を表すものであってもよ ヽ、情報処理装置の特徴や機能を表す値はあら 力じめ決められているものとし、情報処理装置種別 IDを呼び出すことにより当該情報 処理装置の特徴や機能を把握することが可能である。
[0110] MS (マスター Zスレーブ)ステータスは、後述するように情報処理装置がマスター 装置又はスレーブ装置のいずれで動作しているかを表すもので、これが 0に設定され て 、る場合にはマスター装置として動作して 、ることを示し、 1に設定されて 、る場合 にはスレーブ装置として動作して 、ることを示す。
[0111] メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ 21の動 作周波数を表す。メインプロセッサ使用率は、メインプロセッサ 21で現在動作してい るすべてのプログラムについての、メインプロセッサ 21での使用率を表す。メインプロ セッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の 比率を表した値で、例えばプロセッサ処理能力評価のための単位である MIPS [Mill ionlnstructions Per Second]を単位として算出され、又は単位時間当りのプロセ ッサ使用時間に基づ 、て算出される。後述のサブプロセッサ使用率にっ 、ても同様 である。
[0112] サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ 23の数 を表す。サブプロセッサ IDは、当該の情報処理コントローラ内の各サブプロセッサ 23 を識別するための識別子である。
[0113] サブプロセッサステータスは、各サブプロセッサ 23の状態を表すものであり、 unuse d、 reserved, busyなどの状態がある。 unusedは、当該サブプロセッサが現在使用 されてなぐ使用の予約もされていないことを示す。 reservedは、現在は使用されて いないが、予約されている状態を示す。 busyは、現在使用中であることを示す。
[0114] サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該の サブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサ での使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータス 力 ¾usyである場合には、現在の使用率を示し、サブプロセッサステータスが reserve dである場合には、後に使用される予定の推定使用率を示す。
[0115] サブプロセッサ ID、サブプロセッサステータス及びサブプロセッサ使用率は、 1つの サブプロセッサ 23に対して一組設定され、 1つの情報処理コントローラ内のサブプロ セッサ 23に対応する組数が設定される。
[0116] メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントロー ラに接続されて ヽるメインメモリ 26の総容量及び現在使用中の容量を表す。
[0117] 外部記録部数は、当該の情報処理コントローラに接続されている外部記録部 28の 数を表す。外部記録部 IDは、当該の情報処理コントローラに接続されている外部記 録部 28を一意的に識別する情報である。外部記録部種別 IDは、当該の外部記録部 の種類(例えば、ハードディスク、 CD±RW、 DVD士 RW、メモリディスク、 SRAM、 ROMなど)を表す。
[0118] 外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部 IDによって識 別される外部記録部 28の総容量及び現在使用中の容量を表す。
[0119] 外部記録部 ID、外部記録部種別 ID、外部記録部総容量及び外部記録部使用量 は、 1つの外部記録部 28に対して 1組設定されるものであり、当該情報処理コント口 ーラに接続されている外部記録部 28の数の組数だけ設定される。すなわち、 1つの 情報処理コントローラに複数の外部記録部が接続されて!、る場合、それぞれの外部 記録部には異なる外部記録部 IDが割り当てられ、外部記録部種別 ID、外部記録部 総容量及び外部記録部使用量も別々に管理される。
[0120] A - 4ソフトウエアセルの実行
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ 21は、上 述したような構成のソフトウェアセルを生成し、ネットワーク 9を介して他の情報処理装 置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送 信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コント口 ーラは、それぞれ、上記の送信元 ID、送信先 ID及び応答先 IDによって識別される。
[0121] ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメイ ンプロセッサ 21は、そのソフトウェアセルをメインメモリ 26に格納する。さらに、送信先 のメインプロセッサ 21は、ソフトウェアセルを読み出し、それに含まれる DMAコマンド を処理する。
[0122] 具体的には、送信先のメインプロセッサ 21は、まず、ロードコマンドを実行する。こ れによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含 まれるサブプロセッサ ID及び LSアドレスで特定されるサブプロセッサ内の LS24の所 定領域に情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに 含まれるサブプロセッサプログラム又はデータ、ある 、はその他の指示されたデータ である。
[0123] 次に、メインプロセッサ 21は、キックコマンドを、これに含まれるサブプロセッサ IDで 指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタとと もに出力する。
[0124] 指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、 サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ 26に格納した 後、実行を完了したことをメインプロセッサ 21に通知する。
[0125] なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセル を実行するプロセッサはサブプロセッサ 23に限定されるものではなぐメインプロセッ サ 21がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実 行するように指定することも可能である。
[0126] この場合には、送信元の情報処理装置は、送信先の情報処理装置宛てに、サブプ 口セッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログ ラムによって処理されるデータを含み、 DMAコマンドがロードコマンドであるソフトゥ エアセルを送信し、メインメモリ 26にメインメモリ用プログラム及びそれによつて処理さ れるデータを記憶させる。
[0127] 次に、送信元の情報処理装置は、送信先の情報処理装置宛てに、送信先の情報 処理装置内の情報処理コントローラについてのメインプロセッサ ID、メインメモリ 'アド レス、メインメモリ用プログラムを識別するための後述の機能プログラム IDなどの識別 子、及びプログラムカウンタを含み、 DMAコマンドがキックコマンド又は機能プロダラ ム実行コマンドであるソフトウェアセルを送信し、メインプロセッサ 21に当該メインメモ リ用プログラムを実行させる。
[0128] 以上のように、本実施形態に係るネットワークシステムでは、送信元の情報処理装 置は、サブプロセッサプログラム又はメインメモリ用プログラムをソフトウェアセルによつ て送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信 先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ 23にロードさ せ、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報 処理装置に実行させることができる。
[0129] 送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセル に含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッ サプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに 含まれるサブプロセッサプログラム又はメインメモリ用プログラムを実行させる。
[0130] したがって、ユーザが送信先の情報処理装置を操作しなくても、当該サブプロセッ サプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置内の情報処 理コントローラにおいて自動的に実行させることができる。
[0131] このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッ サプログラム又は機能プログラムなどのメインメモリ用プログラムを備えて 、な 、場合 には、ネットワークに接続された他の情報処理装置力 それらを取得することができる 。さらに、各サブプロセッサ間では DMA方式によりデータ転送を行ない、また上述し たサンドボックスを使用することにより、 1つの情報処理コントローラ内でデータを多段 階に処理する必要がある場合でも、高速且つ高セキュリティに処理を実行することが できる。
[0132] A— 5.ネットワークシステムとしての分散処理
図 5には、複数の情報処理装置が仮想的な 1台の情報処理装置として動作してい る様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に 示すように、ネットワーク 9に接続されている複数の情報処理装置 1、 2、 3、 4は、同図 の下段に示すように、仮想的な 1台の情報処理装置 7として動作する。但し、このよう な仮想的な動作を実現するためには、以下のような構成によって、以下のような処理 が実行される必要がある。
[0133] A-6.システムのソフトウェア構成 プログラムのロード
図 6には、個々の情報処理コントローラのメインメモリ 26が記憶するソフトウェアの構 成を示している。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入さ れる前に、当該の情報処理コントローラに接続される外部記録部 28に記録されて 、 るものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム 及びデバイスドライバに分類される。
[0134] 制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コント口 ーラのメインプロセッサ 21が実行するもので、後述の MS (マスター Zスレーブ)マネ ージャ及び能力交換プログラムを含む。
[0135] 機能プログラムは、メインプロセッサ 21が実行するもので、記録用、再生用、素材検 索用など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
[0136] デバイスドライバは、情報処理コントローラ (情報処理装置)の入出力(送受信)用で 、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理 コントローラ毎に情報処理装置に応じたものが備えられる。
[0137] ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク 9に接続さ れた状態で、情報処理装置に主電源が投入され、情報処理装置が電気的,機能的 にもネットワーク 9に接続されると、その情報処理装置の情報処理コントローラのメイン プロセッサ 21は、制御プログラムに属する各プログラム、及びデバイスドライバに属す る各プログラムを、メインメモリ 26にロードする。 [0138] プログラムのロード手順としては、メインプロセッサ 21は、まず、 DC27に読み出し命 令を実行させることによって、外部記録部 28からプログラムを読み出し、次に、 DMA C25に書き込み命令を実行させることによって、そのプログラムをメインメモリ 26に書 き込む。
[0139] 機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだ けをメモリにロードするように構成してもよぐあるいは他のカテゴリに属するプログラム と同様に、主電源投入直後に各プログラムをロードするように構成してもよ ヽ。
[0140] 機能プログラムに属する各プログラムは、ネットワークに接続されたすベての情報処 理装置の外部記録部 28に記録されている必要はなぐいずれ力 1つの情報処理装 置の外部記録部 28に記録されていれば、前述の方法によって他の情報処理装置か らロードすることができるので、結果的に図 5の下段に示すように、仮想的な 1台の情 報処理装置 7として機能プログラムを実行することができる。
[0141] ここで、前述したようにメインプロセッサ 21によって処理される機能プログラムは、サ ブプロセッサ 23によって処理されるサブプロセッサプログラムと連携動作する場合が ある。そこで、メインプロセッサ 21が外部記録部 28から機能プログラムを読み出し、メ インメモリ 26に書き込む際に対象となる機能プログラムと連携動作するサブプロセッ サプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメイン メモリ 26に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは 1個である場合もあるし、複数個であることもあり得る。複数個である場合には、すべ ての連携動作するサブプロセッサプログラムをメインメモリ 26に書き込むことになる。メ インメモリ 26に書き込まれたサブプロセッサプログラムは、その後、サブプロセッサ 23 内の LS24に書き込まれ、メインプロセッサ 21によって処理される機能プログラムと連 携動作する。
[0142] そして、サブプロセッサプログラムにもサブプロセッサプログラム IDが割り当てられ、 これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブ プロセッサプログラム IDは、連携動作する相手となる機能プログラムの機能プロダラ ム IDと関連性のある識別子、例えば機能プログラム IDを親番号とした上で最後尾に 枝番号を付加させたものなどであることもあり得るし、連携動作する相手となる機能プ ログラムの機能プログラム IDとは関連性のな 、識別子であってもよ 、。 V、ずれにして も、機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相 手の識別子であるプログラム IDを自プログラム内に互いに記憶しておく必要がある。 機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該 機能プログラムは複数個あるすベてのサブプロセッサプログラムのサブプロセッサプ ログラム IDを記憶しておくことになる。
[0143] 図 3のソフトウェアセルに示したように、機能プログラムには、プログラム毎にプロダラ ムを一意的に識別できる識別子が機能プログラム IDとして割り当てられる。機能プロ グラム IDは、機能プログラムの作成の段階で、作成日時や情報処理装置 IDなどから 決定される。
[0144] メインプロセッサ 21は、 自身が動作する情報処理装置の装置情報 (動作状態に関 する情報)を格納するための領域をメインメモリ 26に確保し、当該情報を自装置の装 置情報テーブルとして記録する。ここで言う装置情報は、図 4に示したステータス返信 コマンドのデータ領域における情報処理装置 ID以下の各情報である。
[0145] A- 7.システムにおけるマスター スレーブの決定
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情 報処理装置の情報処理コントローラのメインプロセッサ 21は、マスター Zスレーブマ ネージャ(以下、 MSマネージャ)をメインメモリ 26にロードし、実行する。
[0146] MSマネージャは、自身が動作する情報処理装置がネットワーク 9に接続されてい ることを検知すると、同じネットワーク 9に接続されている他の情報処理装置の存在を 確認する。ここでの「接続」又は「存在」は、上述したように、情報処理装置が物理的 にネットワーク 9に接続されているだけでなぐ電気的 ·機能的にもネットワーク 9に接 続されていることを示す。
[0147] また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称す る。当該装置も、当該情報処理装置を示すものとする。
[0148] MSマネージャが同じネットワーク 9に接続されている他の情報処理装置の存在を 確認する方法について以下に説明する。
[0149] MSマネージャは、 DMAコマンドがステータス要求コマンドであり、送信元 ID及び 応答先 IDが当該情報処理装置で、送信先 IDを特定しないソフトウェアセルを生成し 、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用 のタイマーを設定する。タイマーのタイムアウト時間は、例えば 10分である。
[0150] 当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装 置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先 IDで特 定されるステータス要求コマンドを発行した情報処理装置に対して、 DMAコマンドが ステータス返信コマンドで、且つデータとして自身 (その他装置)の装置情報を含むソ フトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少な くとも当該他装置を特定する情報 (情報処理装置 ID、メインプロセッサに関する情報 、サブプロセッサに関する情報など)、及び当該他装置の MSステータスが含まれる。
[0151] ステータス要求コマンドを発行した情報処理装置の MSマネージャは、上記ネットヮ ーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から 送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、 MSステータス =0 (マスター装置)を示すステータス返信コマンドが受信された場合 には、自装置の装置情報テーブルにおける MSステータスを 1に設定する。これによ つて、当該装置はスレーブ装置となる。
[0152] 一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステー タス返信コマンドがまったく受信されな力つた場合、又は MSステータス =0 (マスター 装置)を示すステータス返信コマンドが受信されな力つた場合には、自装置の装置情 報テーブルにおける MSステータスを 0に設定する。これによつて、当該装置はマスタ 一装置となる。
[0153] すなわち、いずれの装置もネットワーク 9に接続されていない状態、又はネットヮー ク 9上にマスター装置が存在しない状態において、新たな情報処理装置がネットヮー ク 9に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネッ トワーク 9上に既にマスター装置が存在する状態において、新たな情報処理装置が ネットワーク 9に接続されると、当該装置は自動的にスレーブ装置として設定される。
[0154] マスター装置及びスレーブ装置のいずれについても、 MSマネージャは、定期的に ステータス要求コマンドをネットワーク 9上の他装置に送信してステータス情報を照会 することにより、他装置の状況を監視する。この結果、ネットワーク 9に接続されている 情報処理装置の主電源が遮断され、又はネットワーク 9から情報処理装置が切り離さ れることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステ 一タス返信コマンドが返信されな力つた場合や、ネットワーク 9に新たな情報処理装 置が接続された場合など、ネットワーク 9の接続状態に変化があった場合には、その 情報を後述の能力交換プログラムに通知する。
[0155] A— 8.マスター装置及びスレーブ装置における装置情報の取得
メインプロセッサ 21は、 MSマネージャから、ネットワーク 9に接続された他の情報処 理装置の照会及び自装置の MSステータスの設定完了の通知を受けると、能力交換 プログラムを実行する。
[0156] 能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク 9に接 続されて!、る他のすべての情報処理装置にっ 、ての装置情報、すなわち各スレーブ 装置の装置情報を取得する。
[0157] 他装置の装置情報の取得は、上述したように、 DMAコマンドがステータス要求コマ ンドであるソフトウェアセルを生成して他装置に送信し、その後、 DMAコマンドがステ 一タス返信コマンドで、且つデータとして他装置の装置情報を含むソフトウェアセルを 他装置力 受信することによって可能である。
[0158] 能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、 ネットワーク 9に接続されて 、る他のすべての装置(各スレーブ装置)につ 、ての装置 情報を格納するための領域を自装置のメインメモリ 26に確保し、これら情報を他装置 (スレーブ装置)の装置情報テーブルとして記録する。すなわち、マスター装置のメイ ンメモリ 26には、自装置を含むネットワーク 9に接続されて 、るすべての情報処理装 置の装置情報が装置情報テーブルとして記録される。
[0159] 一方、能力交換プログラムは、自装置力 Sスレーブ装置である場合には、ネットワーク 9に接続されている他のすべての装置についての装置情報、すなわちマスター装置 及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる 情報処理装置 ID及び MSステータスを、自装置のメインメモリ 26に記録する。すなわ ち、スレーブ装置のメインメモリ 26には、自装置の装置情報が、装置情報テーブルと して記録されるとともに、自装置以外のネットワーク 9に接続されているマスター装置 及び各スレーブ装置にっ 、ての情報処理装置 ID及び MSステータスが、別の装置 情報テーブルとして記録される。
[0160] また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは 、上記のように MSマネージャから、新たにネットワーク 9に情報処理装置が接続され たことが通知されたときには、その情報処理装置の装置情報を取得し、上述したよう にメインメモリ 26に記録する。
[0161] なお、 MSマネージャ及び能力交換プログラムは、メインプロセッサ 21で実行される ことに限らず、いずれかのサブプロセッサ 23で実行されてもよい。また、 MSマネージ ャ及び能力交換プログラムは、情報処理装置の主電源が投入されて 、る間は常時動 作する常駐プログラムであることが望まし 、。
[0162] A— 9.情 置がネットワークから切断された場合
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記 のように MSマネージャから、ネットワーク 9に接続されている情報処理装置の主電源 が遮断され、又はネットワーク 9から情報処理装置が切り離されたことが通知されたと きには、その情報処理装置の装置情報テーブルを自装置のメインメモリ 26から削除 する。
[0163] さらに、このようにネットワーク 9から切断された情報処理装置がマスター装置である 場合には、以下のような方法によって、新たにマスター装置が決定される。
[0164] 例えば、ネットワーク 9から切断されていない情報処理装置は、それぞれ、自装置及 び他装置の情報処理装置 IDを数値に置き換え、自装置の情報処理装置 IDを他装 置の情報処理装置 IDと比較し、自装置の情報処理装置 IDがネットワーク 9から切断 されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装 置に移行し、 MSステータスを 0に設定し、マスター装置として、上述したように、ネット ワーク 9に接続されている他のすべての情報処理装置 (各スレーブ装置)から装置情 報を取得して、メインメモリ 26に記録する。
[0165] A— 10.装置情報に某づく分散処理.
図 5の下段に示したようにネットワーク 9に接続されている複数の情報処理装置 1、 2 、 3、 4を仮想的な 1台の情報処理装置 7として動作させるためには、マスター装置が ユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
[0166] 図 7には、 4台の情報処理装置が仮想的な 1台の情報処理装置 7として動作する様 子を示している。図示の例では、情報処理装置 1がマスター装置、情報処理装置 2、 3、 4がスレーブ装置 A、 B、 Cとしてそれぞれ動作しているものとする。
[0167] ユーザがネットワーク 9に接続されている情報処理装置を操作した場合、操作対象 がマスター装置 1であれば、その操作情報はマスター装置 1において直接把握される 。また、操作対象力スレーブ装置であれば、その操作情報は操作されたスレーブ装 置カゝらマスター装置 1に送信される。すなわち、ユーザの操作対象がマスター装置 1 とスレーブ装置の 、ずれであるかにかかわらず、その操作情報は常にマスター装置 1 において把握される。操作情報の送信は、例えば、 DMAコマンドが操作情報送信コ マンドであるソフトウェアセルによって行なわれる。
[0168] そして、マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21 — 1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要 であれば、マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 2 1 1は、上記の方法によって自装置の外部記録部 28— 1、 28— 2からメインメモリ 2 6- 1に機能プログラムをロードする力 他の情報処理装置 (スレーブ装置)がマスタ 一装置 1に機能プログラムを送信してもよ 、。
[0169] 機能プログラムには、その実行単位毎に必要となる、情報処理装置種別 ID、メイン プロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関す る条件などの装置に関する要求スペック(図 4を参照のこと)が規定されている。
[0170] マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21— 1は、 各機能プログラムについて必要となる上記の要求スペックを読み出す。また、あらか じめ能力交換プログラムによってメインメモリ 26— 1に記録された装置情報テーブル を参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図 4に示 した情報処理装置 ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メイン メモリ及び外部記録部に関する情報である。
[0171] マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21— 1は、 ネットワーク 9上に接続された各情報処理装置の上記装置情報と、機能プログラム実 行に必要となる上記要求スペックとを順次比較する。
[0172] 例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別 ID に基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機 能プログラムを実行するために必要なメインプロセッサ又はサブプロセッサの処理能 力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実 行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場 合には、当該候補装置から 1つの実行要求候補装置を特定して選択する。
[0173] 実行要求するスレーブ装置が特定されたら、マスター装置 1内の情報処理コント口 ーラ 11に含まれるメインプロセッサ 21— 1は、その特定されたスレーブ装置にっ 、て 、 自装置内の情報処理コントローラ 11に含まれるメインメモリ 26 - 1に記録されて 、る 当該スレーブ装置の装置情報テーブルを更新する。
[0174] さらに、マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21
1は、 DMAコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し 、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要 なサブプロセッサの情報及びサンドボックスサイズ(図 3を参照のこと)を設定し、上記 実行要求されるスレーブ装置に対して送信する。
[0175] 機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行す るとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレー ブ装置内の情報処理コントローラに含まれるメインプロセッサ 21は、上記の方法によ つて自装置の外部記録部 28からメインメモリ 26に機能プログラム及び当該機能プロ グラムと連携動作するサブプロセッサプログラムをロードする。
[0176] 機能プログラムの実行を要求されたスレーブ装置の外部記録部 28に必要な機能プ ログラム又は当該機能プログラムと連携動作するサブプロセッサプログラムが記録さ れて 、な 、場合には、他の情報処理装置が当該機能プログラム又はサブプロセッサ プログラムをその機能プログラム実行要求先スレーブ装置に送信するように、システ ムを構成すればよい。
[0177] サブプロセッサプログラムについては、前述のロードコマンド及びキックコマンドを禾 IJ 用して他の情報処理装置に実行させることもできる。
[0178] 機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処 理コントローラに含まれるメインプロセッサ 21は、終了通知をマスター装置 1内の情報 処理コントローラ 11に含まれるメインプロセッサ 21— 1に送信するとともに、自装置の 装置情報テーブルを更新する。マスター装置 1内の情報処理コントローラ 11に含ま れるメインプロセッサ 21— 1は、その終了通知を受信して、機能プログラムを実行した スレーブ装置の装置情報テーブルを更新する。
[0179] マスター装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21— 1は、 自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを 実行することができる情報処理装置として、自身を選択する場合もあり得る。その場 合には、マスター装置 1が当該の機能プログラムを実行する。
[0180] 図 7に示した例で、ユーザがスレーブ装置 A (情報処理装置 2)を操作し、当該操作 に応じた機能プログラムを別のスレーブ装置 B (情報処理装置 3)が実行する場合の 分散処理について、図 8を参照しながら説明する。
[0181] 図 8に示す例では、ユーザがスレーブ装置 Aを操作することにより、スレーブ装置 A を含むネットワークシステム全体の分散処理が開始し、まず、スレーブ装置 Aは、その 操作情報をマスター装置 1に送信する (ステップ 81)。
[0182] マスター装置 1は、その操作情報を受信し (ステップ 72)、さらに自装置のメインメモ リ 26— 1に記録されて 、る自装置及び他装置の装置情報テーブルから各情報処理 装置の動作状態を調べ、受信した操作情報に応じた機能プログラムを実行すること ができる情報処理装置を選択する (ステップ 73)。図示の例では、スレーブ装置 Bが 選択される場合を示して ヽる。
[0183] 次に、マスター装置 1は、その選択したスレーブ装置 Bに対して機能プログラムの実 行を要求する (ステップ 74)。
[0184] スレーブ装置 Bは、その実行要求を受信し (ステップ 95)、さらに、実行要求された 機能プログラムを実行する (ステップ 96)。
[0185] 以上のように、ユーザは、 1台の情報処理装置のみを操作することによって、他の情 報処理装置を操作することなぐ複数の情報処理装置 1、 2、 3、 4を仮想的な 1台の 情報処理装置 7として動作させることができる。
[0186] A— 11.各情報処理装置及びシステムの具体例
ネットワーク 9を介して互いに接続される情報処理装置 1、 2、 3、 4は、上記のような 情報処理コントローラ 11、 12、 13、 14によって情報処理を行なうものであれば、基本 的にはどのような構成でもよい。図 9には、情報処理装置の一構成例を示している。
[0187] 情報処理コントローラ 11を備える情報処理装置 1の一例は、ハードディスクレコーダ である。図 10並びに図 11には、同図中のハードディスクレコーダのハードウェア構成 及びソフトウェア構成をそれぞれ示して 、る。ハードディスクレコーダのハードウェア 構成としては、図 1に示した外部記録部 28— 1としてハードディスクを内蔵し、図 1に 示した外部記録部 28— 2として DVD士 RZRW、 CD士 RZRW、 Bluray— Disc (登 録商標)などの光ディスクを装着できるように構成されるとともに、情報処理コントロー ラ 11のバス 29— 1に接続されたバス 31— 1に、放送受信部 32— 1、映像入力部 33 1、音声入力部 34—1、映像出力部 35— 1、音声出力部 36— 1、操作パネル部 3 7— 1、リモコン受光部 38 - 1及びネットワーク接続部 39— 1が接続されて!、る。
[0188] 放送受信部 32— 1、映像入力部 33— 1及び音声入力部 34— 1は、放送信号を受 信し、又は情報処理装置 1の外部から映像信号及び音声信号を入力し、それぞれ所 定フォーマットのデジタルデータに変換し、情報処理コントローラ 11での処理のため にバス 31— 1に送出する。映像出力部 35— 1及び音声出力部 36— 1は、情報処理 コントローラ 11からバス 31— 1に送出された映像データ及び音声データを処理して、 デジタルデータのまま、又はアナログ信号に変換して、情報処理装置 1の外部に送 出するものであり、リモコン受光部 38— 1は、リモコン送信器 43— 1からのリモコン (遠 隔操作)赤外線信号を受信する。
[0189] 図 9及び図 10に示すように、情報処理装置 (ハードディスクレコーダ) 1の映像出力 部 35— 1及び音声出力部 36— 1には、モニタ表示装置 41及びスピーカ装置 42が接 続される。
[0190] 図 9に例示した情報処理コントローラ 12を備える情報処理装置 2も、ハードディスク レコーダで、図 10において括弧内に参照番号を付して示すように、情報処理装置 1 と同様に構成される。但し、図 9に示すように、情報処理装置 (ハードディスクレコーダ ) 2には、モニタ表示装置及びスピーカ装置は接続されない。
[0191] 情報処理装置 (ノヽードディスクレコーダ) 1及び 2、すなわち情報処理コントローラ 11 及び 12のソフトウェア構成としては、図 11に示すように、制御プログラムとして、 MS マネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、 映像音声再生、素材検索及び番組録画予約のためのプログラムを備え、デバイスド ライバとして、放送受信、映像出力、音声出力、外部記録部入出力及びネットワーク 入出力のためのプログラムを備える。
[0192] また、情報処理コントローラ 13を備える情報処理装置 3の他の例は、 PDA(Person al Digital Assistants)である。図 12には、 PDAとして構成される情報処理装置 3 のハードウェア構成を示している。同図に示す例では、図 1に示した外部記録部 28 —5として、メモリカードディスクを装着できるように構成され、情報処理コントローラ 13 のバス 29— 3に接続されたバス 51に、液晶表示部 52、音声出力部 53、カメラ部 54、 音声入力部 55、キーボード部 56及びネットワーク接続部 57が接続されている。
[0193] なお、図 1では内部を省略した情報処理コントローラ 13は、メインプロセッサ 21— 3 、サブプロセッサ 23— 7、 23-8, 23- 9, DMAC (ダイレクトメモリアクセスコントロー ラ) 25— 3、 DC (ディスクコントローラ) 27— 3及びバス 29— 3を備え、そのメインプロ セッサ 21— 3は、 LS (ローカル 'ストレージ) 22— 3を有し、各サブプロセッサ 23— 7、 23— 8、 23— 9ίま、 LS (ロー力ノレ'ストレージ) 24— 7、 24— 8、 24— 9を備えて! /、る。
[0194] また、図 13には、情報処理装置 (PDA) 3、すなわち情報処理コントローラ 13のソフ トウエア構成を示している。同図に示すように、制御プログラムとして、 MSマネージャ 及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再 生、電話帳、ワープロ及び表計算のためのプログラム、及び Webブラウザを備え、デ バイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力及びネ ットワーク入出力のためのプログラムを備えている。
[0195] また、情報処理コントローラ 14を備える情報処理装置 4のさらに他の例は、ポータブ ル CDプレーヤである。図 14には、ポータブル CDプレーヤのハードウェア構成を示 している。図示の例では、ポータブル CDプレーヤは、図 1に示した外部記録部 28— 6として、 CD (Compact Disc)を装着できるように構成され、情報処理コントローラ 1 4のバス 29— 4に接続されたノ ス 61に、液晶表示部 62、音声出力部 63、操作ボタン 部 64及びネットワーク接続部 65が接続されている。
[0196] なお、図 1では内部を省略した情報処理コントローラ 14は、メインプロセッサ 21— 4 、サブプロセッサ 23— 10、 23— 11、 23— 12、 DMAC25— 4、 DC27— 4及びバス 29— 4を備え、そのメインプロセッサ 21— 4は、 LS22— 4を有し、各サブプロセッサ 2 3— 10、 23— 11、 23— 12は、 LS24— 10、 24—11、 24— 12を有する。
[0197] 図 15には、情報処理装置(ポータブル CDプレーヤ) 4、すなわち情報処理コント口 ーラ 14のソフトウェア構成を示している。図示のように、制御プログラムとして、 MSマ ネージャ及び能力交換プログラムを備え、機能プログラムとして、音楽再生のための プログラムを備え、デバイスドライバとして、音声出力、 CD制御及びネットワーク入出 力のためのプログラムを備える。
[0198] 図 9に例示したネットワークシステムでは、情報処理装置 1、 3及び 4がネットワーク 9 上に接続されており、情報処理装置 1がマスター装置 (MSステータス =0)として、情 報処理装置 3及び 4がスレーブ装置(MSステータス = 1)として、設定されているもの とする。
[0199] この状態で、新たに情報処理装置 2がネットワーク 9に接続されると、上述した方法 によって、情報処理装置 2内の情報処理コントローラ 12に含まれるメインプロセッサ 2 1 2で実行されている MSマネージャは、他の情報処理装置 1、 3及び 4に MSステ 一タスを照会して、情報処理装置 1が既にマスター装置として存在することを認識し、 自装置 (情報処理装置 2)をスレーブ装置 (MSステータス = 1)に設定する。また、マ スター装置に設定されている情報処理装置 1は、新たに追加された情報処理装置 2 を含む各装置の装置情報を収集して、メインメモリ 26— 1内の装置情報テーブルを 更新する。
[0200] このような状態で、ユーザによってスレーブ装置である情報処理装置(PDA) 3で 2 時間の放送番組を録画予約するための操作が行なわれた場合にっ ヽて、以下に説 明する。
[0201] この場合、スレーブ装置である情報処理装置 (PDA) 3は、ユーザから録画開始時 刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約 情報の入力を受け付け、当該録画予約情報及び DMAコマンドとしての録画予約コ マンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置 1に送信 する。
[0202] DMAコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置 1内の情報処理コントローラ 11に含まれるメインプロセッサ 21— 1は、録画予約コマン ドを読み出すとともに、メインメモリ 26— 1内の装置情報テーブルを参照し、当該録画 予約コマンドを実行可能な情報処理装置を特定する。
[0203] まず、メインプロセッサ 21— 1は、装置情報テーブルに含まれる各情報処理装置 1 、 2、 3、 4の情報処理装置種別 IDを読み出して、録画予約コマンドに対応する機能 プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報 処理装置種別 IDを有する情報処理装置 1、 2が候補装置として特定され、情報処理 装置 3、 4は候補装置から除外される。
[0204] 次に、マスター装置である情報処理装置 1内の情報処理コントローラ 11に含まれる メインプロセッサ 21— 1は、装置情報テーブルを参照して、情報処理装置 1、 2のメイ ンプロセッサ又はサブプロセッサの処理能力、メインメモリに関する情報などの装置に 関する情報を読み出し、情報処理装置 1、 2が録画予約コマンドに対応する機能プロ グラムの実行に必要な要求スペックを満足するカゝ否かを判断する。ここでは、情報処 理装置 1、 2とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求ス ペックを満足するものとする。
[0205] さらに、メインプロセッサ 21— 1は、装置情報テーブルを参照して、情報処理装置 1 、 2の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予 約コマンドの実行に必要な容量を満足する力否かを判断する。情報処理装置 1、 2は ハードディスクレコーダであるので、それぞれノヽードディスク 28— 1、 28— 3の、総容 量と使用量との差分が、それぞれの空き容量に相当する。
[0206] この場合、情報処理装置 1のハードディスク 28— 1の空き容量力 録画時間に換算 して 10分であり、情報処理装置 2のハードディスク 28— 3の空き容量力 録画時間に 換算して 20時間であるとする。
[0207] このとき、マスター装置である情報処理装置 1内の情報処理コントローラ 11に含ま れるメインプロセッサ 21— 1は、当該録画予約コマンドの実行に必要な 2時間分の空 き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
[0208] その結果、情報処理装置 2のみが実行要求先スレーブ装置として選択され、マスタ 一装置である情報処理装置 1内の情報処理コントローラ 11に含まれるメインプロセッ サ 21— 1は、ユーザにより操作された情報処理装置 3から送信された録画予約情報 を含む当該録画予約コマンドを情報処理装置 2に送信して、上記 2時間の放送番組 の録画予約の実行を要求する。
[0209] そして、情報処理装置 2内の情報処理コントローラ 12に含まれるメインプロセッサ 2 1 2は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記 録部であるハードディスク 28— 3からメインメモリ 26— 2にロードし、録画予約情報に 従って録画を実行する。その結果、録画予約された 2時間の放送番組の映像音声デ ータが情報処理装置 2のハードディスク 28— 3に記録される。
[0210] このように、図 9の例のネットワークシステムにおいても、ユーザは、 1台の情報処理 装置のみを操作することによって、他の情報処理装置を操作することなぐ複数の情 報処理装置 1、 2、 3、 4を仮想的な 1台の情報処理装置 7として動作させることができ る。
[0211] B.サブプロセッサによる画像処理の実行
上述したように、本発明に係る情報処理システムは、自己のローカルストレージ上に 展開されたプログラムを実行可能な 1以上のサブプロセッサと、サブプロセッサにプロ グラムの実行を命令するメインプロセッサとを備えたマルチプロセッサ構成である。こ のようなマルチプロセッサ構成の情報処理システムによれば、各サブプロセッサの連 携により、 1つのプロセッサでは負荷の高い処理を分散して実現可能となり、あるいは 関連する 2以上のデータ処理を同期 '協調して実行することができるようになるので、 ユーザに対し高機能 ·高付加価値のサービスを提供することができる。
[0212] 各プロセッサはシステムバスを介してメインメモリを共有しており、システムの処理デ ータはメインメモリ上に展開される。メインプロセッサは、メインメモリ上のデータ処理を 各サブプロセッサに割り当て、その処理実行を指示する。サブプロセッサは、データ 処理を実行するためのサブプロセッサプログラムをロードし、メインプロセッサからの 指示によりプログラムを起動して、メインメモリ上のデータの処理を実行する。
[0213] ここで、メインメモリは、比較的大容量であり、記憶量当たりの単価の低い DRAMが 使用される。このため、サブプロセッサとメインメモリ間のレイテンシが大きい、サブプ 口セッサ同士のメインメモリへのアクセス競合といった問題がある。
[0214] 本発明に係るマルチプロセッサ構成のシステムでは、各サブプロセッサはそれぞれ 専用のローカルストレージを備えており、メインメモリ上にあるデータの処理を行なう 際に、自己のローカルストレージをいわゆるキャッシュメモリとして使用することで、メイ ンメモリへのアクセス競合やシステムバスのトラフィック増加を抑止することができる。と ころが、キャッシュのヒット率が十分に高くなければ、その効果を十分に発揮すること ができない。このため、後続のデータ処理でローカルストレージ上のキャッシュにヒット する確率が高くなるように、キャッシュエリアを適応的に制御することが、サブプロセッ サにおけるデータ処理のパフォーマンスやシステム全体の性能を向上させるために 必要であると思料される。
[0215] 以下では、マルチプロセッサ構成の情報処理システムで画像処理を扱うという実施 形態における、ローカルストレージのキャッシュエリアの適応制御について詳解する。
[0216] メインプロセッサは、圧縮された画像の復号処理を 1つのサブプロセッサに割り当て ることができる。この場合、さらに他のサブプロセッサに対し、画像データをユーザの 好みの品質に編集する画質改善や、他の符号化方式へ再符号化するリエンコードな ど、復号された画像データに対する他の処理を指示し、システム全体として連携動作 を行なうことができる。
[0217] 図 16には、 1つのサブプロセッサが画像復号処理を行なう場合のマルチプロセッサ 構成システムの機能構成を模式的に示している。図示のシステムでは、以下の特徴 を持つものとする。
[0218] (1)サブプロセッサ毎に専用のローカルストレージを有する。
(2)サブプロセッサは自己のローカルストレージ以外に直接アクセスしない。
(3)メインメモリは DRAMのような比較的低速のメモリ素子が使用される。
(4)サブプロセッサは必要に応じてメインメモリの一部のエリアをローカルストレージに キャッシュする機構を有する。 [0219] ここで、画像の符号化'復号化処理では、フレーム全体をマクロブロックと呼ばれる 小さな領域に分割して信号処理が行なわれる。例えば、標準的な画像圧縮規格の 1 つである MPEGにおける基本的な圧縮アルゴリズムは以下の通りである。すなわち、
[0220] (1)マクロブロックを符号ィ匕単位として時間的画面相関に基づく情報圧縮を行なう。
(2)マクロブロックをサブブロックに細分ィ匕して、 DCTによる空間的情報圧縮を行なう
(3)動き補償フレーム間予測などを利用して可変長符号ィ匕を行なう。
(4) DCT係数の量子化スケール制御により、全体の符号発生量の制御を行なう。
[0221] また、画像圧縮では、圧縮対象のフレームと参照となるフレーム間の差分情報を圧 縮するフレーム間符号ィ匕が行なわれる。図 17には、圧縮された画像信号の復号を行 なう場合の基本的な動作手順をフローチャートの形式で示している。
[0222] 図示の通り、圧縮画像の復号処理フローは、圧縮ストリームの入力(ステップ S1)、 ストリームの復号 (ステップ S 2)、参照フレームの入力(ステップ S3)、画像伸張処理( ステップ S4)、復号結果の出力(ステップ S5)という一連の処理が、ブロック数判定に より(ステップ S6) 1フレーム毎に行なわれる。
[0223] ここで、ステップ Sl、 S3、 S5の各処理において、メインメモリとローカルストレージ間 でのデータ転送が発生する。メモリ間のデータ転送は複数のモジュールが共通で使 用するシステムノ スを介して行なわれる。既に述べたように、ノ スの転送性能悪化に 起因する復号システム全体の性能低下を防ぐためには、サブプロセッサはキャッシュ を実装し、メモリ間転送の性能向上を行なう必要がある。
[0224] ステップ S1におけるストリーム入力のための転送では、ストリームはメモリ上に連続 して配置され、且つ、逐次的に処理されるものなので、キャッシュの制御を簡素に行 なうことができ、また、キャッシュミスすることもない。
[0225] また、ステップ S5における復号結果の出力では、複数のマクロブロックが同じアドレ スに対して出力結果を書き込むことはなぐまたフレーム全体の復号処理が終わるま での間は出力結果が他のマクロブロックの処理で読み込まれることもない。したがつ て、デコード結果を後続マクロブロックのデコード処理とは非同期にメインメモリへ転 送することができ、これにより性能低下を抑制することができるため、キャッシュ適用の 対象外になる。
[0226] ここで、ステップ S3の参照フレームの入力につ!/、て考える。画像の圧縮処理では、 圧縮対象のフレームと参照となるフレームの差分情報のみを伝送して圧縮効率を高 めるフレーム間符号ィ匕が行なわれている (前述)。この場合、復号処理には差分情報 の生成に使用した参照画像のデータを取得する必要がある。
[0227] 参照フレーム内の予測に使用した画像データの位置取得には、ストリーム中に符号 化されている動きベクトルを用いることで可能となる。手順としては図 18にフローチヤ ートの形式で示す処理手順により実現される。
[0228] まず、動きベクトルを基に参照フレーム内の参照位置を計算する (ステップ Sl l)。
そして、算出された参照位置の画像データがローカルストレージ内にキャッシュされ ているかどうかを判定する(ステップ S 12)。そして、ローカルストレージ内に該当デー タがない、すなわちキャッシュミスが発生した場合には、当該キャッシュエリアをメイン メモリから転送する (ステップ S 13、 S14)。
[0229] 通常のキャッシュ動作では、サブプロセッサがアクセスしたメモリアドレスに連続した 領域のデータをキャッシュすることになる。これに従えば、参照フレームのキャッシュ 処理は、参照画像の周辺データが均一にキャッシュされることになる。ところが、画像 の動き方によっては、以降のマクロブロックの処理でキャッシュをミスする確率が高く なる場合がある。
[0230] そこで、本実施形態では、周辺のマクロブロック処理に使用した動きベクトルから、 動きベクトルの移動方向、移動速度に応じてキャッシュする領域を適応的に変化させ るようにしている。これにより、後続のマクロブロック処理で参照画像がキャッシュにヒッ トする確率を向上させ、圧縮画像復号システム全体の性能向上を図ることが可能とな る。図 19には、この場合における参照画像の取得処理の手順をフローチャートの形 式で示している。
[0231] まず、動きベクトルを基に参照フレーム内の参照位置を計算する (ステップ S21)。
そして、算出された参照位置の画像データがローカルストレージ内にキャッシュされ て!、るかどうかを判定する(ステップ S22)。
[0232] ここで、ローカルストレージ内に該当データがない、すなわちキャッシュミスが発生し た場合には、現マクロブロックと周囲の動きベクトルに基づいて、次のマクロブロックで 復号される動きベクトルを予測する (ステップ S23)。そして、計算した動きベクトルを 基に、キャッシュするフレーム領域すなわちキャッシュエリアを計算する (ステップ S24 )。そして、算出されたキャッシュエリアをメインメモリからサブプロセッサのローカルス トレージに転送する(ステップ S25、 S26)。
[0233] 図 20には、ステップ S23において、現マクロブロックと周囲の動きベクトルに基づい て、次のマクロブロックで復号される動きベクトルを予測する処理手順の一例を図解 している。同図では、外揷によるマクロブロックの動きベクトルを予測している。外挿に よる動きベクトル予測のため、常に過去数マクロブロック(図示の例では 2マクロブロッ ク分)の動きベクトルを保存し、 X及び Y各座標方向の移動速度から、次のマクロプロ ックで使用する動きベクトルを計算する。
[0234] また、図 21には、ステップ S24において、動きベクトルを基に、キャッシュするフレー ム領域すなわちキャッシュエリアを求める処理手順を図解している。ここでは、先行ス テツプ S23で計算した次ブロックの動きベクトルをキャッシュ処理ブロックに入力し、キ ャッシュする領域の判定を行なう。
[0235] 図 21 (a)には、動きベクトル予測結果を考慮しな力つた場合の動作例を示している 。この場合、今回使用する参照データを中心とするエリアをキャッシュする。図示の例 で分力るように、次のマクロブロック処理で参照する可能性の高 、データがキャッシュ に入りきらない。このため、次回の処理で再度メインメモリからデータ転送する可能性 が高くなり、性能を落とす要因となってしまう。
[0236] また、図 21 (b)には、動きベクトル予測結果を考慮してキャッシュエリアを計算した 様子を示している。この場合、次回のマクロブロック処理で使うデータがキャッシュさ れている可能性が高いことから、復号処理システムの性能を引き上げる効果が期待さ れる。
[0237] 図 22には、キャッシュエリアの計算方法の一例を図解している。ここで、キャッシュメ モリのサイズとしては縦横方向ともにマクロブロックの 3倍の大きさの領域を保存できる ものとする。復号しているマクロブロックが参照する画像の座標を (X , Y )とし、図 2
ref ref
0に示した処理手順により得られる予測された動きベクトルから、次のマクロブロックが 参照すると予測した画像の座標を (X , Y )とする。参照画像を転送する際に、フ next next
レームメモリのどの領域をメインメモリからキャッシュに転送するか決定するということ は、同図中のパラメータ h , wを求めることと等価であり、これを (X , Y )、(X , Y
0 0 ref ref next
)を使って以下の式から計算する。
next
[0238] w = (W/3) X (1 - α )
α ' = (X - (X +MW) ) XweightW
next ref
= (Η/3) Χ (1 - |8 )
j8 ' = (Y -Y ) XweightH
next ref
[0239] ここで、 weightH及び weightWは移動度の重み係数であり、実装によって最適な 値が選択されるものである。また、 αは α 'を、 βは β 'をそれぞれ 1から 1の範囲に 飽和させた値とする。
[0240] 図 23には、図 19に示した参照画像の取得処理の手順の応用例をフローチャート の形式で示している。
[0241] まず、動きベクトルを基に参照フレーム内の参照位置を計算する (ステップ S31)。
[0242] 次!、で、現マクロブロックと周囲の動きベクトルに基づ!/、て、次のマクロブロックで復 号される動きベクトルを予測する (ステップ S32)。そして、計算した動きベクトルを基 に、キャッシュするフレーム領域すなわちキャッシュエリアを計算する (ステップ S33)
[0243] 次いで、算出されたキャッシュエリアをメインメモリからサブプロセッサのローカルスト レージへの転送を開始する (ステップ S34)。ここで、キャッシュエリアとして算出され た画像データがローカルストレージ内にキャッシュされているかどうかを判定する(ス テツプ S35)。ここで、ローカルストレージ内に該当データがない、すなわちキャッシュ ミスが発生した場合には、キャッシュエリアをメインメモリからサブプロセッサのロー力 ルストレージに転送する(ステップ S36)。
[0244] 図 19に示した動作手順では、キャッシュミスした際にのみ、動きベクトル予測 (ステツ プ S23)及びキャッシュエリア算出 (ステップ S24)の処理が起動する。ところが、動き ベクトルを用いて画像ブロックの移動方向、速度を計算して、キャッシュエリアを求め るという上記の手法を適用した場合であっても、キャッシュ領域は有限なため、いっか キャッシュミスして転送待ちのオーバヘッドにより処理性能が低下してしまう。
[0245] これに対し、図 23に示した動作手順によれば、サブプロセッサのローカルストレー ジに所望のデータが存在する(すなわちキャッシュされている)場合であっても、常に 動きベクトルの予測を行な ヽ、投機的にキャッシュの先読み処理を実行するようにし ている。この場合、毎回動きベクトルの予測処理が必要になる力 キャッシュミス時の データ転送待ち処理に比べて予測処理のオーバヘッドの方の負荷が少なければ、 システム全体としての性能を向上させることができる。
[0246] このような投機的なキャッシュ処理によって発生するメインメモリとローカルストレー ジ間のデータ転送は、マクロブロック単位で行なう画像復号処理に比べて短 、時間 で処理を終える。したがって、復号システムの全体性能を低下させることなぐ効率よ く参照画像データのキャッシュ処理を行なうことが実現可能になる。
産業上の利用可能性
[0247] 以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしなが ら、本発明の要旨を逸脱しな ヽ範囲で当業者が該実施形態の修正や代用を成し得 ることは自明である。
[0248] 本明細書では、自己のローカルストレージ上に展開されたプログラムを実行可能な 1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメイン プロセッサとを備えたマルチプロセッサシステム上でフレーム間符号化が行なわれた 圧縮画像データを復号する場合を例にとって、本発明の一実施形態について説明し てきたが、本発明の要旨はこれに限定されるものではない。マルチプロセッサ構成以 外のシステム上で画像データの復号処理を行なう場合や、画像復号以外のデータ処 理を行なう場合であっても、本発明を適用することにより、キャッシュヒット率を増加さ せ、キャッシュを用いた処理のパフォーマンス並びにシステム全体の性能を向上させ ることがでさる。
[0249] 要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容 を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の 範囲を参酌すべきである。

Claims

請求の範囲
[1] 自己のローカノレストレージ上に展開されたプログラムを実行可能な 1以上のサブプ 口セッサと、 前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、 各プロセッサが共有するメインメモリとを備え、
前記メインメモリ上のデータの処理が割り当てられたサブプロセッサは、現在ロー力 ルストレージ上にキャッシュされているデータの特徴に基づいて、次にローカルストレ ージにキャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定する、 ことを特徴とする情報処理システム。
[2] 前記メインメモリ上の圧縮画像データの復号処理が割り当てられたサブプロセッサ は、現在ローカルストレージ上にキャッシュされて 、る画像データの特徴を示すパラメ ータに基づいて、次にローカルストレージにキャッシュすべきメインメモリ上のキヤッシ ユエリアを適応的に決定する、
ことを特徴とする請求項 1に記載の情報処理システム。
[3] 前記圧縮画像データは、圧縮対象の画像フレームと参照となる画像フレーム間の 差分情報を圧縮するフレーム間符号化処理が施されており、
前記サブプロセッサは、画像データの特徴を示すパラメータに基づ!ヽて参照フレー ム内で差分情報の生成に使用した参照位置を求め、該参照位置周辺の画像データ をキャッシュエリアとする、
ことを特徴とする請求項 2に記載の情報処理システム。
[4] 画像データの特徴を示すパラメータとして、画像データとともに符号化される画像ブ ロックの動き情報を用い、符号ィ匕された画像ブロックの動き情報に基づいて、画像ブ ロックの移動方向、速度を計算して画像ブロックの動作を予測し、キャッシュエリアを 求める、
ことを特徴とする請求項 3に記載の情報処理システム。
[5] 過去の画像ブロック数個分の動き情報を保存し、 X及び Y各座標方向の移動速度 から、次の画像ブロックで使用する動き情報を外挿により求める、
ことを特徴とする請求項 4に記載の情報処理システム。
[6] 常に画像ブロックの動作の予測を行ない、投機的にキャッシュの先読み処理を実行 する、
ことを特徴とする請求項 4に記載の情報処理システム。
[7] 圧縮画像データを復号する情報処理システムであって、
圧縮画像データを格納する第 1の記憶手段と、
圧縮画像データを復号する復号処理手段と、
前記復号処理手段において復号処理に使用する画像データをキャッシュする第 2 の記憶手段と、
前記第 2の記憶手段にキャッシュされている画像データの特徴を示すパラメータに 基づいて、前記第 1の記憶手段におけるキャッシュエリアを適応的に決定するキヤッ シュ制御手段と、
を具備することを特徴とする情報処理システム。
[8] 前記圧縮画像データは、圧縮対象のフレームと参照となるフレーム間の差分情報 を圧縮するフレーム間符号化処理が施されており、
前記キャッシュ制御手段は、画像データの特徴を示すパラメータに基づ!ヽて参照フ レーム内で差分情報の生成に使用した参照位置を求め、該参照位置周辺の画像デ ータをキャッシュエリアとする、
ことを特徴とする請求項 7に記載の情報処理システム。
[9] 前記キャッシュ制御手段は、画像データの特徴を示すパラメータとして、画像デー タとともに符号ィ匕される画像ブロックの動き情報を用い、符号ィ匕された画像ブロックの 動き情報に基づいて、画像ブロックの移動方向、速度を計算して画像ブロックの動作 を予測し、キャッシュエリアを求める、
ことを特徴とする請求項 8に記載の情報処理システム。
[10] 前記キャッシュ制御手段は、過去の画像ブロック数個分の動き情報を保存し、 X及 ひ Ύ各座標方向の移動速度から、次の画像ブロックで使用する動き情報を外挿によ り求める、
ことを特徴とする請求項 9に記載の情報処理システム。
[11] 前記キャッシュ制御手段は、常に画像ブロックの動作の予測を行ない、投機的にキ ャッシュの先読み処理を実行する、
ことを特徴とする請求項 9に記載の情報処理システム。
[12] 自己のローカノレストレージ上に展開されたプログラムを実行可能な 1以上のサブプ 口セッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、各 プロセッサが共有するメインメモリとを備えたシステム上で、メインメモリ上のデータの 処理をサブプロセッサに割り当てて実行する情報処理方法であって、
メインメモリ力 処理対象のデータをサブプロセッサのローカルストレージに転送す るステップと、
サブプロセッサがローカルストレージ上のデータを処理するデータ処理ステップと、 ローカルストレージ上で処理したデータの特徴に基づいて次にローカルストレージ にキャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定するキャッシュェ リア決定ステップと、
キャッシュエリアが既にローカルストレージ上にキャッシュされているか否かを判定 するステップと、
キャッシュミスして 、る場合に、決定されたキャッシュエリアをメインメモリからキヤッシ ユエリアに転送するキャッシュエリア転送ステップと、
を具備することを特徴とする情報処理方法。
[13] サブプロセッサには前記メインメモリ上の圧縮画像データの復号処理が割り当てら れており、
前記キャッシュエリア判定ステップでは、現在ローカルストレージ上にキャッシュされ ている画像データの特徴を示すパラメータに基づいて、次にローカルストレージにキ ャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定する、
ことを特徴とする請求項 12に記載の情報処理方法。
[14] 前記圧縮画像データは、圧縮対象の画像フレームと参照となる画像フレーム間の 差分情報を圧縮するフレーム間符号化処理が施されており、
前記キャッシュエリア判定ステップでは、画像データの特徴を示すパラメータに基づ いて参照フレーム内で差分情報の生成に使用した参照位置を求め、該参照位置周 辺の画像データをキャッシュエリアとする、 ことを特徴とする請求項 13に記載の情報処理方法。
[15] 前記キャッシュエリア判定ステップでは、画像データの特徴を示すパラメータとして
、画像データとともに符号化される画像ブロックの動き情報を用い、符号化された画 像ブロックの動き情報に基づいて、画像ブロックの移動方向、速度を計算して画像ブ ロックの動作を予測し、キャッシュエリアを求める、
ことを特徴とする請求項 14に記載の情報処理方法。
[16] 前記キャッシュエリア判定ステップでは、過去の画像ブロック数個分の動き情報を保 存し、 X及び Y各座標方向の移動速度から、次の画像ブロックで使用する動き情報を 外挿により求める、
ことを特徴とする請求項 15に記載の情報処理方法。
[17] 前記キャッシュエリア判定ステップでは、常に画像ブロックの動作の予測を行ない、 前記キャッシュエリア転送ステップでは、投機的にキャッシュの先読み処理を実行 する、
ことを特徴とする請求項 15に記載の情報処理方法。
[18] 圧縮対象のフレームと参照となるフレーム間の差分情報を圧縮するフレーム間符号 化処理が施された圧縮画像データを復号する情報処理方法であって、
圧縮画像データを格納するメモリから圧縮ストリームを入力するストリーム入カステツ プと、
入力されたストリームを復号するストリーム復号ステップと、
参照フレームを入力するステップと、
入力された参照フレームを用いて画像伸張する画像伸張処理ステップとを備え、 前記参照フレーム入力ステップでは、画像データの特徴を示すパラメータに基づ ヽ て参照フレーム内で差分情報の生成に使用した参照位置を求め、該参照位置周辺 の画像データをキャッシュエリアとして前記メモリから入力する、
ことを特徴とする情報処理方法。
[19] 前記参照フレーム入力ステップでは、画像データの特徴を示すパラメータとして、 画像データとともに符号ィ匕される画像ブロックの動き情報を用い、符号ィ匕された画像 ブロックの動き情報に基づいて、画像ブロックの移動方向、速度を計算して画像プロ ックの動作を予測し、キャッシュエリアを求める、
ことを特徴とする請求項 18に記載の情報処理方法。
[20] 前記参照フレーム入力ステップでは、過去の画像ブロック数個分の動き情報を保存 し、 X及び Y各座標方向の移動速度から、次の画像ブロックで使用する動き情報を外 挿により求める、
ことを特徴とする請求項 19に記載の情報処理方法。
[21] 前記参照フレーム入力ステップでは、常に画像ブロックの動作の予測を行ない、投 機的にキャッシュの先読み処理を実行する、
ことを特徴とする請求項 19に記載の情報処理方法。
[22] 自己のローカノレストレージ上に展開されたプログラムを実行可能な 1以上のサブプ 口セッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサと、各 プロセッサが共有するメインメモリとを備えたシステム上で、メインメモリ上のデータの 処理をサブプロセッサに割り当てて実行するための処理手順をコンピュータ可読形 式で記述されたコンピュータプログラムであって、前記システムに対し、
メインメモリ力 処理対象のデータをサブプロセッサのローカルストレージに転送す る手川頁と、
サブプロセッサがローカルストレージ上のデータを処理するデータ処理手順と、 ローカルストレージ上で処理したデータの特徴に基づいて次にローカルストレージ にキャッシュすべきメインメモリ上のキャッシュエリアを適応的に決定するキャッシュェ リア決定ス手順と、
キャッシュエリアが既にローカルストレージ上にキャッシュされているか否かを判定 する手順と、
キャッシュミスして 、る場合に、決定されたキャッシュエリアをメインメモリからキヤッシ ユエリアに転送する手順と、
を実行させることを特徴とするコンピュータプログラム。
[23] 圧縮対象のフレームと参照となるフレーム間の差分情報を圧縮するフレーム間符号 化処理が施された圧縮画像データを復号するための処理をコンピュータシステム上 で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって 、前記コンピュータシステムに対し、
圧縮画像データを格納するメモリから圧縮ストリームを入力するストリーム入力手順 と、
入力されたストリームを復号するストリーム復号手順と、
参照フレームを入力する手順と、
入力された参照フレームを用いて画像伸張する画像伸張処理手順を実行させ、 前記参照フレーム入力手順では、画像データの特徴を示すパラメータに基づ 、て 参照フレーム内で差分情報の生成に使用した参照位置を求め、該参照位置周辺の 画像データをキャッシュエリアとして前記メモリから入力する、
ことを特徴とするコンピュータプログラム。
PCT/JP2005/012422 2004-07-16 2005-07-05 情報処理システム及び情報処理方法、並びにコンピュータプログラム WO2006008961A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/632,655 US20080253673A1 (en) 2004-07-16 2005-07-05 Information Processing System, Information Processing Method, and Computer Program
EP20050765473 EP1775962A1 (en) 2004-07-16 2005-07-05 Information processing system, information processing method, and computer program
KR20077000928A KR20070035037A (ko) 2004-07-16 2005-07-05 정보 처리 시스템 및 정보 처리 방법과 컴퓨터 프로그램

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004210761A JP2006031480A (ja) 2004-07-16 2004-07-16 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2004-210761 2004-07-16

Publications (1)

Publication Number Publication Date
WO2006008961A1 true WO2006008961A1 (ja) 2006-01-26

Family

ID=35785081

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/012422 WO2006008961A1 (ja) 2004-07-16 2005-07-05 情報処理システム及び情報処理方法、並びにコンピュータプログラム

Country Status (6)

Country Link
US (1) US20080253673A1 (ja)
EP (1) EP1775962A1 (ja)
JP (1) JP2006031480A (ja)
KR (1) KR20070035037A (ja)
CN (1) CN101036393A (ja)
WO (1) WO2006008961A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006140558A (ja) * 2004-11-10 2006-06-01 Casio Comput Co Ltd 画像処理装置及び画像処理方法
JP2011234383A (ja) * 2011-06-02 2011-11-17 Casio Comput Co Ltd 画像処理装置及び画像処理方法
US8593469B2 (en) 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
US8599841B1 (en) 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
JP2015207123A (ja) * 2014-04-18 2015-11-19 富士通株式会社 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090245580A1 (en) * 2006-07-21 2009-10-01 Darryl Greig Modifying parameters of an object detector based on detection information
JP4910576B2 (ja) 2006-09-04 2012-04-04 富士通株式会社 動画像処理装置
JP4983160B2 (ja) * 2006-09-04 2012-07-25 富士通株式会社 動画像処理装置
JP4862566B2 (ja) 2006-09-04 2012-01-25 富士通株式会社 動画像処理装置及びプリフェッチ制御方法
JP4535047B2 (ja) 2006-09-06 2010-09-01 ソニー株式会社 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置
US20090225867A1 (en) * 2008-03-06 2009-09-10 Lee Kun-Bin Methods and apparatus for picture access
FR2930059B1 (fr) * 2008-04-09 2010-04-09 Ateme Sa Traitement d'une sequence video dans une memoire cache
US8577165B2 (en) * 2008-06-30 2013-11-05 Samsung Electronics Co., Ltd. Method and apparatus for bandwidth-reduced image encoding and decoding
US20090327609A1 (en) * 2008-06-30 2009-12-31 Bruce Fleming Performance based cache management
US8700862B2 (en) * 2008-12-03 2014-04-15 Nvidia Corporation Compression status bit cache and backing store
US9253496B2 (en) 2008-12-12 2016-02-02 Qualcomm Incorporated Intelligent decoded picture buffering
JP5469433B2 (ja) * 2009-10-30 2014-04-16 株式会社キーエンス 画像処理装置及び画像処理方法
KR101279507B1 (ko) * 2009-12-15 2013-06-28 한국전자통신연구원 병렬 처리 기반 파이프라인 복호화 장치 및 방법
JP5020391B2 (ja) * 2010-02-22 2012-09-05 パナソニック株式会社 復号化装置及び復号化方法
JP5378298B2 (ja) * 2010-05-18 2013-12-25 日立コンシューマエレクトロニクス株式会社 機器間情報交換機能を有するストレージ
CN102360273A (zh) * 2011-09-26 2012-02-22 北京邦诺存储科技有限公司 控制存储器与非易失性缓存装置协同存储的设备和方法
KR101611289B1 (ko) * 2011-12-16 2016-04-12 엘지전자 주식회사 전기자동차 및 그 제어방법
US20140184630A1 (en) * 2012-12-27 2014-07-03 Scott A. Krig Optimizing image memory access
US9667706B2 (en) * 2013-08-16 2017-05-30 Pearson Education, Inc. Distributed processing systems
US10148589B2 (en) * 2014-09-29 2018-12-04 Pearson Education, Inc. Resource allocation in distributed processing systems
US10051294B2 (en) * 2015-03-31 2018-08-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Compressed video buffering
CN106157230B (zh) * 2016-05-25 2019-08-16 华中科技大学 海量脑组织三维图像数据快速调用方法
CN107562686B (zh) * 2017-08-18 2019-12-10 清华大学 信息处理方法和装置
TWI714003B (zh) * 2018-10-11 2020-12-21 力晶積成電子製造股份有限公司 可執行人工智慧運算的記憶體晶片及其操作方法
US11436046B2 (en) 2018-10-11 2022-09-06 Powerchip Semiconductor Manufacturing Corporation Electronic device with memory processor-based multiprocessing architecture and operation method thereof
JP7259537B2 (ja) * 2019-05-16 2023-04-18 オムロン株式会社 情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11215509A (ja) * 1998-01-28 1999-08-06 Nec Corp 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
JP2000030047A (ja) * 1998-07-15 2000-01-28 Sony Corp 符号化装置とその方法および復号化装置とその方法
JP2000278693A (ja) * 1999-03-19 2000-10-06 Nec Corp 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088391A (en) * 1996-05-28 2000-07-11 Lsi Logic Corporation Method and apparatus for segmenting memory to reduce the memory required for bidirectionally predictive-coded frames
US5929850A (en) * 1996-07-01 1999-07-27 Thomson Consumer Electronices, Inc. Interactive television system and method having on-demand web-like navigational capabilities for displaying requested hyperlinked web-like still images associated with television content
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) * 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
JP4335516B2 (ja) * 2001-12-04 2009-09-30 パナソニック株式会社 複数のプロセッサを用いた動画像符号化装置およびその方法
US7088872B1 (en) * 2002-02-14 2006-08-08 Cogent Systems, Inc. Method and apparatus for two dimensional image processing
US7304646B2 (en) * 2004-08-19 2007-12-04 Sony Computer Entertainment Inc. Image data structure for direct memory access
US7924914B2 (en) * 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11215509A (ja) * 1998-01-28 1999-08-06 Nec Corp 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
JP2000030047A (ja) * 1998-07-15 2000-01-28 Sony Corp 符号化装置とその方法および復号化装置とその方法
JP2000278693A (ja) * 1999-03-19 2000-10-06 Nec Corp 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006140558A (ja) * 2004-11-10 2006-06-01 Casio Comput Co Ltd 画像処理装置及び画像処理方法
US8599841B1 (en) 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8593469B2 (en) 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
TWI471011B (zh) * 2006-03-29 2015-01-21 Nvidia Corp 視訊處理方法及系統
JP2011234383A (ja) * 2011-06-02 2011-11-17 Casio Comput Co Ltd 画像処理装置及び画像処理方法
JP2015207123A (ja) * 2014-04-18 2015-11-19 富士通株式会社 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム

Also Published As

Publication number Publication date
EP1775962A1 (en) 2007-04-18
CN101036393A (zh) 2007-09-12
KR20070035037A (ko) 2007-03-29
JP2006031480A (ja) 2006-02-02
US20080253673A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
WO2006008961A1 (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
KR20060043201A (ko) 정보 처리 시스템 및 정보 처리 방법과, 컴퓨터 프로그램
JP4772375B2 (ja) 電子機器およびコンテンツ管理方法
Lin et al. A framework for scalable cloud video recorder system in surveillance environment
JP5548671B2 (ja) 画像処理システム、画像提供サーバ、情報処理装置、および画像処理方法
US20080205389A1 (en) Selection of transrate and transcode processes by host computer
JP2005235019A (ja) ネットワークシステム、分散処理方法、情報処理装置
US20120229638A1 (en) Video Monitoring System and Control Method Thereof
JP4599923B2 (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2003204556A (ja) マルチメディア信号処理のための映像復元プロセッサ
KR20060053894A (ko) 정보 처리 시스템, 정보 처리 방법, 및 그와 함께 사용되는컴퓨터 프로그램
JP2008234668A (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4329647B2 (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2004507957A (ja) アルゴリズムを実行する方法と、拡張性のあるプログラマブル処理装置
JP2005252402A (ja) コンテンツ記録システム及びコンテンツ記録方法、並びにコンピュータ・プログラム
US20140099039A1 (en) Image processing device, image processing method, and image processing system
JP5506250B2 (ja) ストリーム復号装置及びストリーム復号方法
JP2006033396A (ja) 送信装置、受信装置、通信システム、送信方法、受信方法、送信プログラム、受信プログラム及びサーバ装置
JP2006020147A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4542308B2 (ja) 信号処理用デバイス及び情報処理機器
CN112492350A (zh) 一种视频转码方法、装置、设备和介质
CN107251000A (zh) 片上系统中的动态存储器利用
JP2005352909A (ja) 情報処理装置および方法、記録媒体、並びに予約処理プログラム
JP2005311479A (ja) ネットワークシステム、番組録画予約方法および情報処理装置
Yan et al. Hw-sw framework for multimedia applications on mpsoc: practice and experience

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005765473

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020077000928

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 200580031284.X

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020077000928

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2005765473

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11632655

Country of ref document: US