KR20060071069A - Information processing apparatus, information processing method, information processing system, and computer program for information processing - Google Patents
Information processing apparatus, information processing method, information processing system, and computer program for information processing Download PDFInfo
- Publication number
- KR20060071069A KR20060071069A KR1020050021349A KR20050021349A KR20060071069A KR 20060071069 A KR20060071069 A KR 20060071069A KR 1020050021349 A KR1020050021349 A KR 1020050021349A KR 20050021349 A KR20050021349 A KR 20050021349A KR 20060071069 A KR20060071069 A KR 20060071069A
- Authority
- KR
- South Korea
- Prior art keywords
- information processing
- information
- command
- processing apparatus
- subprocessor
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 702
- 238000004590 computer program Methods 0.000 title claims description 7
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims abstract description 140
- 230000006870 function Effects 0.000 claims description 141
- 238000000034 method Methods 0.000 claims description 74
- 230000008569 process Effects 0.000 claims description 32
- 244000035744 Hura crepitans Species 0.000 description 63
- 230000005540 biological transmission Effects 0.000 description 63
- 238000010586 diagram Methods 0.000 description 30
- 230000004044 response Effects 0.000 description 25
- 238000007726 management method Methods 0.000 description 18
- 238000012790 confirmation Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010130 dispersion processing Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B3/00—Ohmic-resistance heating
- H05B3/02—Details
- H05B3/06—Heater elements structurally combined with coupling elements or holders
- H05B3/08—Heater elements structurally combined with coupling elements or holders having electric connections specially adapted for high temperatures
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B3/00—Ohmic-resistance heating
- H05B3/20—Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24D—DOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
- F24D13/00—Electric heating systems
- F24D13/02—Electric heating systems solely using resistance heating, e.g. underfloor heating
- F24D13/022—Electric heating systems solely using resistance heating, e.g. underfloor heating resistances incorporated in construction elements
- F24D13/024—Electric heating systems solely using resistance heating, e.g. underfloor heating resistances incorporated in construction elements in walls, floors, ceilings
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B3/00—Ohmic-resistance heating
- H05B3/10—Heating elements characterised by the composition or nature of the materials or by the arrangement of the conductor
- H05B3/12—Heating elements characterised by the composition or nature of the materials or by the arrangement of the conductor characterised by the composition or nature of the conductive material
- H05B3/14—Heating elements characterised by the composition or nature of the materials or by the arrangement of the conductor characterised by the composition or nature of the conductive material the material being non-metallic
- H05B3/145—Carbon only, e.g. carbon black, graphite
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05B—ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- H05B3/00—Ohmic-resistance heating
- H05B3/20—Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater
- H05B3/22—Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater non-flexible
- H05B3/26—Heating elements having extended surface area substantially in a two-dimensional plane, e.g. plate-heater non-flexible heating conductor mounted on insulating base
Landscapes
- Multi Processors (AREA)
Abstract
네트워크를 통하여 접속된 복수의 정보 처리 장치 사이에서, 사용자의 조작에 대응한 분산 처리를 확실하고 또한 효과적으로 행할 수 있도록 한다.It is possible to reliably and effectively perform distributed processing corresponding to a user's operation between a plurality of information processing apparatuses connected via a network.
정보 처리 장치(1, 2, 3 및 4) 내의 정보 처리 컨트롤러(11, 12, 13 및 14)는, 각각 메인 프로세서(21), 서브 프로세서(23), DMAC(다이렉트 메모리 액세스 컨트롤러)(25) 및 DC(디스크 컨트롤러)(27)를, 버스(29)를 통하여 접속한 것으로 한다. 메인 프로세서(21)는, 자(自) 장치의 동작 상태에 관한 정보를 장치 정보로서, 정보 처리 컨트롤러에 접속된 메인 메모리(26)에 기입함과 더불어, 타(他) 장치로부터의 요구에 대응하여, 그 장치 정보를 타 장치에 송신한다. 이에 의해, 임의의 정보 처리 장치는, 자신 및 다른 정보 처리 장치의 동작 상태를 보고, 사용자의 조작에 대응한 프로그램을 실행하는 정보 처리 장치를 선택하여, 그 장치에 해당 프로그램을 실행시킨다.The information processing controllers 11, 12, 13, and 14 in the information processing apparatuses 1, 2, 3, and 4 are the main processor 21, the subprocessor 23, and the DMAC (direct memory access controller) 25, respectively. And DC (disk controller) 27 are connected via bus 29. The main processor 21 writes information on the operation state of the own device as the device information into the main memory 26 connected to the information processing controller, and responds to requests from other devices. The device information is transmitted to the other device. Thereby, the arbitrary information processing apparatus sees the operation | movement state of itself and another information processing apparatus, selects the information processing apparatus which runs the program corresponding to a user's operation, and makes the apparatus run the said program.
정보 처리 장치, 정보 처리 컨트롤러, 메인 프로세서 Information processing unit, information processing controller, main processor
Description
도 1은 본 발명의 네트워크 시스템의 일례를 나타내는 도면이다.1 is a diagram illustrating an example of a network system of the present invention.
도 2는 본 발명의 정보 처리 장치가 구비하는 정보 처리 컨트롤러의 설명에 제공하는 도면이다.It is a figure used for description of the information processing controller with which the information processing apparatus of this invention is equipped.
도 3은 소프트웨어 셀의 일례를 나타내는 도면이다.3 is a diagram illustrating an example of a software cell.
도 4는 DMA 커맨드가 스테이터스 회신 커맨드인 경우의 소프트웨어 셀의 데이터 영역을 도시하는 도면이다.4 is a diagram showing a data area of a software cell when the DMA command is a status return command.
도 5는 복수의 정보 처리 장치가 가상적인 1대의 정보 처리 장치로서 동작하는 모양을 도시하는 도면이다.5 is a diagram showing how a plurality of information processing apparatuses operate as one virtual information processing apparatus.
도 6은 정보 처리 컨트롤러의 소프트웨어 구성의 일례를 나타내는 도면이다.6 is a diagram illustrating an example of a software configuration of the information processing controller.
도 7은 4대의 정보 처리 장치가 가상적인 1대의 정보 처리 장치로서 동작하는 모양을 도시하는 도면이다.7 is a diagram showing how four information processing apparatuses operate as one virtual information processing apparatus.
도 8은 도 7의 시스템에 있어서의 분산 처리의 예를 나타내는 도면이다.FIG. 8 is a diagram illustrating an example of distributed processing in the system of FIG. 7.
도 9는 각 정보 처리 장치 및 시스템의 구체예를 도시하는 도면이다.9 is a diagram illustrating a specific example of each information processing apparatus and system.
도 10은 도 9에 있어서의 하드디스크 레코더의 하드웨어 구성을 나타내는 도면이다.FIG. 10 is a diagram illustrating a hardware configuration of the hard disk recorder in FIG. 9.
도 11은 도 9에 있어서의 하드디스크 레코더의 소프트웨어 구성을 나타내는 도면이다.FIG. 11 is a diagram showing the software configuration of the hard disk recorder in FIG.
도 12는 도 9에 있어서의 PDA의 하드웨어 구성을 나타내는 도면이다.12 is a diagram illustrating a hardware configuration of the PDA in FIG. 9.
도 13은 도 9에 있어서의 PDA의 소프트웨어 구성을 나타내는 도면이다.FIG. 13 is a diagram showing the software configuration of the PDA in FIG.
도 14는 도 9에 있어서의 포터블 CD 플레이어의 하드웨어 구성을 나타내는 도면이다.FIG. 14 is a diagram illustrating a hardware configuration of the portable CD player in FIG. 9.
도 15는 도 9에 있어서의 포터블 CD 플레이어의 소프트웨어 구성을 나타내는 도면이다.FIG. 15 is a diagram showing the software configuration of the portable CD player in FIG.
도 16은 본 발명의 네트워크 시스템의 다른 예를 나타내는 도면이다.16 is a diagram illustrating another example of the network system of the present invention.
도 17은 본 발명의 정보 처리 장치가 구비하는 정보 처리 컨트롤러의 설명에 제공하는 도면이다.It is a figure used for description of the information processing controller with which the information processing apparatus of this invention is equipped.
도 18은 DMAC의 내부 구조를 나타내는 도면이다.18 is a diagram illustrating an internal structure of a DMAC.
도 19는 정보 처리 장치내의 커맨드/레스펀스 구조를 나타내는 도면이다.19 is a diagram showing a command / response structure in the information processing apparatus.
도 20은 서브 프로세서가 메인 메모리에 액세스할 때의 순서를 나타내는 도면이다.20 is a diagram illustrating a sequence when the subprocessor accesses the main memory.
도 21은 워크 메모리의 내부 구조를 나타내는 도면이다.21 is a diagram illustrating an internal structure of the work memory.
도 22는 서브 프로세서의 내부 구조를 나타내는 도면이다.22 is a diagram illustrating an internal structure of a subprocessor.
도 23은 컨트롤 레지스터의 내부 구조를 나타내는 도면이다.Fig. 23 shows the internal structure of a control register.
도 24는 복수의 정보 처리 장치가 가상적인 1대의 정보 처리 장치로서 동작하는 모양을 나타내는 도면이다.It is a figure which shows the state in which several information processing apparatuses operate as one virtual information processing apparatus.
도 25는 4대의 정보 처리 장치가 가상적인 1대의 정보 처리 장치로서 동작하는 모양을 나타내는 도면이다.FIG. 25 is a diagram showing how four information processing apparatuses operate as one virtual information processing apparatus. FIG.
도 26은 도 25의 시스템에 있어서의 분산 처리의 예를 나타내는 도면이다.FIG. 26 is a diagram illustrating an example of distributed processing in the system of FIG. 25.
도 27은 각 정보 처리 장치 및 시스템의 구체예를 나타내는 도면이다.27 is a diagram illustrating a specific example of each information processing apparatus and system.
도 28은 도 27에 있어서의 하드디스크 레코더의 하드웨어 구성을 나타내는 도면이다.FIG. 28 is a diagram showing the hardware configuration of the hard disk recorder in FIG.
도 29는 도 27에 있어서의 하드디스크 레코더의 소프트웨어 구성을 나타내는 도면이다.FIG. 29 is a diagram showing the software configuration of the hard disk recorder in FIG.
도 30은 도 27에 있어서의 PDA의 하드웨어 구성을 나타내는 도면이다.30 is a diagram illustrating a hardware configuration of the PDA in FIG. 27.
도 31은 도 27에 있어서의 PDA의 소프트웨어 구성을 나타내는 도면이다.FIG. 31 is a diagram showing the software configuration of the PDA in FIG.
도 32는 도 27에 있어서의 포터블 CD 플레이어의 하드웨어 구성을 나타내는 도면이다.32 is a diagram illustrating a hardware configuration of the portable CD player in FIG. 27.
도 33은 도 27에 있어서의 포터블 CD 플레이어의 소프트웨어 구성을 나타내는 도면이다.33 is a view showing the software configuration of the portable CD player in FIG. 27.
도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings
9 : 네트워크 9: network
1, 2, 3 및 4 : 정보 처리 장치1, 2, 3 and 4: information processing unit
11 : 정보 처리 컨트롤러11: information processing controller
21-1 : 메인 프로세서21-1: main processor
23-1, 23-2, 23-3 : 서브 프로세서23-1, 23-2, 23-3: Subprocessor
25-1 : DMAC(다이렉트 메모리 액세스 컨트롤러25-1: DMAC (Direct Memory Access Controller)
27-1 : 디스크 컨트롤러27-1: Disk Controller
[특허 문헌1] 일본 특허 공개공보 제 2002-342165호[Patent Document 1] Japanese Patent Laid-Open No. 2002-342165
[특허 문헌2] 일본 특허 공개공보 제 2002-351850호 공보[Patent Document 2] Japanese Patent Laid-Open No. 2002-351850
[특허 문헌3] 일본 특허 공개공보 제 2002-358289호 공보[Patent Document 3] Japanese Patent Application Laid-Open No. 2002-358289
[특허 문헌4] 일본 특허 공개공보 제 2002-366533호 공보[Patent Document 4] Japanese Patent Application Laid-Open No. 2002-366533
[특허 문헌5] 일본 특허 공개공보 제 2002-366534호 공보[Patent Document 5] Japanese Patent Application Laid-Open No. 2002-366534
[특허 문헌6] 미국 특허 6,587,906[Patent Document 6] US Patent 6,587,906
[특허 문헌7] 미국 특허 6,667,920[Patent Document 7] US Patent 6,667,920
[특허 문헌8] 미국 특허 6,728,845[Patent Document 8] US Patent 6,728,845
[특허 문헌9] 미국 특허공개 2004-0039895[Patent Document 9] US Patent Publication 2004-0039895
[특허 문헌10] 미국 특허공개 2004-0054880[Patent Document 10] US Patent Publication 2004-0054880
[특허 문헌11] 미국 특허공개 2004-0098496[Patent Document 11] US Patent Publication 2004-0098496
본 발명은, 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템 및 정보 처 리용 컴퓨터 프로그램에 관한 것이다.The present invention relates to an information processing apparatus, an information processing method, an information processing system, and a computer program for information processing.
최근, 그리드·컴퓨팅이 주목받고 있다. 그리드·컴퓨팅이란, 네트워크에 접속된 복수의 정보 처리 장치를 협조 동작시켜, 높은 연산 성능을 실현하는 기술이다.In recent years, grid computing has attracted attention. Grid computing is a technique for cooperatively operating a plurality of information processing apparatuses connected to a network to realize high computational performance.
예를 들면, 특허 문헌1(일본 특허 공개공보 제 2002-342165호), 특허 문헌2(일본 특허 공개공보 제 2002-351850호), 특허 문헌3(일본 특허 공개공보 제 2002-358289호), 특허 문헌4(일본 특허 공개공보 제 2002-366533호) 및 특허 문헌5(일본 특허 공개공보 제 2002-366534호)에는, 균일한 모듈러 구조, 공통의 컴퓨팅·모듈, 및 균일한 소프트웨어 셀을 이용함으로써, 고속 처리용 컴퓨터·아키텍처를 실현하는 것이 개시되어 있다.For example, Patent Document 1 (Japanese Patent Laid-Open Publication No. 2002-342165), Patent Document 2 (Japanese Patent Laid-Open Publication No. 2002-351850), Patent Document 3 (Japanese Patent Laid-Open Publication No. 2002-358289), Patent In Document 4 (Japanese Patent Laid-Open Publication No. 2002-366533) and Patent Document 5 (Japanese Patent Laid-Open Publication No. 2002-366534), by using a uniform modular structure, a common computing module, and a uniform software cell, It is disclosed to realize a computer architecture for high speed processing.
또한, 특허 문헌6(미국 특허 6,587,906), 특허 문헌7(미국 특허 6,667,920), 특허 문헌8(미국 특허 6,728,845), 특허 문헌9(미국 특허공개 2004-0039895), 특허 문헌10(미국 특허공개 2004-0054880) 및 특허 문헌11(미국 특허공개 2004-0098496)에는, 정보 처리 장치내에 복수개 존재하는 프로세서를 독립·병렬로 동작시킴으로써, 처리를 고속화시키는 것이 개시되어 있다.In addition, Patent Document 6 (US Patent 6,587,906), Patent Document 7 (US Patent 6,667,920), Patent Document 8 (US Patent 6,728,845), Patent Document 9 (US Patent Publication 2004-0039895), Patent Document 10 (US Patent Publication 2004- 0054880 and Patent Document 11 (U.S. Patent Application Publication No. 2004-0098496) disclose speeding up a process by operating a plurality of processors in an information processing apparatus independently and in parallel.
그러나, 네트워크를 통하여 복수의 정보 처리 장치가 접속된 네트워크 시스템에 있어서, 사용자의 해당 네트워크 시스템에 대한 조작에 대응한 처리를, 네트워크 시스템 전체에서 분산적으로 실행하기 위해서는, 각각의 정보 처리 장치, 또는 네트워크 시스템을 관리하는 정보 처리 장치가, 다른 정보 처리 장치의 동작 상황을 파악하고 있을 필요가 있다.However, in a network system in which a plurality of information processing apparatuses are connected via a network, each information processing apparatus or, in order to execute a process corresponding to an operation of the user's network system in a distributed manner throughout the network system, or It is necessary for the information processing apparatus which manages a network system to grasp | ascertain the operation state of another information processing apparatus.
따라서, 본 발명은, 네트워크를 통하여 접속된 복수의 정보 처리 장치 사이에서, 이와 같은 분산 처리를 확실하고 또한 효과적으로 행할 수 있도록 한 것이다.Therefore, this invention makes it possible to reliably and effectively perform such distributed processing among a plurality of information processing apparatuses connected via a network.
본 발명의 정보 처리 장치는, 네트워크를 통하여 다른 정보 처리 장치와 접속되고, 소정의 커맨드에 따라서 정보 처리를 행하는 정보 처리 장치에 있어서, 상기 다른 정보 처리장치로부터 동작 상태에 관한 정보를 수집하여, 장치 정보 테이블을 작성하는 능력 교환 수단과, 상기 커맨드가 발생했을 때, 해당 커맨드의 실행에 필요한 자원에 관한 정보와, 상기 장치 정보 테이블의 동작 상태에 관한 정보를 비교하여, 해당 커맨드가 실행 가능한 정보 처리 장치를 특정하는 장치 특정 수단을 구비하는 것을 특징으로 한다.An information processing apparatus of the present invention is connected to another information processing apparatus via a network, and performs information processing in accordance with a predetermined command, wherein the information processing apparatus collects information on an operation state from the other information processing apparatus. Information processing that can execute the command by comparing the capability exchange means for creating the information table with the information on the resources required for the execution of the command when the command is generated and the information on the operation state of the device information table. And device specifying means for specifying the device.
상기의 구성의, 본 발명의 정보 처리 장치에서는, 이것이 네트워크를 통하여 다른 정보 처리 장치와 접속된 경우, 다른 정보 처리장치로부터, 그 동작 상태에 관한 정보를 수집하여 장치 정보 테이블을 작성하고, 소정의 커맨드가 발생했을 때에는, 해당 커맨드의 실행에 필요한 자원에 관한 정보와, 장치 정보 테이블의 동작 상태에 관한 정보를 비교하여, 해당 커맨드를 실행 가능한 정보 처리 장치를 특정하기 때문에, 복수의 정보 처리 장치 사이에서 분산 처리가 확실하고 또한 효과적으로 실행된다.In the information processing apparatus of the present invention having the above configuration, when this is connected to another information processing apparatus via a network, information about the operation state is collected from the other information processing apparatus to create an apparatus information table, and the predetermined When a command is generated, the information on the resources required for the execution of the command is compared with the information on the operation state of the device information table, so that the information processing device capable of executing the command is identified. In the distributed processing is surely and effectively executed.
[1. 네트워크 시스템 및 정보 처리 장치의 기본적 구성 : 파트 1][One. Basic configuration of network systems and information processing devices: Part 1]
도 1은, 본 발명의 네트워크 시스템의 일례를 나타내고, 네트워크(9)를 통하여 복수의 정보 처리 장치(1, 2, 3 및 4)가 접속된 것이다.1 shows an example of the network system of the present invention, in which a plurality of
(1-1. 정보 처리 장치 및 정보 처리 컨트롤러)(1-1.Information Processing Unit and Information Processing Controller)
정보 처리 장치(1, 2, 3 및 4)는, 각각 후술하는 바와 같은 각종의 AV(Audio and Visual) 기기나 포터블 기기이다.The
정보 처리 장치(1)에 대하여 나타내면, 정보 처리 장치(1)는, 컴퓨터 기능부로서 정보 처리 컨트롤러(11)를 구비한다. 정보 처리 컨트롤러(11)는, 메인 프로세서(21-1), 서브 프로세서(23-1, 23-2 및 23-3), DMAC(다이렉트 메모리 액세스 컨트롤러)(25-1), 및 DC(디스크 컨트롤러)(27-1)를 갖는다.Referring to the
메인 프로세서(21-1)는, 서브 프로세서(23-1, 23-2 및 23-3)에 의한 서브 프로세서 프로그램의 실행(데이터 처리)의 스케줄 관리와, 정보 처리 컨트롤러(11)(정보 처리 장치(1))의 전반적인 관리를 행한다. 단, 메인 프로세서(21-1)내에서 관리를 위한 프로그램 이외의 프로그램이 동작하도록 구성할 수도 있다. 그 경우에는, 메인 프로세서(21-1)는 서브 프로세서로서도 기능하게 된다. 메인 프로세서(21-1)는, LS(로컬 스토리지)(22-1)를 갖는다.The main processor 21-1 includes schedule management of execution (data processing) of the subprocessor programs by the subprocessors 23-1, 23-2, and 23-3, and the information processing controller 11 (information processing device). General management of (1)) is performed. However, in the main processor 21-1, a program other than the program for management can also be configured to operate. In that case, the main processor 21-1 also functions as a subprocessor. The main processor 21-1 has an LS (local storage) 22-1.
서브 프로세서는, 1개이어도 무방하지만, 바람직하게는 복수로 한다. 이 예는, 복수인 경우이다.Although one subprocessor may be sufficient, Preferably it is multiple. This example is the case of plural numbers.
각 서브 프로세서(23-1, 23-2 및 23-3)는, 메인 프로세서(21-1)의 제어에 의해 병렬적 그리고 독립적으로, 서브 프로세서 프로그램을 실행하여, 데이터를 처리한다. 또한, 경우에 따라서 메인 프로세서(21-1)내의 프로그램이 서브 프로세서 (23-1, 23-2 또는 23-3)내의 서브 프로세서 프로그램과 제휴하여 동작하도록 구성할 수도 있다. 후술하는 기능 프로그램도 메인 프로세서(21-1)내에서 동작하는 프로그램이다. 각 서브 프로세서(23-1, 23-2 및 23-3)도, LS(로컬 스토리지)(24-1, 24-2 및 24-3)를 갖는다.Each of the subprocessors 23-1, 23-2, and 23-3 executes the subprocessor program in parallel and independently under the control of the main processor 21-1 to process data. In some cases, the program in the main processor 21-1 may be configured to operate in cooperation with the subprocessor program in the subprocessors 23-1, 23-2 or 23-3. The functional program described later is also a program operating in the main processor 21-1. Each subprocessor 23-1, 23-2 and 23-3 also has LS (local storage) 24-1, 24-2 and 24-3.
DMAC(25-1)는, 정보 처리 컨트롤러(11)에 접속된 DRAM(다이내믹 RAM) 등으로 이루어지는 메인 메모리(26-1)에 저장되어 있는 프로그램 및 데이터에 액세스하는 것이고, DC(27-1)는, 정보 처리 컨트롤러(11)에 접속된 외부 메모리부(28-1 및 28-2)에 액세스하는 것이다.The DMAC 25-1 accesses programs and data stored in the main memory 26-1 made of DRAM (dynamic RAM) or the like connected to the
외부 메모리부(28-1 및 28-2)는, 고정 디스크(하드디스크)이어도, 분해 가능 디스크이어도 무방하고, 또한 MO, CD±RW, DVD±RW 등의 광 디스크, 메모리 디스크, SRAM(스태틱 RAM), ROM 등, 각종의 것을 이용할 수 있다. 따라서, DC(27-1)는, 디스크 컨트롤러라고 칭하지만, 외부 메모리부 컨트롤러이다.The external memory units 28-1 and 28-2 may be fixed disks (hard disks) or removable disks, and optical disks such as MO, CD ± RW, DVD ± RW, memory disks, and SRAM (static). Various things, such as RAM) and ROM, can be used. Therefore, the DC 27-1 is called a disk controller, but is an external memory unit controller.
도 1의 예와 같이, 정보 처리 컨트롤러(11)에 대하여 외부 메모리부(28)를 복수 접속할 수 있도록, 정보 처리 컨트롤러(11)를 구성할 수 있다.As in the example of FIG. 1, the
메인 프로세서(21-1), 각 서브 프로세서(23-1, 23-2 및 23-3), DMAC(25-1), 및 DC(27-1)는, 버스(29-1)에 의해 접속된다.The main processor 21-1, each of the subprocessors 23-1, 23-2, and 23-3, the DMAC 25-1, and the DC 27-1 are connected by the bus 29-1. do.
정보 처리 컨트롤러(11)에는, 해당 정보 처리 컨트롤러(11)를 구비하는 정보 처리 장치(1)를 네트워크 전체를 통하여 일의적으로 식별할 수 있는 식별자가, 정보 처리 장치 ID로서 할당된다.The
메인 프로세서(21-1), 및 각 서브 프로세서(23-1, 23-2 및 23-3)에 대해서도 마찬가지로, 각각을 특정할 수 있는 식별자가, 메인 프로세서 ID 및 서브 프로세서 ID로서 할당된다.Similarly, for the main processor 21-1 and each of the subprocessors 23-1, 23-2, and 23-3, identifiers that can be specified are assigned as the main processor ID and the subprocessor ID.
정보 처리 컨트롤러(11)는, 원 칩 IC(집적 회로)로서 구성하는 것이 바람직하다.It is preferable to configure the
다른 정보 처리 장치(2, 3 및 4)도 마찬가지로 구성된다. 여기서, 페어런트 번호가 동일한 유닛은, 브랜치 번호가 상이하더라도, 특히 특기사항이 없는 한, 동일한 기능을 하는 것으로 한다. 또한, 이하의 설명에 있어서 브랜치 번호가 생략되어 있는 경우에는, 브랜치 번호의 상이에 의한 차이를 발생하지 않는 것으로 한다.The other
(1-2. 각 서브 프로세서로부터 메인 메모리에의 액세스)(1-2. Access to main memory from each subprocessor)
전술한 바와 같이, 1개의 정보 처리 컨트롤러내의 각 서브 프로세서(23)는, 독립적으로 서브 프로세서 프로그램을 실행하여, 데이터를 처리하지만, 상이한 서브 프로세서가 메인 메모리(26)내의 동일 영역에 대하여 동시에 판독 또는 기입을 행한 경우에는, 데이터의 부정합을 발생시킬 수 있다. 따라서, 서브 프로세서(23)로부터 메인 메모리(26)에의 액세스는, 이하와 같은 순서에 의해 행한다.As described above, each subprocessor 23 in one information processing controller independently executes a subprocessor program to process data, but different subprocessors simultaneously read or read the same area in the
도 2a에 나타내는 바와 같이, 메인 메모리(26)는, 어드레스 지정 가능한 복수의 메모리 로케이션 0∼M에 의해 구성된다. 각 메모리 로케이션에 대해서는, 데이터의 상태를 나타내는 정보를 저장하기 위한 추가 세그먼트 0∼M이 할당된다. 추가 세그먼트는, F/E 비트, 서브 프로세서 ID 및 LS 어드레스(로컬 스토리지 어드레스)를 포함하는 것으로 된다. 또한, 각 메모리 로케이션에는, 후술하는 액세스 키 0∼M도 할당된다. F/E 비트는, 이하와 같이 정의된다.As shown in FIG. 2A, the
F/E 비트=0은, 서브 프로세서(23)에 의해 판독되고 있는 처리중의 데이터, 또는 공백 상태이기 때문에 최신 데이터가 아닌 무효 데이터이고, 판독 불가인 것을 나타낸다. 또한, F/E 비트=0은, 해당 메모리 로케이션에 데이터 기입 가능한 것을 나타내고, 기입 후에 1로 설정된다.The F / E bit = 0 indicates that data is being processed by the
F/E 비트=1은, 해당 메모리 로케이션의 데이터가 서브 프로세서(23)에 의해 판독되지 않고, 미 처리의 최신 데이터인 것을 나타낸다. 해당 메모리 로케이션의 데이터는 판독 가능하고, 서브 프로세서(23)에 의해 판독된 후에 0으로 설정된다. 또한, F/E 비트=1은, 해당 메모리 로케이션이 데이터 기입 불가인 것을 나타낸다.F / E bit = 1 indicates that the data of the corresponding memory location is not read by the
또한, 상기 F/E 비트=0(판독 불가/기입 가)의 상태에 있어서, 해당 메모리 로케이션에 대하여 판독 예약을 설정하는 것은 가능하다. F/E 비트=0의 메모리 로케이션에 대하여 판독 예약을 행하는 경우에는, 서브 프로세서(23)는, 판독 예약을 행하는 메모리 로케이션의 추가 세그먼트에, 판독 예약 정보로서 해당 서브 프로세서(23)의 서브 프로세서 ID 및 LS 어드레스를 기입한다.Further, in the state of the F / E bit = 0 (non-read / write value), it is possible to set a read reservation for the memory location. When a read reservation is made to a memory location of F / E bit = 0, the
그 후, 데이터 기입측의 서브 프로세서(23)에 의해, 판독 예약된 메모리 로케이션에 데이터가 기입되어, F/E 비트=1(판독 가/기입 불가)로 설정되었을 때, 미리 판독 예약 정보로서 추가 세그먼트에 기입된 서브 프로세서 ID 및 LS 어드레스에 판독된다.Subsequently, when the data is written to the memory location reserved for reading by the sub-processor 23 on the data writing side, and is set to F / E bit = 1 (read / write impossible), it is added as read reservation information in advance. The subprocessor ID written in the segment and the LS address are read.
복수의 서브 프로세서에 의해 데이터를 다단계로 처리할 필요가 있을 경우, 이와 같이 각 메모리 로케이션의 데이터의 판독/기입을 제어함으로써, 전 단계의 처리를 행하는 서브 프로세서(23)가, 처리완료 데이터를 메인 메모리(26)내의 소정 어드레스에 기입한 후에 곧 바로, 후 단계의 처리를 행하는 별도의 서브 프로세서(23)가 전 처리후의 데이터를 판독하는 것이 가능하게 된다.When data needs to be processed in multiple stages by a plurality of sub-processors, the sub-processor 23 which performs the previous stage of processing by the sub-processor 23 performing the previous stages is controlled by controlling the read / write of the data of each memory location. Immediately after writing to a predetermined address in the
도 2b에 나타내는 바와 같이, 각 서브 프로세서(23)내의 LS(24)도, 어드레스 지정 가능한 복수의 메모리 로케이션 0∼L에 의해 구성된다. 각 메모리 로케이션에 대해서는, 마찬가지로 추가 세그먼트 0∼L이 할당된다. 추가 세그먼트는, 비지 비트를 포함하는 것으로 된다.As shown in FIG. 2B, the LS 24 in each subprocessor 23 is also composed of a plurality of
서브 프로세서(23)가 메인 메모리(26)내의 데이터를 자신의 LS(24)의 메모리 로케이션에 판독할 때에는, 판독처의 메모리 로케이션에 대응하는 비지 비트를 1로 설정하여 예약한다. 비지 비트가 1인 메모리 로케이션에는, 다른 데이터는 저장할 수 없다. LS(24)의 메모리 로케이션에 판독 후, 비지 비트는 0으로 되고, 임의의 목적으로 사용할 수 있게 된다.When the
도 2a에 나타내는 바와 같이, 또한 각 정보 처리 컨트롤러와 접속된 메인 메모리(26)에는, 복수의 샌드 박스가 포함된다. 샌드 박스는, 메인 메모리(26)내의 영역을 획정하는 것으로, 각 샌드 박스는, 각 서브 프로세서(23)에 할당되고, 그 서브 프로세서를 배타적으로 사용할 수 있다. 즉, 각각의 서브 프로세서(23)는, 자신에게 할당된 샌드 박스를 사용할 수 있지만, 이 영역을 넘어 데이터의 액세스를 행할 수는 없다.As shown in FIG. 2A, the
메인 메모리(26)는, 복수의 메모리 로케이션으로 구성되지만, 샌드 박스는, 이들의 메모리 로케이션의 집합이다. The
또한, 메인 메모리(26)가 배타적인 제어를 실현하기 위해, 도 2c에 나타내는 바와 같은 키 관리 테이블이 이용된다. 키 관리 테이블은, 정보 처리 컨트롤러내의 SRAM과 같은 비교적 고속의 메모리에 저장되고, DMAC(25)와 관련지어진다.In addition, in order for the
키 관리 테이블 내에는, 정보 처리 컨트롤러 내의 서브 프로세서의 수와 동수의 엔트리가 존재하고, 각 엔트리에는, 서브 프로세서 ID 및, 그것에 대응하는 서브 프로세서 키 및 키 마스크가 관련지어져서 저장된다.In the key management table, there is an entry equal to the number of subprocessors in the information processing controller, and each entry is stored in association with the subprocessor ID, the subprocessor key and the key mask corresponding thereto.
서브 프로세서(23)가 메인 메모리(26)를 사용할 때의 프로세스는, 이하와 같다. 우선, 서브 프로세서(23)는 DMAC(25)에, 판독 또는 기입의 커맨드를 송신한다. 이 커맨드에는, 자신의 서브 프로세서 ID와, 액세스 요구처인 메인 메모리(26)의 어드레스가 포함된다.The process when the
DMAC(25)는, 이 커맨드를 실행하기 전에, 키 관리 테이블을 참조하여, 액세스 요구원의 서브 프로세서(23)의 서브 프로세서 키를 조사한다. 다음으로, DMAC(25)는, 조사한 액세스 요구원의 서브 프로세서 키와, 액세스 요구처인 메인 메모리(26) 내의 도 2a에 나타낸 메모리 로케이션에 할당된 액세스 키를 비교하여, 2개의 키가 일치한 경우에만, 상기의 커맨드를 실행한다.The DMAC 25 checks the subprocessor key of the
도 2c에 나타낸 키 관리 테이블상의 키 마스크는, 그 임의의 비트가 1로 됨에 의해, 그 키 마스크에 관련지어진 서브 프로세서 키의 대응하는 비트가 0 또는 1로 될 수 있다.In the key mask on the key management table shown in Fig. 2C, the arbitrary bit becomes 1, so that the corresponding bit of the subprocessor key associated with the key mask can be 0 or 1.
예를 들면, 서브 프로세서 키가 1010이라고 하자. 통상적으로, 이 서브 프로세서 키에 의해 1010의 액세스 키를 갖는 샌드 박스에의 액세스만이 가능하게 된 다. 그러나, 이 서브 프로세서 키와 관련지어진 키 마스크가 0001로 설정되어 있는 경우에는, 키 마스크의 비트가 1로 설정된 자릿수에 대해서만, 서브 프로세서 키와 액세스 키와의 일치 판정이 마스크되고, 이 서브 프로세서 키 1010에 의해, 액세스 키가 1010 또는 1011 중 어느 하나인 액세스 키를 갖는 샌드 박스에의 액세스가 가능하게 된다.For example, suppose the subprocessor key is 1010. Typically, this subprocessor key only allows access to a sandbox with an access key of 1010. However, when the key mask associated with this subprocessor key is set to 0001, only the number of digits in which the bit of the key mask is set to 1 is matched with the subprocessor key and the access key, and this subprocessor key is masked. The 1010 enables access to a sandbox having an access key whose access key is either 1010 or 1011.
이상과 같이 하여, 메인 메모리(26)의 샌드 박스의 배타성이 실현된다. 즉, 1개의 정보 처리 컨트롤러 내의 복수의 서브 프로세서에 의해 데이터를 다단계로 처리할 필요가 있는 경우, 이상과 같이 구성함으로써, 전 단계의 처리를 행하는 서브 프로세서와, 후 단계의 처리를 행하는 서브 프로세서만이, 메인 메모리(26)의 소정 어드레스에 액세스할 수 있도록 되어, 데이터를 보호할 수 있다.As described above, the exclusivity of the sandbox of the
예를 들면, 이하와 같이 사용하는 것이 고려된다. 우선, 정보 처리 장치의 기동 직후에는, 키 마스크의 값은 모두 제로이다. 메인 프로세서 내의 프로그램이 실행되어, 서브 프로세서 내의 서브 프로세서 프로그램과 제휴 동작하는 것으로 한다. 제1 서브 프로세서에 의해 실행된 처리 결과 데이터를 일단, 메인 메모리(26)에 저장하고, 제2 서브 프로세서에 송신하고자 할 때에는, 해당하는 메인 메모리 영역은, 당연히 어느 쪽의 서브 프로세서로부터도 액세스 가능해야 한다. 그와 같은 경우에, 메인 프로세서 내의 프로그램은, 키 마스크의 값을 적절히 변경하여, 복수의 서브 프로세서로부터 액세스할 수 있는 메인 메모리 영역을 마련함으로써, 서브 프로세서에 의한 다단계적인 처리를 가능하게 한다.For example, use as follows is considered. First, immediately after the start of the information processing apparatus, the values of the key masks are all zero. It is assumed that a program in the main processor is executed to cooperate with the subprocessor program in the subprocessor. When the processing result data executed by the first subprocessor is to be stored in the
보다 구체적으로는, 다른 정보 처리장치로부터의 데이터→제1 서브 프로세서 에 의한 처리→제1 메인 메모리 영역→제2 서브 프로세서에 의한 처리→제2 메인 메모리 영역이라고 하는 순서로 다단계 처리가 행해질 때에는, More specifically, when the multi-step process is performed in the order of data from another information processing apparatus → processing by the first subprocessor → processing by the first sub memory → processing by the second sub processor → second main memory area,
제1 서브 프로세서의 서브 프로세서 키 : 0100, Subprocessor key of the first subprocessor: 0100,
제1 메인 메모리 영역의 액세스 키 : 0100, Access key of the first main memory area: 0100,
제2 서브 프로세서의 서브 프로세서 키 : 0101, Subprocessor key of the second subprocessor: 0101,
제2 메인 메모리 영역의 액세스 키 : 0101, Access key of the second main memory area: 0101,
과 같은 설정대로라면, 제2 서브 프로세서는 제1 메인 메모리 영역에 액세스할 수 없다. 따라서, 제2 서브 프로세서의 키 마스크를 0001로 함으로써, 제2 서브 프로세서에 의한 제1 메인 메모리 영역에의 액세스를 가능하게 할 수 있다.As described above, the second subprocessor cannot access the first main memory area. Therefore, by setting the key mask of the second subprocessor to 0001, it is possible to enable access to the first main memory area by the second subprocessor.
(1-3. 소프트웨어 셀의 생성 및 구성)(1-3. Creating and Configuring Software Cells)
도 1의 네트워크 시스템에서는, 정보 처리 장치(1, 2, 3 및 4) 사이에서의 분산 처리를 위해, 정보 처리 장치(1, 2, 3 및 4) 사이에서 소프트웨어 셀이 전송된다. 즉, 임의의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)는, 커맨드, 프로그램 및 데이터를 포함하는 소프트웨어 셀을 생성하여, 네트워크(9)를 통하여 다른 정보 처리 장치에 송신함으로써, 처리를 분산할 수 있다.In the network system of FIG. 1, software cells are transmitted between the
도 3에, 소프트웨어 셀의 구성의 일례를 나타낸다. 이 예의 소프트웨어 셀은, 전체적으로, 송신원 ID, 송신처 ID, 응답처 ID, 셀 인터페이스, DMA 커맨드, 프로그램, 및 데이터에 의해 구성된다.3 shows an example of the configuration of the software cell. The software cell of this example is entirely composed of a transmission source ID, a transmission destination ID, a response destination ID, a cell interface, a DMA command, a program, and data.
송신원 ID에는, 소프트웨어 셀의 송신원인 정보 처리 장치의 네트워크 어드 레스 및 정보 처리 장치 ID, 또한 그 정보 처리 장치내의 정보 처리 컨트롤러가 구비하는 메인 프로세서(21) 및 각 서브 프로세서(23)의 식별자(메인 프로세서 ID 및 서브 프로세서 ID)가 포함된다.In the transmission source ID, the network address and information processing device ID of the information processing device which is the transmission source of the software cell, and the identifier of the main processor 21 and each subprocessor 23 included in the information processing controller in the information processing device (main Processor ID and subprocessor ID).
송신처 ID 및 응답처 ID에는, 각각 소프트웨어 셀의 송신처인 정보 처리 장치, 및 소프트웨어 셀의 실행 결과의 응답처인 정보 처리 장치에 대한, 동일한 정보가 포함된다.The transmission destination ID and the response destination ID each include the same information about the information processing device that is the destination of the software cell and the information processing device that is the destination of the execution result of the software cell.
셀 인터페이스는, 소프트웨어 셀의 이용에 필요한 정보로서, 글로벌 ID, 필요한 서브 프로세서의 정보, 샌드 박스 사이즈, 및 전회의 소프트웨어 셀 ID로 구성된다.The cell interface is information required for use of the software cell, and is composed of a global ID, information of a necessary subprocessor, a sandbox size, and a previous software cell ID.
글로벌 ID는, 네트워크 전체를 통하여 해당 소프트웨어 셀을 일의적으로 식별할 수 있는 것으로, 송신원 ID, 및 소프트웨어 셀의 작성 또는 송신의 일시(날짜 및 시각)에 기초하여 작성된다.The global ID can uniquely identify the corresponding software cell throughout the network, and is created based on the source ID and the date and time (date and time) of the creation or transmission of the software cell.
필요한 서브 프로세서의 정보는, 해당 소프트웨어 셀의 실행에 필요한 서브 프로세서의 수가 설정된다. 샌드 박스 사이즈는, 해당 소프트웨어 셀의 실행에 필요한 메인 메모리(26)내 및 서브 프로세서(23)의 LS(24)내의 메모리량이 설정된다.The number of subprocessors required is set to the number of subprocessors required for the execution of the software cell. The sandbox size is set in the amount of memory in the
전회의 소프트웨어 셀 ID는, 스트리밍 데이터 등의 순차적인 실행을 요구하는 1 그룹의 소프트웨어 셀 내의, 전회의 소프트웨어 셀의 식별자이다.The last software cell ID is an identifier of the previous software cell in a group of software cells that require sequential execution of streaming data or the like.
소프트웨어 셀의 실행 섹션은, DMA 커맨드, 프로그램 및 데이터로 구성된다. DMA 커맨드에는, 프로그램의 기동에 필요한 일련의 DMA 커맨드가 포함되고, 프로그램에는, 서브 프로세서(23)에 의해 실행되는 서브 프로세서 프로그램이 포함된다. 여기서의 데이터는, 이 서브 프로세서 프로그램을 포함하는 프로그램에 의해 처리되는 데이터이다.The execution section of the software cell is composed of DMA commands, programs and data. The DMA command includes a series of DMA commands necessary for starting the program, and the program includes a subprocessor program executed by the
또한, DMA 커맨드에는, 로딩 커맨드, 킥 커맨드, 기능 프로그램 실행 커맨드, 스테이터스 요구 커맨드, 및 스테이터스 회신 커맨드가 포함된다.The DMA command also includes a loading command, a kick command, a function program execution command, a status request command, and a status reply command.
로딩 커맨드는, 메인 메모리(26)내의 정보를 서브 프로세서(23)내의 LS(24)에 로딩하는 커맨드이고, 로딩 커맨드 자체 이외에, 메인 메모리 어드레스, 서브 프로세서 ID 및 LS 어드레스를 포함한다. 메인 메모리 어드레스는, 정보의 로딩원인 메인 메모리(26)내의 소정 영역의 어드레스를 나타낸다. 서브 프로세서 ID 및 LS 어드레스는, 정보의 로딩처인 서브 프로세서(23)의 식별자 및 LS(24)의 어드레스를 나타낸다.The loading command is a command for loading information in the
킥 커맨드는, 서브 프로세서 프로그램의 실행을 개시하는 커맨드이고, 킥 커맨드 자체 이외에, 서브 프로세서 ID 및 프로그램 카운터를 포함한다. 서브 프로세서 ID는, 킥 대상의 서브 프로세서(23)를 식별하고, 프로그램 카운터는, 서브 프로세서 프로그램 실행용 프로그램 카운터를 위한 어드레스를 부여한다.The kick command is a command for starting execution of a subprocessor program and includes, in addition to the kick command itself, a subprocessor ID and a program counter. The subprocessor ID identifies the
기능 프로그램 실행 커맨드는, 후술하는 바와 같이, 임의의 정보 처리 장치가 다른 정보 처리 장치에 대하여, 기능 프로그램의 실행을 요구하는 커맨드이다. 기능 프로그램 실행 커맨드를 수신한 정보 처리 장치내의 정보 처리 컨트롤러는, 후술하는 기능 프로그램 ID에 의해, 기동해야 할 기능 프로그램을 식별한다.The function program execution command is a command for which an arbitrary information processing apparatus requests execution of a function program to another information processing apparatus as described later. The information processing controller in the information processing apparatus that receives the function program execution command identifies the function program to be started by the function program ID described later.
스테이터스 요구 커맨드는, 송신처 ID에서 나타나는 정보 처리 장치의 현재의 동작 상태(상황)에 관한 장치 정보를, 응답처 ID에서 나타나는 정보 처리 장치 에 송신하는 것을 요구하는 커맨드이다. 기능 프로그램에 대해서는 후술하지만, 도 6에 나타내는 정보 처리 장치의 메인 메모리(26)가 기억하는 소프트웨어의 구성도에 있어서 기능 프로그램으로 분류되는 프로그램이다. 기능 프로그램은, 메인 메모리(26)에 로딩되어, 메인 프로세서(21)에 의해 실행된다.The status request command is a command for requesting transmission of device information relating to the current operating state (situation) of the information processing apparatus indicated by the transmission destination ID to the information processing apparatus indicated by the response destination ID. Although a functional program is mentioned later, it is a program classified as a functional program in the block diagram of the software which the
스테이터스 회신 커맨드는, 상기 스테이터스 요구 커맨드를 수신한 정보 처리 장치가, 자신의 장치 정보를 해당 스테이터스 요구 커맨드에 포함되는 응답처 ID에서 나타나는 정보 처리 장치에 응답하는 커맨드이다. 스테이터스 회신 커맨드는, 실행 섹션의 데이터 영역에 장치 정보를 저장한다.The status reply command is a command in which the information processing apparatus that has received the status request command responds to the information processing apparatus whose device information is indicated by the response destination ID included in the status request command. The status reply command stores the device information in the data area of the execution section.
도 4에, DMA 커맨드가 스테이터스 회신 커맨드인 경우의 소프트웨어 셀의 데이터 영역의 구조를 나타낸다.4 shows the structure of the data area of the software cell when the DMA command is a status return command.
정보 처리 장치 ID는, 정보 처리 컨트롤러를 구비하는 정보 처리 장치를 식별하기 위한 식별자이고, 스테이터스 회신 커맨드를 송신하는 정보 처리 장치의 ID를 나타낸다. 정보 처리 장치 ID는, 전원 투입시, 그 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)에 의해, 전원 투입시의 일시, 정보 처리 장치의 네트워크 어드레스 및 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 서브 프로세서(23)의 수 등에 기초하여 생성된다.The information processing apparatus ID is an identifier for identifying the information processing apparatus provided with the information processing controller, and represents the ID of the information processing apparatus which transmits the status reply command. When the power is turned on, the information processing device ID is set by the main processor 21 included in the information processing controller in the information processing device to the network address of the information processing device and the information processing controller in the information processing device. It is generated based on the number of
정보 처리 장치 종별 ID에는, 해당 정보 처리 장치의 특징을 나타내는 값이 포함된다. 정보 처리 장치의 특징이란, 예를 들면, 후술하는 하드디스크 레코더, PDA(Personal Digital Assistants), 포터블 CD(Compact Disc) 플레이어 등이다. 또한, 정보 처리 장치 종별 ID는, 영상 음성 기록, 영상 음성 재생 등, 정보 처리 장치의 기능을 나타내는 것이어도 무방하다. 정보 처리 장치의 특징이나 기능을 나타내는 값은 미리 결정되어 있는 것으로 하여, 정보 처리 장치 종별 ID를 판독함에 의해, 해당 정보 처리 장치의 특징이나 기능을 파악하는 것이 가능하다.The information processing apparatus type ID includes a value indicating a characteristic of the information processing apparatus. The characteristics of the information processing apparatus are, for example, a hard disk recorder, a PDA (Personal Digital Assistants), a portable CD (Compact Disc) player, and the like described later. In addition, the information processing apparatus type ID may represent the function of an information processing apparatus, such as video audio recording and video audio reproduction. The value indicating the feature or function of the information processing device is determined in advance, and the feature or function of the information processing device can be grasped by reading the information processing device type ID.
MS(마스터/슬레이브) 스테이터스는, 후술하는 바와 같이 정보 처리 장치가 마스터 장치 또는 슬레이브 장치 중 어느 것으로 동작하고 있는가를 나타내는 것으로, 이것이 0으로 설정되어 있는 경우에는 마스터 장치로서 동작하고 있는 것을 나타내고, 1로 설정되어 있는 경우에는 슬레이브 장치로서 동작하고 있는 것을 나타낸다.The MS (master / slave) status indicates whether the information processing device is operating as a master device or a slave device as described later. When this is set to 0, it indicates that it is operating as a master device. If set, this indicates that the device is operating as a slave device.
메인 프로세서 동작 주파수는, 정보 처리 컨트롤러 내의 메인 프로세서(21)의 동작 주파수를 나타낸다. 메인 프로세서 사용율은, 메인 프로세서(21)에 의해 현재 동작하고 있는 모든 프로그램에 대한, 메인 프로세서(21)에서의 사용율을 나타낸다. 메인 프로세서 사용율은, 대상 메인 프로세서의 전체 처리 능력에 대한 사용중의 처리 능력의 비율을 나타낸 값으로, 예를 들면 프로세서 처리 능력 평가를 위한 단위인 MIPS를 단위로서 산출되고, 또는 단위 시간당 프로세서 사용 시간에 기초하여 산출된다. 후술하는 서브 프로세서 사용율에 대해서도 마찬가지다.The main processor operating frequency represents the operating frequency of the main processor 21 in the information processing controller. The main processor utilization rate represents the utilization rate in the main processor 21 for all programs currently operating by the main processor 21. The main processor utilization rate is a value representing the ratio of the processing power in use to the total processing power of the target main processor, and is calculated as a unit, for example, MIPS, which is a unit for evaluating processor processing power, or in processor usage time per unit time. Calculated on the basis of The same applies to the subprocessor utilization rate described later.
서브 프로세서 수는, 해당 정보 처리 컨트롤러가 구비하는 서브 프로세서(23)의 수를 나타낸다. 서브 프로세서 ID는, 해당 정보 처리 컨트롤러 내의 각 서브 프로세서(23)를 식별하기 위한 식별자이다.The number of subprocessors represents the number of
서브 프로세서 스테이터스는, 각 서브 프로세서(23)의 상태를 나타내는 것으로, unused, reserved, busy 등의 상태가 있다. unused는, 해당 서브 프로세서가 현재 사용되고 있지 않고, 사용 예약도 되어 있지 않은 것을 나타낸다. reserved는, 현재는 사용되고 있지 않지만, 사용이 예약되어 있는 상태를 나타낸다. busy는, 현재 사용중인 것을 나타낸다.The subprocessor status indicates the state of each subprocessor 23, and there are states such as unused, reserved, and busy. unused indicates that the subprocessor is not currently being used or reserved for use. reserved indicates a state in which use is reserved although not currently used. busy indicates that it is currently in use.
서브 프로세서 사용율은, 해당 서브 프로세서에 의해 현재 실행하고 있는, 또는 해당 서브 프로세서에 실행이 예약되어 있는 서브 프로세서 프로그램에 대한, 해당 서브 프로세서에서의 사용율을 나타낸다. 즉, 서브 프로세서 사용율은, 서브 프로세서 스테이터스가 busy인 경우에는, 현재의 사용율을 나타내고, 서브 프로세서 스테이터스가 reserved인 경우에는, 나중에 사용될 예정의 추정 사용율을 나타낸다.The subprocessor utilization rate represents the utilization rate in the subprocessor for a subprocessor program currently being executed by the subprocessor or for which execution is reserved for the subprocessor. In other words, the subprocessor utilization rate indicates the current utilization rate when the subprocessor status is busy, and the estimated utilization rate that will be used later when the subprocessor status is reserved.
서브 프로세서 ID, 서브 프로세서 스테이터스 및 서브 프로세서 사용율은, 1개의 서브 프로세서(23)에 대하여 1 세트 설정되고, 1개의 정보 처리 컨트롤러 내의 서브 프로세서(23)의 수의 세트 수만큼 설정된다.The subprocessor ID, the subprocessor status, and the subprocessor usage rate are set one set for one
메인 메모리 총용량 및 메인 메모리 사용량은, 각각 해당 정보 처리 컨트롤러에 접속되어 있는 메인 메모리(26)의 총 용량 및 현재 사용중인 용량을 나타낸다.The main memory total capacity and the main memory usage amount represent the total capacity of the
외부 메모리부 수는, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(28)의 수를 나타낸다. 외부 메모리부 ID는, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(28)를 일의적으로 식별하는 정보이다. 외부 메모리부 종별 ID는, 해당 외부 메모리부의 종류(예를 들면, 하드디스크, CD±RW, DVD±RW, 메모리 디스크, SRAM, ROM 등)를 나타낸다.The number of external memory sections indicates the number of external memory sections 28 connected to the information processing controller. The external memory unit ID is information for uniquely identifying the external memory unit 28 connected to the information processing controller. The external memory unit type ID indicates the type of the external memory unit (for example, hard disk, CD ± RW, DVD ± RW, memory disk, SRAM, ROM, and the like).
외부 메모리부 총용량 및 외부 메모리부 사용량은, 각각 외부 메모리부 ID에 의해 식별되는 외부 메모리부(28)의 총용량 및 현재 사용중인 용량을 나타낸다.The external memory unit total capacity and the external memory unit usage amount represent the total capacity of the external memory unit 28 identified by the external memory unit ID and the capacity currently being used, respectively.
외부 메모리부 ID, 외부 메모리부 종별 ID, 외부 메모리부 총용량 및 외부 메모리부 사용량은, 1개의 외부 메모리부(28)에 대하여 1 세트 설정되고, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(28)의 수의 세트 수만큼 설정된다. 즉, 1개의 정보 처리 컨트롤러에 복수의 외부 메모리부가 접속되어 있는 경우, 각각의 외부 메모리부에는 상이한 외부 메모리부 ID가 할당되고, 외부 메모리부 종별 ID, 외부 메모리부 총용량 및 외부 메모리부 사용량도 따로따로 관리된다.The external memory section ID, the external memory section type ID, the external memory section total capacity, and the external memory section usage are set one set for one external memory section 28, and are connected to the information processing controller. Is set by the number of sets. That is, when a plurality of external memory units are connected to one information processing controller, each external memory unit is assigned a different external memory unit ID, and the external memory unit type ID, external memory unit total capacity, and external memory unit usage are also separately. Managed separately.
(1-4. 소프트웨어 셀의 실행)(1-4. Execution of the software cell)
임의의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)는, 이상과 같은 구성의 소프트웨어 셀을 생성하여, 네트워크(9)를 통하여 다른 정보 처리 장치 및 해당 장치내의 정보 처리 컨트롤러에 송신한다. 송신원의 정보 처리 장치, 송신처의 정보 처리 장치, 응답처의 정보 처리 장치, 및 각 장치내의 정보 처리 컨트롤러는, 각각 상기의 송신원 ID, 송신처 ID 및 응답처 ID에 의해 식별된다.The main processor 21 included in the information processing controller in the arbitrary information processing apparatus generates a software cell having the above-described configuration and transmits it to the other information processing apparatus and the information processing controller in the apparatus via the
소프트웨어 셀을 수신한 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)는, 그 소프트웨어 셀을 메인 메모리(26)에 저장한다. 또한, 송신처의 메인 프로세서(21)는, 소프트웨어 셀을 판독하여, 그것에 포함되는 DMA 커맨드를 처리한다.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
구체적으로, 송신처의 메인 프로세서(21)는, 우선 로딩 커맨드를 실행한다. 이에 의해, 로딩 커맨드에 의해 지시된 메인 메모리 어드레스로부터, 로딩 커맨드에 포함되는 서브 프로세서 ID 및 LS 어드레스에 의해 특정되는 서브 프로세서내의 LS(24)의 소정 영역에, 정보가 로딩된다. 여기서 로딩되는 정보는, 수신한 소프트웨어 셀에 포함되는 서브 프로세서 프로그램 또는 데이터, 또는 그 밖의 지시된 데이터이다.Specifically, the main processor 21 of the transmission destination first executes a loading command. As a result, information is loaded from the main memory address indicated by the loading command to a predetermined region of the LS 24 in the subprocessor specified by the subprocessor ID and the LS address included in the loading command. The information loaded here is a subprocessor program or data included in the received software cell, or other indicated data.
다음으로, 메인 프로세서(21)는, 킥 커맨드를, 이것에 포함되는 서브 프로세서 ID에 의해 지시된 서브 프로세서에, 마찬가지로 킥 커맨드에 포함되는 프로그램 카운터와 더불어 송신한다.Next, the main processor 21 transmits the kick command to the subprocessor indicated by the subprocessor ID included therein, together with the program counter included in the kick command.
지시된 서브 프로세서는, 그 킥 커맨드 및 프로그램 카운터에 따라서, 서브 프로세서 프로그램을 실행한다. 그리고, 실행 결과를 메인 메모리(26)에 저장한 후, 실행을 완료한 것을 메인 프로세서(21)에 통지한다.The indicated subprocessor executes the subprocessor program in accordance with the kick command and the program counter. After the execution result is stored in the
또한, 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 있어서 소프트웨어 셀을 실행하는 프로세서는 서브 프로세서(23)에 한정되는 것은 아니고, 메인 프로세서(21)가 소프트웨어 셀에 포함되는 기능 프로그램 등의 메인 메모리용 프로그램을 실행하도록 지정하는 것도 가능하다.In addition, the processor which executes a software cell in the information processing controller in the information processing apparatus of a transmission destination is not limited to the
이 경우에는, 송신원의 정보 처리 장치는, 송신처의 정보 처리 장치에, 서브 프로세서 프로그램 대신에, 메인 메모리용 프로그램 및 그 메인 메모리용 프로그램에 의해 처리되는 데이터를 포함하고, DMA 커맨드가 로딩 커맨드인 소프트웨어 셀을 송신하여, 메인 메모리(26)에 메인 메모리용 프로그램 및 그것에 의해 처리되는 데이터를 기억시킨다.In this case, the information processing apparatus of the transmission source includes, in the information processing apparatus of the transmission destination, a main memory program and data processed by the main memory program instead of the subprocessor program, and the DMA command is a loading command. The cell is transmitted so that the
다음으로, 송신원의 정보 처리 장치는, 송신처의 정보 처리 장치에, 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 대한 메인 프로세서 ID, 메인 메모리 어드레스, 메인 메모리용 프로그램을 식별하기 위한 후술하는 기능 프로그램 ID 등의 식별자, 및 프로그램 카운터를 포함하고, DMA 커맨드가 킥 커맨드 또는 기능 프로그램 실행 커맨드인 소프트웨어 셀을 송신하여, 메인 프로세서(21)에 해당 메인 메모리용 프로그램을 실행시킨다.Subsequently, the information processing apparatus of the transmission source, to the information processing apparatus of the transmission destination, a main processor ID for the information processing controller in the information processing apparatus of the transmission destination, a main memory address, a function program ID to be described later for identifying a program for the main memory, and the like And a program counter, the DMA command transmits a software cell which is a kick command or a function program execution command, and causes the main processor 21 to execute the main memory program.
이상과 같이, 본 발명의 네트워크 시스템에서는, 송신원의 정보 처리 장치는, 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 소프트웨어 셀에 의해 송신처의 정보 처리 장치에 송신함과 더불어, 해당 서브 프로세서 프로그램을 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 서브 프로세서(23)에 로딩시켜, 해당 서브 프로세서 프로그램 또는 해당 메인 메모리용 프로그램을 송신처의 정보 처리 장치에 실행시킬 수 있다.As described above, in the network system of the present invention, the information processing apparatus of the transmission source transmits the subprocessor program or the main memory program to the information processing apparatus of the transmission destination by the software cell, and transmits the subprocessor program information of the transmission destination. The
송신처의 정보 처리 장치내의 정보 처리 컨트롤러에서는, 수신한 소프트웨어 셀에 포함되는 프로그램이 서브 프로세서 프로그램인 경우에는, 해당 서브 프로세서 프로그램을 지정된 서브 프로세서에 로딩시킨다. 그리고, 소프트웨어 셀에 포함되는 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 실행시킨다.In the information processing controller in the information processing apparatus of the transmission destination, when the program included in the received software cell is a subprocessor program, the subprocessor program is loaded into the designated subprocessor. Then, the subprocessor program or the main memory program included in the software cell is executed.
따라서, 사용자가 송신처의 정보 처리 장치를 조작하지 않더라도 자동적으로, 해당 서브 프로세서 프로그램 또는 해당 메인 메모리용 프로그램을 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 실행시킬 수 있다.Therefore, even if the user does not operate the information processing apparatus of the transmission destination, the subprocessor program or the main memory program can be automatically executed by the information processing controller in the information processing apparatus of the transmission destination.
이와 같이 하여 정보 처리 장치는, 자(自) 장치내의 정보 처리 컨트롤러가 서브 프로세서 프로그램 또는 기능 프로그램 등의 메인 메모리용 프로그램을 갖고 있지 않는 경우에는, 네트워크에 접속된 다른 정보 처리 장치로부터 이들을 취득할 수 있다. 또한, 각 서브 프로세서와 메인 메모리 사이에서는 DMA 방식에 의해 데이터가 전송되고, 또한 전술한 샌드 박스를 사용함으로써, 1개의 정보 처리 컨트롤러 내에서 데이터를 다단계로 처리할 필요가 있는 경우에도, 고속 그리고 높은 시큐러티로 처리를 실행할 수 있다.In this way, when the information processing controller in the own apparatus does not have a main memory program such as a subprocessor program or a function program, the information processing apparatus can acquire them from another information processing apparatus connected to the network. have. In addition, data is transmitted between the subprocessors and the main memory by the DMA method, and by using the above-described sandbox, even if it is necessary to process data in multiple stages in one information processing controller, Security can be performed.
[2. 네트워크 시스템으로서의 분산 처리 파트 : 1][2. Distributed Processing Part as Network System: 1]
소프트웨어 셀의 사용에 의한 분산 처리의 결과, 도 5의 상단에 나타내는 바와 같이 네트워크(9)에 접속되어 있는 복수의 정보 처리 장치(1, 2, 3 및 4)는, 도 5의 하단에 나타내는 바와 같이, 가상적인 1대의 정보 처리 장치(7)로서 동작한다. 단, 그를 위해서는, 이하와 같은 구성에 의해, 이하와 같은 처리가 실행될 필요가 있다.As a result of the distributed processing by using the software cell, as shown in the upper end of FIG. 5, the plurality of
(2-1. 시스템의 소프트웨어 구성과 프로그램의 로딩)(2-1.System Configuration and Program Loading)
도 6에, 개개의 정보 처리 컨트롤러의 메인 메모리(26)가 기억하는 소프트웨어의 구성을 나타낸다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에는, 해당 정보 처리 컨트롤러에 접속되는 외부 메모리부(28)에 기록되어 있는 것이다.6 shows a configuration of software stored in the
각 프로그램은, 기능 또는 특징에 의해, 제어 프로그램, 기능 프로그램 및 디바이스 드라이버로 분류된다.Each program is classified into a control program, a function program, and a device driver by a function or a feature.
제어 프로그램은, 각 정보 처리 컨트롤러가 동일한 것을 구비하고, 각 정보 처리 컨트롤러의 메인 프로세서(21)가 실행하는 것으로, 후술하는 MS(마스터/슬레이브) 매니저 및 능력 교환 프로그램을 포함한다.The control program is provided with the same information processing controllers, and is executed by the main processor 21 of each information processing controller, and includes an MS (master / slave) manager and a capability exchange program described later.
기능 프로그램은, 메인 프로세서(21)가 실행하는 것으로, 기록용, 재생용, 소재 검색용 등, 정보 처리 컨트롤러마다 정보 처리 장치에 대응한 것이 구비된다.The function program is executed by the main processor 21, and the one corresponding to the information processing apparatus is provided for each information processing controller, such as for recording, reproducing, and material searching.
디바이스 드라이버는, 정보 처리 컨트롤러(정보 처리 장치)의 입출력(송수신)용으로, 방송 수신, 모니터 출력, 비트 스트림 입출력, 네트워크 입출력 등, 정보 처리 컨트롤러마다 정보 처리 장치에 대응한 것이 구비된다.The device driver is provided for the input / output (transmission / reception) of the information processing controller (information processing apparatus) and corresponds to the information processing apparatus for each information processing controller such as broadcast reception, monitor output, bit stream input / output, network input / output, and the like.
케이블의 삽입 등에 의해 정보 처리 장치가 물리적으로 네트워크(9)에 접속된 상태로, 정보 처리 장치에 주 전원이 투입되어, 정보 처리 장치가 전기적·기능적으로도 네트워크(9)에 접속되면, 그 정보 처리 장치의 정보 처리 컨트롤러의 메인 프로세서(21)는, 제어 프로그램에 속하는 각 프로그램, 및 디바이스 드라이버에 속하는 각 프로그램을, 메인 메모리(26)에 로딩한다.When the information processing device is physically connected to the
로딩 순서로서는, 메인 프로세서(21)는, 우선 DC(27)에 판독 명령을 실행시킴으로써, 외부 메모리부(28)로부터 프로그램을 판독하고, 다음으로, DMAC(25)에 기입 명령을 실행시킴으로써, 그 프로그램을 메인 메모리(26)에 기입한다.As the loading order, the main processor 21 first executes a read command to the DC 27 to read a program from the external memory unit 28 and then executes a write command to the DMAC 25. The program is written to the
기능 프로그램에 속하는 각 프로그램에 대해서는, 필요할 때에 필요한 프로그램만을 로딩하도록 구성해도 무방하고, 또는 다른 카테고리에 속하는 프로그램과 마찬가지로, 주 전원 투입 직후에 각 프로그램을 로딩하도록 구성해도 무방하다.Each program belonging to the functional program may be configured to load only necessary programs when necessary, or similarly to programs belonging to other categories, each program may be loaded immediately after the main power is turned on.
기능 프로그램에 속하는 각 프로그램은, 네트워크에 접속된 모든 정보 처리 장치의 외부 메모리부(28)에 기록되어 있을 필요는 없고, 어느 하나의 정보 처리 장치의 외부 메모리부(28)에 기록되어 있으면, 전술한 방법에 의해 다른 정보 처리 장치로부터 로딩할 수 있으므로, 결과적으로 도 5의 하단에 나타내는 바와 같이, 가상적인 1대의 정보 처리 장치(7)로서 기능 프로그램을 실행할 수 있다.Each program belonging to the functional program does not need to be recorded in the external memory unit 28 of all the information processing apparatuses connected to the network, and if it is recorded in the external memory unit 28 of any one of the information processing apparatuses, Since it can be loaded from another information processing apparatus by one method, as a result, as shown at the bottom of FIG. 5, a functional program can be executed as one virtual
또한, 전술한 바와 같이, 메인 프로세서(21)에 의해 처리되는 기능 프로그램은, 서브 프로세서(23)에 의해 처리되는 서브 프로세서 프로그램과 제휴 동작하는 경우가 있다. 따라서, 메인 프로세서(21)가 외부 메모리부(28)로부터 기능 프로그램을 판독하여, 메인 메모리(26)에 기입할 때, 대상으로 되는 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램이 존재하는 경우에는, 해당 서브 프로세서 프로그램도 함께 동일한 메인 메모리(26)에 기입한다. 이 경우, 제휴 동작하는 서브 프로세서 프로그램은, 1개인 경우도 있지만, 복수개인 것도 있을 수 있다. 복수개인 경우에는, 모든 제휴 동작하는 서브 프로세서 프로그램을 메인 메모리(26)에 기입한다.In addition, as described above, the functional program processed by the main processor 21 may cooperate with the subprocessor program processed by the
메인 메모리(26)에 기입된 서브 프로세서 프로그램은, 그 후, 서브 프로세서(23)내의 LS(24)에 기입되고, 메인 프로세서(21)에 의해 처리되는 기능 프로그램과 제휴 동작한다.The subprocessor program written in the
도 3의 소프트웨어 셀에 도시한 바와 같이, 기능 프로그램에는, 프로그램마다 프로그램을 일의적으로 식별할 수 있는 식별자가, 기능 프로그램 ID로서 할당된다. 기능 프로그램 ID는, 기능 프로그램의 작성 단계에서, 작성 일시나 정보 처리 장치 ID 등으로부터 결정된다.As shown in the software cell of Fig. 3, an identifier capable of uniquely identifying a program for each program is assigned to the functional program as the functional program ID. The function program ID is determined from the creation date, the information processing apparatus ID, and the like in the step of creating the function program.
서브 프로세서 프로그램에도 서브 프로세서 프로그램 ID가 할당되고, 이에 의해 서브 프로세서 프로그램을 일의적으로 식별 가능하다. 할당되는 서브 프로세서 프로그램 ID는, 제휴 동작의 상대로 되는 기능 프로그램의 기능 프로그램 ID와 관련성이 있는 식별자, 예를 들면 기능 프로그램 ID를 페어런트 번호로 한 후에 마지막 끝부분에 브랜치 번호를 부가시킨 식별자이어도 무방하지만, 제휴 동작의 상대로 되는 기능 프로그램의 기능 프로그램 ID와는 관련성이 없는 식별자이어도 무방하다.The subprocessor program ID is also assigned to the subprocessor program, whereby the subprocessor program can be uniquely identified. The subprocessor program ID to be allocated may be an identifier associated with the function program ID of the function program to be associated with the cooperative operation, for example, the function program ID is the parent number and the branch number is added at the end. For example, the identifier may be irrelevant to the function program ID of the function program that is the partnering operation.
어느 쪽이든, 기능 프로그램과 서브 프로세서 프로그램이 제휴 동작하는 경우에는, 양자 모두 상대의 식별자인 프로그램 ID를 자(自) 프로그램내에 기억해 둘 필요가 있다. 기능 프로그램이 복수개의 서브 프로세서 프로그램과 제휴 동작하는 경우에도, 해당 기능 프로그램은, 그 복수개의 서브 프로세서 프로그램의 서브 프로세서 프로그램 ID를 모두 기억해 둔다.In either case, when the functional program and the subprocessor program cooperate with each other, it is necessary to store the program ID, which is the identifier of the counterpart, in the own program. Even when a function program cooperates with a plurality of subprocessor programs, the function program stores all the subprocessor program IDs of the plurality of subprocessor programs.
메인 프로세서(21)는, 자신이 동작하는 정보 처리 장치의 장치 정보(동작 상태에 관한 정보)를 저장하기 위한 영역을 메인 메모리(26)에 확보하고, 해당 정보를 자 장치의 장치 정보 테이블로서 기록한다. 여기서의 장치 정보는, 도 4에 나타낸 정보 처리 장치 ID 이하의 각 정보이다.The main processor 21 secures an area in the
(2-2. 시스템에 있어서의 마스터/슬레이브의 결정)(2-2. Determination of Master / Slave in the System)
전술한 네트워크 시스템에서는, 임의의 정보 처리 장치에의 주 전원 투입시, 그 정보 처리 장치의 정보 처리 컨트롤러의 메인 프로세서(21)는, 마스터/슬레이브 매니저(이하, MS 매니저)를 메인 메모리(26)에 로딩하여, 실행한다.In the above-described network system, when the main power is supplied to any information processing apparatus, the main processor 21 of the information processing controller of the information processing apparatus supplies a master / slave manager (hereinafter referred to as MS manager) to the
MS 매니저는, 자신이 동작하는 정보 처리 장치가 네트워크(9)에 접속되어 있 는 것을 검지하면, 동일한 네트워크(9)에 접속되어 있는 다른 정보 처리 장치의 존재를 확인한다. 여기서의 “접속” 또는 “존재”는, 전술한 바와 같이, 정보 처리 장치가 물리적으로 네트워크(9)에 접속되어 있을 뿐만 아니라, 전기적·기능적으로도 네트워크(9)에 접속되어 있는 것을 나타낸다.When the MS manager detects that the information processing apparatus on which it operates is connected to the
이하에서는, 자신이 동작하는 정보 처리 장치를 자 장치, 다른 정보 처리 장치를 타 장치라고 칭한다. 해당 장치도, 해당 정보 처리 장치를 나타내는 것으로 한다.In the following, the information processing apparatus on which it operates is called a child apparatus, and another information processing apparatus is called another apparatus. The device also refers to the information processing device.
MS 매니저가 동일한 네트워크(9)에 접속되어 있는 다른 정보 처리 장치의 존재를 확인하는 방법을, 이하에 나타낸다.The method by which the MS manager confirms the existence of another information processing apparatus connected to the
MS 매니저는, DMA 커맨드가 스테이터스 요구 커맨드이고, 송신원 ID 및 응답처 ID가 해당 정보 처리 장치에서, 송신처 ID를 특정하지 않는 소프트웨어 셀을 생성하여, 해당 정보 처리 장치가 접속된 네트워크상에 송신하여, 네트워크 접속 확인용의 타이머를 설정한다. 타이머의 타임아웃 시간은, 예를 들면 10분으로 된다.The MS manager generates a software cell in which the DMA command is a status request command, the sender ID and the destination ID are not specified in the information processing apparatus, and does not specify the sender ID, and transmits it on the network to which the information processing apparatus is connected. Set the timer for checking network connection. The timeout time of the timer is, for example, 10 minutes.
해당 네트워크 시스템상에 다른 정보 처리 장치가 접속되어 있는 경우, 기타 장치는, 상기 스테이터스 요구 커맨드의 소프트웨어 셀을 수신하고, 상기 응답처 ID에서 특정되는 스테이터스 요구 커맨드를 발행한 정보 처리 장치에 대하여, DMA 커맨드가 스테이터스 회신 커맨드이고, 또한 데이터로서 자신(기타 장치)의 장치 정보를 포함하는 소프트웨어 셀을 송신한다. 이 스테이터스 회신 커맨드의 소프트웨어 셀에는, 적어도 해당 타 장치를 특정하는 정보(정보 처리 장치 ID, 메인 프로세서에 관한 정보, 서브 프로세서에 관한 정보 등) 및 해당 다른 장치의 MS 스테이 터스가 포함된다.When another information processing apparatus is connected on the network system, the other apparatus receives a software cell of the status request command and issues a DMA to the information processing apparatus that issues a status request command specified by the response destination ID. The command is a status reply command and transmits a software cell containing device information of itself (other device) as data. The software cell of the status reply command includes at least information (information processing device ID, information on the main processor, information on the subprocessor, etc.) identifying the other device, and the MS status of the other device.
스테이터스 요구 커맨드를 발행한 정보 처리 장치의 MS 매니저는, 상기 네트워크 접속 확인용 타이머가 타임 아웃될 때까지, 해당 네트워크 상의 타 장치로부터 송신되는 스테이터스 회신 커맨드의 소프트웨어 셀의 수신을 감시한다. 그 결과, MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신된 경우에는, 자 장치의 장치 정보 테이블에 있어서의 MS 스테이터스를 1로 설정한다. 이에 의해, 해당 장치는 슬레이브 장치로 된다.The MS manager of the information processing device which issued the status request command monitors the reception of the software cell of the status reply command sent from another device on the network until the network connection confirmation timer times out. As a result, when a status reply command indicating MS status = 0 (master device) is received, the MS status in the device information table of the own device is set to one. As a result, the device becomes a slave device.
한편, 상기 네트워크 접속 확인용 타이머가 타임 아웃될 때까지의 동안에 스테이터스 회신 커맨드가 전혀 수신되지 않은 경우, 또는 MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신되지 않은 경우에는, 자 장치의 장치 정보 테이블에 있어서의 MS 스테이터스를 0으로 설정한다. 이에 의해, 해당 장치는 마스터 장치로 된다.On the other hand, when the status reply command is not received at all until the network connection confirmation timer is timed out, or when the status reply command indicating MS status = 0 (master device) is not received, The MS status in the device information table is set to zero. As a result, the device becomes a master device.
즉, 어느 장치도 네트워크(9)에 접속되어 있지 않은 상태, 또는 네트워크(9)상에 마스터 장치가 존재하지 않은 상태에서, 새로운 정보 처리 장치가 네트워크(9)에 접속되면, 해당 장치는 자동적으로 마스터 장치로서 설정된다. 한편, 네트워크(9)상에 이미 마스터 장치가 존재하는 상태에서, 새로운 정보 처리 장치가 네트워크(9)에 접속되면, 해당 장치는 자동적으로 슬레이브 장치로서 설정된다.In other words, when no device is connected to the
마스터 장치 및 슬레이브 장치 중 어디 것에 대해서도, MS 매니저는, 정기적으로 스테이터스 요구 커맨드를 네트워크(9)상의 타 장치에 송신하여 스테이터스 정보를 조회함으로써, 타 장치의 상황을 감시한다. 그 결과, 네트워크(9)에 접속 되어 있는 정보 처리 장치의 주 전원이 차단되고, 또는 네트워크(9)로부터 정보 처리 장치가 분리됨으로써, 미리 판정용으로 설정된 소정 기간내에 특정한 타 장치로부터 스테이터스 회신 커맨드가 회신되지 않은 경우나, 네트워크(9)에 새로운 정보 처리 장치가 접속된 경우 등, 네트워크(9)의 접속 상태에 변화가 있었던 경우에는, 그 정보를 후술하는 능력 교환 프로그램에 통지한다.In either of the master device and the slave device, the MS manager periodically monitors the status of other devices by sending status request commands to other devices on the
(2-3. 마스터 장치 및 슬레이브 장치에 있어서의 장치 데이터의 취득)(2-3. Acquisition of Device Data in Master Device and Slave Device)
메인 프로세서(21)는, MS 매니저로부터, 네트워크(9)상의 타 장치의 조회 및 자 장치의 MS 스테이터스의 설정 완료의 통지를 받으면, 능력 교환 프로그램을 실행한다.The main processor 21 executes the capability exchange program when the MS manager receives notification of the inquiry of other devices on the
능력 교환 프로그램은, 자 장치가 마스터 장치인 경우에는, 네트워크(9)에 접속되어 있는 모든 타 장치의 장치 정보, 즉 각 슬레이브 장치의 장치 정보를 취득한다.When the own device is the master device, the capability exchange program acquires device information of all other devices connected to the
타 장치의 장치 정보의 취득은, 전술한 바와 같이, DMA 커맨드가 스테이터스 요구 커맨드인 소프트웨어 셀을 생성하여 타 장치에 송신하고, 그 후, DMA 커맨드가 스테이터스 회신 커맨드이고, 또한 데이터로서 타 장치의 장치 정보를 포함하는 소프트웨어 셀을 타 장치로부터 수신함으로써 가능하다.Acquiring the device information of the other device, as described above, generates a software cell whose DMA command is a status request command and transmits it to the other device, after which the DMA command is a status reply command and the device of the other device as data. It is possible by receiving a software cell containing information from another device.
능력 교환 프로그램은, 마스터 장치인 자 장치의 장치 정보 테이블과 마찬가지로, 네트워크(9)에 접속되어 있는 모든 타 장치(각 슬레이브 장치)의 장치 정보를 저장하기 위한 영역을 자 장치의 메인 메모리(26)에 확보하여, 이들 정보를 타 장치(슬레이브 장치)의 장치 정보 테이블로서 기록한다.Similar to the device information table of the child device which is the master device, the capability exchange program has an area for storing device information of all other devices (each slave device) connected to the
즉, 마스터 장치의 메인 메모리(26)에는, 자 장치를 포함하는 네트워크(9)에 접속되어 있는 모든 정보 처리 장치의 장치 정보가, 장치 정보 테이블로서 기록된다.That is, in the
한편, 능력 교환 프로그램은, 자 장치가 슬레이브 장치인 경우에는, 네트워크(9)에 접속되어 있는 모든 타 장치의 장치 정보, 즉 마스터 장치 및 자 장치 이외의 각 슬레이브 장치의 장치 정보를 취득하여, 이들 장치 정보에 포함되는 정보 처리 장치 ID 및 MS 스테이터스를, 자 장치의 메인 메모리(26)에 기록한다.On the other hand, when the child device is a slave device, the capability exchange program acquires device information of all other devices connected to the
즉, 슬레이브 장치의 메인 메모리(26)에는, 자 장치의 장치 정보가, 장치 정보 테이블로서 기록됨과 더불어, 자 장치 이외의 네트워크(9)에 접속되어 있는 마스터 장치 및 각 슬레이브 장치에 대한 정보 처리 장치 ID 및 MS 스테이터스가, 별도의 장치 정보 테이블로서 기록된다.That is, in the
또한, 마스터 장치 및 슬레이브 장치 중 어느 것에 대해서도, 능력 교환 프로그램은, 상기한 바와 같이 MS 매니저로부터, 새롭게 네트워크(9)에 정보 처리 장치가 접속된 것이 통지되었을 때에는, 그 정보 처리 장치의 장치 정보를 취득하여, 전술한 바와 같이 메인 메모리(26)에 기록한다.In addition, in either of the master device and the slave device, the capability exchange program receives the device information of the information processing device when it is notified from the MS manager that the information processing device is newly connected to the
또한, MS 매니저 및 능력 교환 프로그램은, 메인 프로세서(21)에 의해 실행되는 것에 한정되지 않고, 어느 서브 프로세서(23)에 의해 실행되어도 무방하다. 또한, MS 매니저 및 능력 교환 프로그램은, 정보 처리 장치의 주 전원이 투입되어 있는 동안은 항상 동작하는 상주 프로그램인 것이 바람직하다.The MS manager and the capability exchange program are not limited to being executed by the main processor 21 but may be executed by any
(2-4. 정보 처리 장치가 네트워크로부터 절단된 경우)(2-4. When the information processing device is cut off from the network)
마스터 장치 및 슬레이브 장치 중 어디 것에 대해서도, 능력 교환 프로그램은, 상기한 바와 같이 MS 매니저로부터, 네트워크(9)에 접속되어 있는 정보 처리 장치의 주 전원이 차단되고, 또는 네트워크(9)로부터 정보 처리 장치가 분리된 것이 통지되었을 때에는, 그 정보 처리 장치의 장치 정보 테이블을 자 장치의 메인 메모리(26)로부터 삭제한다.In either of the master device and the slave device, the capability exchange program, as described above, the main power supply of the information processing device connected to the
또한, 이와 같이 네트워크(9)로부터 절단된 정보 처리 장치가 마스터 장치인 경우에는, 이하와 같은 방법에 의해, 새롭게 마스터 장치가 결정된다.In addition, when the information processing apparatus cut | disconnected from the
구체적으로, 예를 들면, 네트워크(9)로부터 절단되어 있지 않은 정보 처리 장치는, 각각 자 장치 및 타 장치의 정보 처리 장치 ID를 수치로 치환하여, 자 장치의 정보 처리 장치 ID를 타 장치의 정보 처리 장치 ID와 비교하여, 자 장치의 정보 처리 장치 ID가 네트워크(9)로부터 절단되어 있지 않은 정보 처리 장중에서 최소인 경우, 그 슬레이브 장치는, 마스터 장치로 이행하여, MS 스테이터스를 0으로 설정하고, 마스터 장치로서, 전술한 바와 같이, 네트워크(9)에 접속되어 있는 모든 타 장치(각 슬레이브 장치)의 장치 정보를 취득하여, 메인 메모리(26)에 기록한다.Specifically, for example, the information processing apparatus not disconnected from the
(2-5. 장치 정보에 기초한 분산 처리)(2-5. Distributed Processing Based on Device Information)
도 5의 하단에 나타낸 바와 같이 네트워크(9)에 접속되어 있는 복수의 정보 처리 장치(1, 2, 3 및 4)를 가상적인 1대의 정보 처리 장치(7)로서 동작시키기 위해서는, 마스터 장치가 사용자의 조작 및 슬레이브 장치의 동작 상태를 파악할 필요가 있다.As shown in the lower part of Fig. 5, in order to operate the plurality of
도 7에, 4대의 정보 처리 장치가 가상적인 1대의 정보 처리 장치(7)로서 동 작하는 모양을 나타낸다. 정보 처리 장치(1)가 마스터 장치, 정보 처리 장치(2, 3 및 4)가 슬레이브 장치 A, B 및 C로서, 동작하고 있는 것으로 한다.7 shows how four information processing apparatuses operate as one virtual
사용자가 네트워크(9)에 접속되어 있는 정보 처리 장치를 조작한 경우, 조작 대상이 마스터 장치(1)이면, 그 조작 정보는, 마스터 장치(1)에 있어서 직접 파악되고, 조작 대상이 슬레이브 장치이면, 그 조작 정보는, 조작된 슬레이브 장치로부터 마스터 장치(1)에 송신된다. 즉, 사용자의 조작 대상이 마스터 장치(1)와 슬레이브 장치 중 어느 것인지에 관계없이, 그 조작 정보는 항상 마스터 장치(1)에 있어서 파악된다. 조작 정보의 송신은, 예를 들면, DMA 커맨드가 조작 정보 송신 커맨드인 소프트웨어 셀에 의해 행해진다.When the user operates the information processing apparatus connected to the
그리고, 마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 그 조작 정보에 따라서, 실행하는 기능 프로그램을 선택한다. 그 때, 필요하면, 마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 상기의 방법에 의해 자 장치의 외부 메모리부(28-1또는 28-2)로부터 메인 메모리(26-1)에 기능 프로그램을 로딩하지만, 다른 정보 처리 장치(슬레이브 장치)가 마스터 장치(1)에 기능 프로그램을 송신해도 무방하다.And the main processor 21-1 contained in the
기능 프로그램에는, 그 실행 단위마다 필요로 되는, 도 4에 나타낸 각 정보로서 나타나는 정보 처리 장치 종별 ID, 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 메모리부에 관한 조건 등의, 장치에 관한 요구 스펙이 규정되어 있다.The functional program includes information on the apparatus such as the information processing apparatus type ID shown as each information shown in FIG. 4 required for each execution unit, processing capacity of the main processor or subprocessor, main memory usage, and conditions relating to the external memory unit. Requirement specifications are specified.
마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21- 1)는, 각 기능 프로그램에 대하여 필요로 되는 상기 요구 스펙을 판독한다. 또한, 미리 능력 교환 프로그램에 의해 메인 메모리(26-1)에 기록된 장치 정보 테이블을 참조하여, 각 정보 처리 장치의 장치 정보를 판독한다. 여기서의 장치 정보는, 도 4에 나타낸 정보 처리 장치 ID 이하의 각 정보를 나타내고, 메인 프로세서, 서브 프로세서, 메인 메모리 및 외부 메모리부에 관한 정보이다.The main processor 21-1 included in the
마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 네트워크(9)상에 접속된 각 정보 처리 장치의 상기 장치 정보와, 기능 프로그램 실행에 필요로 되는 상기 요구 스펙을 순차적으로 비교한다.The main processor 21-1 included in the
그리고, 예를 들면, 기능 프로그램이 녹화 기능을 필요로 하는 경우에는, 정보 처리 장치 종별 ID에 기초하여, 녹화 기능을 갖는 정보 처리 장치만을 특정하여 추출한다. 또한, 기능 프로그램을 실행하기 위해 필요한 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 메모리부에 관한 조건을 확보할 수 있는 슬레이브 장치를, 실행 요구 후보 장치로서 특정한다. 여기서, 복수의 실행 요구 후보 장치가 특정된 경우에는, 해당 후보 장치로부터 1개의 실행 요구 후보 장치를 특정하여 선택한다.For example, when the function program requires a recording function, only the information processing device having a recording function is identified and extracted based on the information processing device type ID. Further, a slave device capable of securing the processing capacity of the main processor or subprocessor, the main memory usage, and the external memory unit necessary to execute the function program is specified as the execution request candidate device. Here, when a plurality of execution request candidate devices are specified, one execution request candidate device is specified and selected from the candidate device.
실행 요구하는 슬레이브 장치가 특정되면, 마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 그 특정된 슬레이브 장치에 대하여, 자 장치내의 정보 처리 컨트롤러(11)에 포함되는 메인 메모리(26-1)에 기록되어 있는 해당 슬레이브 장치의 장치 정보 테이블을 갱신한다.When the slave device requesting execution is specified, the main processor 21-1 included in the
또한, 마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세 서(21-1)는, DMA 커맨드가 기능 프로그램 실행 커맨드인 소프트웨어 셀을 생성하여, 해당 소프트웨어 셀의 셀 인터페이스에, 해당 기능 프로그램에 관한 필요한 서브 프로세서의 정보 및 샌드 박스 사이즈(도 3 참조)를 설정하여, 상기 실행 요구되는 슬레이브 장치에 대하여 송신한다.In addition, the main processor 21-1 included in the
기능 프로그램의 실행이 요구된 슬레이브 장치는, 그 기능 프로그램을 실행함과 더불어, 자 장치의 장치 정보 테이블을 갱신한다. 그 때, 필요하면, 슬레이브 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)는, 상기의 방법에 의해 자 장치의 외부 메모리부(28)로부터 메인 메모리(26)에 기능 프로그램 및 해당 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램을 로딩한다.The slave device requested to execute the function program executes the function program and updates the device information table of the own device. At that time, if necessary, the main processor 21 included in the information processing controller in the slave device is configured to perform a function program and the corresponding function program from the external memory unit 28 of the child device to the
기능 프로그램의 실행이 요구된 슬레이브 장치의 외부 메모리부(28)에, 필요한 기능 프로그램 또는 해당 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램이 기록되어 있지 않은 경우에는, 다른 정보 처리 장치가 해당 기능 프로그램 또는 서브 프로세서 프로그램을, 그 기능 프로그램 실행 요구처 슬레이브 장치에 송신하도록, 시스템을 구성하면 무방하다.If the necessary function program or the subprocessor program cooperatively operating with the function program is not recorded in the external memory unit 28 of the slave device that is requested to execute the function program, the other information processing apparatus may execute the function program or sub. The system may be configured to transmit the processor program to the functional program execution request slave device.
서브 프로세서 프로그램에 대해서는, 전술한 로딩 커맨드 및 킥 커맨드를 이용하여 다른 정보 처리 장치에 실행시킬 수도 있다.The subprocessor program may be executed by another information processing apparatus using the above-described loading command and kick command.
기능 프로그램의 실행 종료 후, 기능 프로그램을 실행한 슬레이브 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(21)는, 종료 통지를 마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)에 송신함과 더불어, 자 장치의 장치 정보 테이블을 갱신한다. 마스터 장치(1)내의 정보 처리 컨트롤러 (11)에 포함되는 메인 프로세서(21-1)는, 그 종료 통지를 수신하여, 기능 프로그램을 실행한 슬레이브 장치의 장치 정보 테이블을 갱신한다.After the execution of the function program is finished, the main processor 21 included in the information processing controller in the slave device which executed the function program sends a termination notification to the main processor 21 included in the
마스터 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 자 장치 및 타 장치의 장치 정보 테이블의 참조 결과로부터, 해당 기능 프로그램을 실행할 수 있는 정보 처리 장치로서, 자신을 선택하는 경우도 있을 수 있다. 그 경우에는, 마스터 장치(1)가 해당 기능 프로그램을 실행한다.The main processor 21-1 included in the
도 7의 예에서, 사용자가 슬레이브 장치 A(정보 처리 장치(2))를 조작하고, 해당 조작에 대응한 기능 프로그램을 별도의 슬레이브 장치 B(정보 처리 장치(3))가 실행하는 경우에 대하여, 도 8에 이상의 분산 처리의 예를 나타낸다.In the example of FIG. 7, a case where a user operates slave device A (information processing device 2), and another slave device B (information processing device 3) executes a function program corresponding to the operation. 8 shows an example of the above dispersion processing.
도 8의 예에서는, 사용자가 슬레이브 장치 A를 조작함으로써, 슬레이브 장치 A를 포함하는 네트워크 시스템 전체의 분산 처리가 개시하여, 우선슬레이브 장치 A는, 단계 81에서, 그 조작 정보를 마스터 장치(1)에 송신한다.In the example of FIG. 8, when the user operates the slave device A, distributed processing of the entire network system including the slave device A starts, and the slave device A first transmits the operation information to the
마스터 장치(1)는, 단계 72에서, 그 조작 정보를 수신하고, 또한 단계 73으로 진행하여, 자 장치의 메인 메모리(26-1)에 기록되어 있는 자 장치 및 타 장치의 장치 정보 테이블로부터, 각 정보 처리 장치의 동작 상태를 조사하여, 수신한 조작 정보에 대응한 기능 프로그램을 실행할 수 있는 정보 처리 장치를 선택한다. 이 예는, 슬레이브 장치B가 선택되는 경우이다.In
다음으로, 마스터 장치(1)는, 단계 74에서, 그 선택한 슬레이브 장치 B에 대하여 기능 프로그램의 실행을 요구한다.Next, in step 74, the
슬레이브 장치 B는, 단계 95에서, 그 실행 요구를 수신하고, 또한 단계 96으 로 진행하여, 실행 요구된 기능 프로그램을 실행한다.In
이상과 같이, 사용자는, 1대의 정보 처리 장치만을 조작함으로써, 다른 정보 처리 장치를 조작하지 않고, 복수의 정보 처리 장치(1, 2, 3 및 4)를 가상적인 1대의 정보 처리 장치(7)로서 동작시킬 수 있다.As described above, the user operates only one information processing apparatus so that the plurality of
(2-6. 각 정보 처리 장치 및 시스템의 구체예)(2-6. Specific example of each information processing apparatus and system)
네트워크(9)를 통하여 상호 접속되는 정보 처리 장치(1, 2, 3 및 4)는, 기본적으로 상기한 바와 같은 정보 처리 컨트롤러(11, 12, 13 및 14)에 의해 정보 처리를 행하는 것이면, 어떠한 것이어도 무방하지만, 도 9에, 그 일례를 나타낸다.The
이 예에서는, 정보 처리 컨트롤러(11)를 구비하는 정보 처리 장치(1)는, 하드디스크 레코더로서, 도 10에 도시하는 바와 같이, 하드웨어 구성으로서는, 도 1에 도시한 외부 메모리부(28-1)로서, 하드디스크를 내장하고, 도 1에 도시한 외부 메모리부(28-2)로서, DVD±R/RW, CD±R/RW, Blu-rayDisc(등록상표) 등의 광 디스크를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(11)의 버스(29-1)에 접속된 버스(31-1)에, 방송 수신부(32-1), 영상 입력부(33-1), 음성 입력부(34-1), 영상 출력부(35-1), 음성 출력부(36-1), 조작 패널부(37-1), 리모콘 수광부(38-10) 및 네트워크 접속부(39-1)가 접속된 것이다.In this example, the
방송 수신부(32-1), 영상 입력부(33-1) 및 음성 입력부(34-1)는, 방송 신호를 수신하고, 또는 정보 처리 장치(1)의 외부로부터 영상 신호 및 음성 신호를 입력하여, 각각 소정 포맷의 디지털 데이터로 변환하여, 정보 처리 컨트롤러(11)에서의 처리를 위해 버스(31-1)에 송출하는 것이고, 영상 출력부(35-1) 및 음성 출력부 (36-1)는, 정보 처리 컨트롤러(11)로부터 버스(31-1)에 송출된 영상 데이터 및 음성 데이터를 처리하여, 디지털 데이터인 채로, 또는 아날로그 신호로 변환하여, 정보 처리 장치(1)의 외부에 송출하는 것이며, 리모콘 수광부(38-1)는, 리모콘 송신기(43-1)로부터의 리모콘(원격 조작) 적외선 신호를 수신하는 것이다.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
도 9 및 도 10에 나타내는 바와 같이, 정보 처리 장치(하드디스크 레코더)(1)의 영상 출력부(35-1) 및 음성 출력부(36-1)에는, 모니터 표시 장치(41) 및 스피커 장치(42)가 접속된다.9 and 10, the
도 9의 예의, 정보 처리 컨트롤러(12)를 구비하는 정보 처리 장치(2)도, 하드디스크 레코더이고, 도 10에 있어서 괄호 안에 참조 번호를 붙여서 나타내는 바와 같이, 정보 처리 장치(1)와 마찬가지로 구성된 것이다. 단, 예를 들면, 도 9에 나타내는 바와 같이, 정보 처리 장치(하드디스크 레코더)(2)에는, 모니터 표시 장치 및 스피커 장치는 접속되지 않는다.The
정보 처리 장치(하드디스크 레코더)(1 및 2), 즉 정보 처리 컨트롤러(11 및 12)의 소프트웨어 구성으로서는, 도 11에 나타내는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 영상 음성 기록, 영상 음성 재생, 소재 검색 및 프로그램 녹화 예약을 위한 프로그램을 구비하고, 디바이스 드라이버로서, 방송 수신, 영상 출력, 음성 출력, 외부 메모리부 입출력 및 네트워크 입출력을 위한 프로그램을 구비한다.As a software configuration of the information processing apparatuses (hard disk recorders) 1 and 2, that is, the
도 9의 예의, 정보 처리 컨트롤러(13)를 구비하는 정보 처리 장치(3)는, PDA(Personal Digital Assistants)로서, 도 12에 도시하는 바와 같이, 하드웨어 구 성으로서는, 도 1에 도시한 외부 메모리부(28-5)로서, 메모리 카드 디스크를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(13)의 버스(29-3)에 접속된 버스(51)에, 액정 표시부(52), 음성 출력부(53), 카메라부(54), 음성 입력부(55), 키보드부(56) 및 네트워크 접속부(57)가 접속된 것이다.In the example of FIG. 9, the
또한, 도 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)를 갖는다.In addition, the
정보 처리 장치(PDA)(3), 즉 정보 처리 컨트롤러(13)의 소프트웨어 구성으로서는, 도 13에 도시하는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 영상 음성 기록, 영상 음성 재생, 전화번호부, 워드 프로세서 및 표 계산을 위한 프로그램, 및 Web 브라우저를 구비하고, 디바이스 드라이버로서, 영상 출력, 음성 출력, 카메라 영상 입력, 마이크 음성 입력 및 네트워크 입출력을 위한 프로그램을 구비한다.As the software configuration of the information processing apparatus (PDA) 3, that is, the
도 9의 예의, 정보 처리 컨트롤러(14)를 구비하는 정보 처리 장치(4)는, 포터블 CD 플레이어로서, 도 14에 도시하는 바와 같이, 하드웨어 구성으로서는, 도 1에 도시한 외부 메모리부(28-6)로서, CD(Compact Disc)를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(14)의 버스(29-4)에 접속된 버스(61)에, 액정 표시부(62), 음성 출력부(63), 조작 버튼부(64) 및 네트워크 접속부(65)가 접속된 것이 다.The
또한, 도 1에서는 내부를 생략한 정보 처리 컨트롤러(14)는, 메인 프로세서(21-4), 서브 프로세서(23-10, 23-11 및 23-12), DMAC(다이렉트 메모리 액세스 컨트롤러)(25-4), DC(디스크 컨트롤러)(27-4), 및 버스(29-4)를 구비하고, 그 메인 프로세서(21-4)는, LS(로컬 스토리지)(22-4)를 갖고, 각 서브 프로세서(23-10, 23-11 및 23-12)는, LS(로컬 스토리지)(24-10, 24-11 및 24-12)를 갖는다.In addition, the
정보 처리 장치(포터블 CD 플레이어)(4), 즉 정보 처리 컨트롤러(14)의 소프트웨어 구성으로서는, 도 15에 도시하는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 음악 재생을 위한 프로그램을 구비하며, 디바이스 드라이버로서, 음성 출력, CD 제어 및 네트워크 입출력을 위한 프로그램을 구비한다.As the software configuration of the information processing apparatus (portable CD player) 4, that is, the
이상과 같은 도 9의 예의 네트워크 시스템에 있어서, 정보 처리 장치(1, 3 및 4)가 네트워크(9)상에 접속되어 있고, 정보 처리 장치(1)가 마스터 장치(MS 스테이터스=0)로서, 정보 처리 장치(3 및 4)가 슬레이브 장치(MS 스테이터스=1)로서, 설정되어 있는 것으로 한다.In the network system of the example of FIG. 9 described above, the
이 상태에서, 새롭게 정보 처리 장치(2)가 네트워크(9)에 접속되면, 전술한 방법에 의해, 정보 처리 장치(2)내의 정보 처리 컨트롤러(12)에 포함되는 메인 프로세서(21-2)에 의해 실행되고 있는 MS 매니저는, 다른 정보 처리 장치(1, 3 및 4)에 MS 스테이터스를 조회하여, 정보 처리 장치(1)가 이미 마스터 장치로서 존재하는 것을 인식하고, 자 장치(정보 처리 장치(2))를 슬레이브 장치(MS 스테이터스=1) 로 설정한다. 또한, 마스터 장치에 설정되어 있는 정보 처리 장치(1)는, 새롭게 추가된 정보 처리 장치(2)를 포함하는 각 장치의 장치 정보를 수집하여, 메인 메모리(26-1)내의 장치 정보 테이블을 갱신한다.In this state, when the
이와 같은 상태에서, 사용자에 의해 슬레이브 장치인 정보 처리 장치(PDA)(3)에 의해 2시간의 방송 프로그램의 녹화 예약의 조작이 행해진 경우를 나타낸다.In this state, it shows the case where the recording reservation operation of the broadcast program for 2 hours is performed by the information processing apparatus (PDA) 3 which is a slave device by the user.
이 경우, 슬레이브 장치인 정보 처리 장치(PDA)(3)는, 사용자로부터 녹화 개시 시각, 녹화 종료 시각, 녹화 대상 방송 채널, 녹화 품질 등의 정보를 포함하는 녹화 예약 정보의 입력을 접수하고, 해당 녹화 예약 정보 및 DMA 커맨드로서의 녹화 예약 커맨드를 포함하는 소프트웨어 셀을 생성하여, 마스터 장치인 정보 처리 장치(1)에 송신한다.In this case, the information processing device (PDA) 3, which is a slave device, receives an input of recording reservation information including information such as recording start time, recording end time, recording target broadcast channel, recording quality, and the like from the user. A software cell containing the recording reservation information and the recording reservation command as the DMA command is generated and transmitted to the
DMA 커맨드가 녹화 예약 커맨드인 소프트웨어 셀을 수신한 정보 처리 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 녹화 예약 커맨드를 판독함과 더불어, 메인 메모리(26-1)내의 장치 정보 테이블을 참조하여, 해당 녹화 예약 커맨드를 실행 가능한 정보 처리 장치를 특정한다.The main processor 21-1 included in the
우선, 메인 프로세서(21-1)는, 장치 정보 테이블에 포함되는 각 정보 처리 장치(1, 2, 3 및 4)의 정보 처리 장치 종별 ID를 판독하여, 녹화 예약 커맨드에 대응하는 기능 프로그램을 실행 가능한 정보 처리 장치를 추출한다. 여기서는, 녹화 기능을 나타내는 정보 처리 장치 종별 ID를 갖는 정보 처리 장치(1 및 2)가 후보 장치로서 특정되고, 정보 처리 장치(3 및 4)는 후보 장치로부터 제외된다.First, the main processor 21-1 reads the information processing apparatus type ID of each of the
다음으로, 마스터 장치인 정보 처리 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 장치 정보 테이블을 참조하여, 정보 처리 장치(1 및 2)의 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리에 관한 정보 등의, 장치에 관한 정보를 판독하여, 정보 처리 장치(1 및 2)가 녹화 예약 커맨드에 대응하는 기능 프로그램의 실행에 필요한 요구 스펙을 만족하는지의 여부를 판단한다. 여기서는, 정보 처리 장치(1, 2) 모두, 녹화 예약 커맨드에 대응하는 기능 프로그램의 실행에 필요한 요구 스펙을 만족하는 것으로 한다.Next, the main processor 21-1 included in the
또한, 메인 프로세서(21-1)는, 장치 정보 테이블을 참조하여, 정보 처리 장치(1 및 2)의 외부 메모리부에 관한 정보를 판독하여, 외부 메모리부의 공백 용량이 해당 녹화 예약 커맨드의 실행에 필요한 용량을 만족하는지의 여부를 판단한다. 정보 처리 장치(1 및 2)는 하드디스크 레코더이기 때문에, 각각 하드디스크(28-1 및 28-3)의, 총 용량과 사용량의 차분이, 각각의 공백 용량에 상당한다.In addition, the main processor 21-1 reads the information about the external memory units of the
이 경우, 정보 처리 장치(1)의 하드디스크(28-1)의 공백 용량이, 녹화 시간으로 환산하여 10분이고, 정보 처리 장치(2)의 하드디스크(28-3)의 공백 용량이, 녹화 시간으로 환산하여 20시간이라고 하자.In this case, the free space of the hard disk 28-1 of the
이 때, 마스터 장치인 정보 처리 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 해당 녹화 예약 커맨드의 실행에 필요한 2시간분의 공백 용량을 확보할 수 있는 정보 처리 장치를, 실행 요구처 슬레이브 장치로서 특정한다.At this time, the main processor 21-1 included in the
그 결과, 정보 처리 장치(2)만이 실행 요구처 슬레이브 장치로서 선택되고, 마스터 장치인 정보 처리 장치(1)내의 정보 처리 컨트롤러(11)에 포함되는 메인 프로세서(21-1)는, 사용자에 의해 조작된 정보 처리 장치(3)로부터 송신된 녹화 예약 정보를 포함하는 해당 녹화 예약 커맨드를 정보 처리 장치(2)에 송신하여, 상기 2시간의 방송 프로그램의 녹화 예약의 실행을 요구한다.As a result, only the
그리고, 정보 처리 장치(2)내의 정보 처리 컨트롤러(12)에 포함되는 메인 프로세서(21-2)는, 해당 녹화 예약 커맨드를 해석하여, 녹화에 필요한 기능 프로그램을 외부 메모리부인 하드디스크(28-3)로부터 메인 메모리(26-2)에 로딩하고, 녹화 예약 정보에 따라서 녹화를 실행한다. 그 결과, 녹화 예약된 2시간의 방송 프로그램의 영상 음성 데이터가 정보 처리 장치(2)의 하드디스크(28-3)에 기록된다.Then, the main processor 21-2 included in the
이와 같이, 도 9의 예의 네트워크 시스템에 있어서도, 사용자는, 1대의 정보 처리 장치만을 조작함으로써, 다른 정보 처리 장치를 조작하지 않고, 복수의 정보 처리 장치(1, 2, 3 및 4)를 가상적인 1대의 정보 처리 장치(7)로서 동작시킬 수 있다.Thus, even in the network system of the example of FIG. 9, a user operates only one information processing apparatus, and virtually operates the several
[3. 네트워크 시스템 및 정보 처리 장치의 기본적 구성 : 파트 2][3. Basic configuration of network systems and information processing devices: Part 2]
도 16은, 본 발명의 네트워크 시스템의 다른 예를 나타내고, 네트워크(1009)를 통하여 복수의 정보 처리 장치(1001, 1002, 1003 및 1004)가 접속된 것이다.16 shows another example of the network system of the present invention, in which a plurality of
(3-1. 정보 처리 장치 및 정보 처리 컨트롤러)(3-1.Information Processing Unit and Information Processing Controller)
정보 처리 장치(1001, 1002, 1003 및 1004)는, 각각 후술하는 바와 같은 각종의 AV(Audio and Visual) 기기나 포터블 기기이다.The
정보 처리 장치(1001)에 대하여 나타내면, 정보 처리 장치(1001)는, 컴퓨터 기능부로서 정보 처리 컨트롤러(1011)를 구비한다. 정보 처리 컨트롤러(1011)는, 메인 프로세서(1021-1), 서브 프로세서(1023-1, 1023-2 및 1023-3), DMAC(다이렉트 메모리 액세스 컨트롤러)(1025-1), 컨트롤 레지스터(1028-1), 워크 메모리(1029-1), 및 DC(디스크 컨트롤러)(1030-1)를 갖는다.Referring to the
메인 프로세서(1021-1)는, 서브 프로세서(1023-1, 1023-2 및 1023-3)에 의한 서브 프로세서 프로그램의 실행(데이터 처리)의 스케줄 관리와, 정보 처리 컨트롤러(1011)(정보 처리 장치(1001))의 전반적인 관리를 행한다. 단, 메인 프로세서(1021-1)내에서 관리를 위한 프로그램 이외의 프로그램이 동작하도록 구성할 수도 있다. 그 경우에는, 메인 프로세서(1021-1)는 서브 프로세서로서도 기능하게 된다. 메인 프로세서(1021-1)는, LS(로컬 스토리지)(1022-1)를 갖는다.The main processor 1021-1 includes schedule management of execution (data processing) of the subprocessor programs by the subprocessors 1023-1, 1023-2, and 1023-3, and an information processing controller 1011 (information processing device). (1001), overall management is performed. However, a program other than the program for management may be configured to operate in the main processor 1021-1. In that case, the main processor 1021-1 also functions as a subprocessor. The main processor 1021-1 has LS (local storage) 1022-1.
서브 프로세서는, 1개이어도 무방하지만, 바람직하게는 복수로 한다. 이 예는, 복수인 경우이다.Although one subprocessor may be sufficient, Preferably it is multiple. This example is the case of plural numbers.
각 서브 프로세서(1023-1, 1023-2 및 1023-3)는, 메인 프로세서(1021-1)의 제어에 의해 병렬적 또한 독립적으로, 서브 프로세서 프로그램을 실행하여, 데이터를 처리한다. 또한, 경우에 따라서 메인 프로세서(1021-1)내의 프로그램이 서브 프로세서(1023-1, 1023-2 또는 1023-3)내의 서브 프로세서 프로그램과 제휴하여 동작하도록 구성할 수도 있다. 후술하는 기능 프로그램도, 메인 프로세서(1021-1)내에서 동작하는 프로그램이다. 각 서브 프로세서(1023-1, 1023-2 및 1023-3)도, LS(로컬 스토리지)(1024-1, 1024-2 및 1024-3)를 갖는다.Each subprocessor 1023-1, 1023-2, and 1023-3 executes a subprocessor program in parallel and independently under the control of the main processor 1021-1 to process data. In some cases, the program in the main processor 1021-1 may be configured to operate in cooperation with the subprocessor program in the subprocessors 1023-1, 1023-2, or 1023-3. The functional program described later is also a program operating in the main processor 1021-1. Each subprocessor 1023-1, 1023-2, and 1023-3 also has LS (local storage) 1024-1, 1024-2, and 1024-3.
DMAC(1025-1)는, 각각 정보 처리 컨트롤러(1011)에 접속된, DRAM(다이내믹 RAM) 등으로 이루어지는 메인 메모리(1026-1) 및 SRAM(스태틱 RAM) 등으로 이루어지는 서브 메모리(1027-1)에 저장되어 있는 프로그램 및 데이터에 액세스하기 위한 것이다. DMAC(1025-1)를 개재시킴으로써, 각 서브 프로세서와 메인 메모리(1026-1) 사이에서는 DMA 방식에 의해 데이터 전송을 행할 수 있어, 고속화를 실현할 수 있다.The DMAC 1025-1 includes a main memory 1026-1 made of DRAM (dynamic RAM) and the like and a sub memory 1027-1 made of SRAM (static RAM) and the like connected to the
컨트롤 레지스터(1028-1)는, 정보 처리 컨트롤러(1011)내에서 처리되어야 하는 서브 프로세서 프로그램을, 어떤 서브 프로세서가, 또한 서브 프로세서내에 복수개 ±존재하는 후술하는 프로세싱 스레드 중의 어느 것이, 처리하는지를 결정함과 더불어, 서브 프로세서에 의한 서브 프로세서 프로그램 실행의 진척을 관리하기 위해 사용된다.The control register 1028-1 determines which subprocessor processes which subprocessor program to be processed in the
워크 메모리(1029-1)는, 정보 처리 컨트롤러(1011)내에 포함되는 SRAM 등으로 이루어지는 작업용 메모리로서, 메인 프로세서(1021-1), 및 서브 프로세서(1023-1, 1023-2 및 1023-3)에 의해 액세스된다.The work memory 1029-1 is a work memory composed of SRAM or the like included in the
DC(1030-1)는, 정보 처리 컨트롤러(1011)에 접속된 외부 메모리부(1031-1 및 1031-2)에 액세스하는 것이다.The DC 1030-1 accesses the external memory units 1031-1 and 1031-2 connected to the
외부 메모리부(1031-1 및 1031-2)는, 고정 디스크(하드디스크)이어도, 분해 가능 디스크이어도 무방하고, 또한 MO, CD±RW, DVD±RW 등의 광 디스크, 메모리 디스크, SRAM(스태틱 RAM), ROM 등, 각종의 것을 이용할 수 있다. 따라서, DC(1030-1)는, 디스크 컨트롤러라고 칭하지만, 외부 메모리부 컨트롤러이다.The external memory units 1031-1 and 1031-2 may be fixed disks (hard disks) or removable disks, and optical disks such as MO, CD ± RW, DVD ± RW, memory disks, and SRAM (static). Various things, such as RAM) and ROM, can be used. Therefore, although DC1030-1 is called a disk controller, it is an external memory part controller.
도 16의 예와 같이, 정보 처리 컨트롤러(1011)에 대하여 외부 메모리부 (1031)를 복수 접속할 수 있도록, 정보 처리 컨트롤러(1011)를 구성할 수 있다.As in the example of FIG. 16, the
메인 프로세서(1021-1), 각 서브 프로세서(1023-1, 1023-2 및 1023-3), DMAC(1025-1), 컨트롤 레지스터(1028-1), 워크 메모리(1029-1), 및 DC(1030-1)는, 버스(1032-1)에 의해 접속된다.Main processor 1021-1, each subprocessor 1023-1, 1023-2 and 1023-3, DMAC 1025-1, control register 1028-1, work memory 1029-1, and DC 1030-1 is connected by a bus 1032-1.
정보 처리 컨트롤러(1011)에는, 해당 정보 처리 컨트롤러(1011)를 구비하는 정보 처리 장치(1001)를 네트워크 전체를 통하여 일의적으로 식별할 수 있는 식별자가, 정보 처리 장치 ID로서 할당된다.The
메인 프로세서(1021-1), 및 각 서브 프로세서(1023-1, 1023-2 및 1023-3)에 대해서도 마찬가지로, 각각을 특정할 수 있는 식별자가, 메인 프로세서 ID 및 서브 프로세서 ID로서 할당된다.Similarly, for the main processor 1021-1 and each of the subprocessors 1023-1, 1023-2, and 1023-3, identifiers that can be specified are assigned as the main processor ID and the subprocessor ID.
정보 처리 컨트롤러(1011)는, 원 칩 IC(집적 회로)로서 구성하는 것이 바람직하다.The
다른 정보 처리 장치(1002, 1003 및 1004)도, 마찬가지로 구성된다. 여기서, 페어런트 번호가 동일한 유닛은, 브랜치 번호가 상이하더라도, 특히 특기사항이 없는 한, 동일한 기능을 하는 것으로 한다. 또한, 이하의 설명에 있어서 브랜치 번호가 생략되어 있는 경우에는, 브랜치 번호의 상이에 의한 차이를 발생하지 않는 것으로 한다.The other
(3-2. 각 서브 프로세서로부터 메인 메모리에의 액세스)(3-2. Access to main memory from each subprocessor)
전술한 바와 같이, 1개의 정보 처리 컨트롤러내의 각 서브 프로세서(1023)는, 독립적으로 서브 프로세서 프로그램을 실행하여, 데이터를 처리하지만, 상이한 서브 프로세서가 메인 메모리(1026)내의 동일 영역에 대하여 동시에 판독 또는 기입을 행한 경우에는, 데이터의 부정합을 발생시킬 수 있다. 따라서, 서브 프로세서(1023)로부터 메인 메모리(1026)에의 액세스는, 이하와 같은 순서에 의해 행한다.As described above, each subprocessor 1023 in one information processing controller independently executes a subprocessor program to process data, but different subprocessors simultaneously read or read the same area in the
서브 메모리(1027) 및 워크 메모리(1029)에 대해서도 마찬가지로, 상이한 서브 프로세서가 동일 영역에 대하여 동시에 액세스하는 것이 고려되지만, 여기서는 메인 메모리(1026)에 대하여 나타낸다.Similarly with respect to the
도 17a에 도시하는 바와 같이, 메인 메모리(1026)는, 어드레스 지정 가능한 복수의 메모리 로케이션 0∼N에 의해 구성된다. 각 메모리 로케이션에 대해서는, 데이터의 상태를 나타내는 정보를 저장하기 위한 추가 세그먼트 0∼N이 할당된다. 추가 세그먼트는, F/E 비트, 서브 프로세서 ID 및 LS 어드레스(로컬 스토리지 어드레스)를 포함하는 것으로 된다. 또한, 각 메모리 로케이션에는, 후술하는 액세스 키 0∼N도 할당된다. F/E 비트는, 이하와 같이 정의된다.As shown in FIG. 17A, the
F/E 비트=0은, 서브 프로세서(1023)에 의해 판독되고 있는 처리중의 데이터, 또는 공백 상태이기 때문에 최신 데이터가 아닌 무효 데이터이고, 판독 불가인 것을 나타낸다. 또한, F/E 비트=0은, 해당 메모리 로케이션에 데이터 기입 가능한 것을 나타내고, 기입 후에 1로 설정된다.The F / E bit = 0 indicates that data is being processed by the
F/E 비트=1은, 해당 메모리 로케이션의 데이터가 서브 프로세서(1023)에 의해 판독되지 않고, 미 처리의 최신 데이터인 것을 나타낸다. 해당 메모리 로케이션의 데이터는 판독 가능하고, 서브 프로세서(1023)에 의해 판독된 후에 0으로 설 정된다. 또한, F/E 비트=1은, 해당 메모리 로케이션이 데이터 기입 불가인 것을 나타낸다.F / E bit = 1 indicates that the data of the memory location is not read by the
또한, 상기 F/E 비트=0(판독 불가/기입 가)의 상태에서, 해당 메모리 로케이션에 대하여 판독 예약을 설정하는 것은 가능하다. F/E 비트=0의 메모리 로케이션에 대하여 판독 예약을 행하는 경우에는, 서브 프로세서(1023)는, 판독 예약을 행하는 메모리 로케이션의 추가 세그먼트에, 판독 예약 정보로서 해당 서브 프로세서(1023)의 서브 프로세서 ID 및 LS 어드레스를 기입한다.Further, in the state of the F / E bit = 0 (non-read / write value), it is possible to set a read reservation for the corresponding memory location. When a read reservation is made to a memory location of F / E bit = 0, the
그 후, 데이터 기입측의 서브 프로세서(1023)에 의해, 판독 예약된 메모리 로케이션에 데이터가 기입되어, F/E 비트=1(판독 가/기입 불가)로 설정되었을 때, 미리 판독 예약 정보로서 추가 세그먼트에 기입된 서브 프로세서 ID 및 LS 어드레스에 판독된다.Thereafter, when the data is written to the memory location reserved for reading by the
복수의 서브 프로세서에 의해 데이터를 다단계로 처리할 필요가 있는 경우, 이와 같이 각 메모리 로케이션의 데이터의 판독/기입을 제어함으로써, 전 단계의 처리를 행하는 서브 프로세서(1023)가, 처리완료 데이터를 메인 메모리(1026)내의 소정 어드레스에 기입한 후에 곧 바로, 후 단계의 처리를 행하는 별도의 서브 프로세서(1023)가 전 처리후의 데이터를 판독하는 것이 가능하게 된다.When it is necessary to process data in multiple stages by a plurality of subprocessors, the
도 17b에 도시하는 바와 같이, 각 서브 프로세서(1023)내의 LS(1024)도, 어드레스 지정 가능한 복수의 메모리 로케이션 0∼L에 의해 구성된다. 각 메모리 로케이션에 대해서는, 마찬가지로 추가 세그먼트 0∼L이 할당된다. 추가 세그먼트는, 비지 비트를 포함하는 것으로 된다.As shown in FIG. 17B, the
서브 프로세서(1023)가 메인 메모리(1026)내의 데이터를 자신의 LS(1024)의 메모리 로케이션에 판독할 때에는, 판독처의 메모리 로케이션에 대응하는 비지 비트를 1로 설정하여 예약한다. 비지 비트가 1인 메모리 로케이션에는, 다른 데이터는 저장할 수 없다. LS(1024)의 메모리 로케이션에 판독 후, 비지 비트는 0으로 되어, 임의의 목적으로 사용할 수 있게 된다.When the
도 17a에 도시하는 바와 같이, 또한 각 정보 처리 컨트롤러와 접속된 메인 메모리(1026)에는, 복수의 샌드 박스가 포함된다. 샌드 박스는, 메인 메모리(1026)내의 영역을 획정하는 것이고, 각 샌드 박스는, 각 서브 프로세서(1023)에 할당되어, 그 서브 프로세서를 배타적으로 사용할 수 있다. 즉, 각각의 서브 프로세서(1023)는, 자신에게 할당된 샌드 박스를 사용할 수 있지만, 이 영역을 넘어 데이터의 액세스를 행할 수는 없다.As shown in FIG. 17A, the
메인 메모리(1026)는, 복수의 메모리 로케이션 0∼N으로 구성되지만, 샌드 박스는, 이들의 메모리 로케이션의 집합이다. 즉, 1개의 샌드 박스는, 1개 또는 복수의 메모리 로케이션으로 구성된다.The
또한, 메인 메모리(1026)의 배타적인 제어를 실현하기 위해, 도 17c에 도시한 바와 같은 키 관리 테이블이 이용된다. 키 관리 테이블은, 정보 처리 컨트롤러내의 SRAM과 같은 비교적 고속의 메모리에 저장되어, DMAC(1025)와 관련지어진다. 단, 키 관리 테이블은, 워크 메모리(1029)에 저장되어도 무방하다.In addition, in order to realize exclusive control of the
키 관리 테이블내에는, 정보 처리 컨트롤러내의 서브 프로세서의 수와 동수의 엔트리가 존재하고, 각 엔트리에는, 서브 프로세서 ID 및, 그것에 대응하는 서 브 프로세서 키 및 키 마스크가 관련지어져서 저장된다.In the key management table, there are entries equal to the number of subprocessors in the information processing controller, and each entry is stored in association with the subprocessor ID, the subprocessor key and the key mask corresponding thereto.
서브 프로세서(1023)가 메인 메모리(1026)를 사용할 때의 프로세스는, 이하와 같다. 우선, 서브 프로세서(1023)는 DMAC(1025)에, 판독 또는 기입의 커맨드를 송신한다. 이 커맨드에는, 자신의 서브 프로세서 ID와, 액세스 요구처인 메인 메모리(1026)내의 어드레스가 포함된다.The process when the
DMAC(1025)는, 이 커맨드를 실행하기 전에, 키 관리 테이블을 참조하여, 액서스 요구원의 서브 프로세서(1023)의 서브 프로세서 키를 조사한다. 다음으로, DMAC(1025)는, 조사한 액세스 요구원의 서브 프로세서 키와, 액세스 요구처인 메인 메모리(1026)내의 도 17a에 도시한 메모리 로케이션에 할당된 액세스 키를 비교하여, 2개의 키가 일치한 경우에만, 상기의 커맨드를 실행한다.Before executing this command, the
도 17c에 도시한 키 관리 테이블상의 키 마스크는, 그 임의의 비트가 1로 됨으로써, 그 키 마스크에 관련지어진 서브 프로세서 키의 대응하는 비트가 0 또는 1로 될 수 있다.In the key mask on the key management table shown in Fig. 17C, any of the bits becomes 1, so that the corresponding bit of the subprocessor key associated with the key mask can be 0 or 1.
예를 들면, 서브 프로세서 키가 1010이라고 하자. 통상적으로, 이 서브 프로세서 키에 의해 1010의 액세스 키를 갖는 샌드 박스에의 액세스만이 가능하다. 그러나, 이 서브 프로세서 키와 관련지어진 키 마스크가 0001로 설정되어 있는 경우에는, 키 마스크의 비트가 1로 설정된 자릿수에 대해서만, 서브 프로세서 키와 액세스 키와의 일치 판정이 마스크되고, 이 서브 프로세서 키 1010에 의해, 액세스 키가 1010 또는 1011 중 어느 하나인 액세스 키를 갖는 샌드 박스에의 액세스가 가능하게 된다.For example, suppose the subprocessor key is 1010. Typically, this subprocessor key only allows access to a sandbox with an access key of 1010. However, when the key mask associated with this subprocessor key is set to 0001, only the number of digits in which the bit of the key mask is set to 1 is matched with the subprocessor key and the access key, and this subprocessor key is masked. The 1010 enables access to a sandbox having an access key whose access key is either 1010 or 1011.
이상과 같이 하여, 메인 메모리(1026)의 샌드 박스의 배타성이 실현된다. 즉, 1개의 정보 처리 컨트롤러내의 복수의 서브 프로세서에 의해 데이터를 다단계로 처리할 필요가 있는 경우, 이상과 같이 구성함으로써, 전 단계의 처리를 행하는 서브 프로세서와, 후 단계의 처리를 행하는 서브 프로세서만이, 메인 메모리(1026)내의 소정 어드레스에 액세스할 수 있게 되어, 데이터를 보호할 수 있다.In this manner, the exclusivity of the sandbox of the
예를 들면, 이하와 같이 사용하는 것이 고려된다. 우선, 정보 처리 장치의 기동 직후에는, 키 마스크의 값은 모두 제로이다. 메인 프로세서내의 프로그램이 실행되어, 서브 프로세서내의 서브 프로세서 프로그램과 제휴 동작하는 것으로 한다. 제1 서브 프로세서에 의해 실행된 처리 결과 데이터를 일단, 메인 메모리(1026)에 저장하고, 제2 서브 프로세서에 송신하고자 할 때에는, 해당하는 메인 메모리 영역은, 당연히 어느 쪽의 서브 프로세서로부터도 액세스 가능해야 한다. 그와 같은 경우에, 메인 프로세서내의 프로그램은, 키 마스크의 값을 적절하게 변경하여, 복수의 서브 프로세서로부터 액세스할 수 있는 메인 메모리 영역을 마련함으로써, 서브 프로세서에 의한 다단계적인 처리를 가능하게 한다.For example, use as follows is considered. First, immediately after the start of the information processing apparatus, the values of the key masks are all zero. It is assumed that a program in the main processor is executed to cooperate with the subprocessor program in the subprocessor. When the processing result data executed by the first subprocessor is to be stored in the
보다 구체적으로는, 다른 정보 처리장치로부터의 데이터→제1 서브 프로세서에 의한 처리→제1 메인 메모리 영역→제2 서브 프로세서에 의한 처리→제2 메인 메모리 영역이라고 하는 순서로 다단계 처리가 행하여질 때에는, More specifically, when the multi-step processing is performed in the order of data from another information processing apparatus → processing by the first subprocessor → processing by the first sub memory → processing by the second sub processor → second main memory area. ,
제1 서브 프로세서의 서브 프로세서 키 : 0100, Subprocessor key of the first subprocessor: 0100,
제1 메인 메모리 영역의 액세스 키 : 0100, Access key of the first main memory area: 0100,
제2 서브 프로세서의 서브 프로세서 키 : 0101, Subprocessor key of the second subprocessor: 0101,
제2 메인 메모리 영역의 액세스 키 : 0101, Access key of the second main memory area: 0101,
과 같은 설정대로라면, 제2 서브 프로세서는 제1 메인 메모리 영역에 액세스할 수 없다. 따라서, 제2 서브 프로세서의 키 마스크를 0001로 함으로써, 제2 서브 프로세서에 의한 제1 메인 메모리 영역에의 액세스를 가능하게 할 수 있다.As described above, the second subprocessor cannot access the first main memory area. Therefore, by setting the key mask of the second subprocessor to 0001, it is possible to enable access to the first main memory area by the second subprocessor.
(3-3. 각 서브 프로세서로부터 메인 메모리 및 서브 메모리에의 액세스)(3-3. Access to main memory and sub memory from each sub processor)
1개의 정보 처리 컨트롤러내의 각 서브 프로세서(1023)는, 메인 메모리(1026)에 대해서와 마찬가지로, 서브 메모리(1027)에 대해서도, 판독 또는 기입이 가능하지만, 그 커맨드에는, 몇개의 종류가 고려되고, 우선도의 고저가 있는 것도 있을 수 있다. 그래서 이하에, 각 서브 프로세서(1023)가 정확하게 메인 메모리(1026) 및 서브 메모리(1027)를 사용하기 위한 구성 및 순서를 나타낸다.Each
도 18에 도시하는 바와 같이, DMAC(1025)는 내부에, 메인 메모리 컨트롤 레지스터(1033) 및 서브 메모리 컨트롤 레지스터(1034)를 갖는다. 메인 메모리 컨트롤 레지스터(1033)는, 메인 메모리(1026)에 액세스하기 위한 것으로, 서브 메모리 컨트롤 레지스터(1034)는, 서브 메모리(1027)에 액세스하기 위한 것이다.As shown in FIG. 18, the
메인 메모리 컨트롤 레지스터(1033)는, 이하의 4개의 블록으로 구성되고, 이하와 같이 각각이 메인 메모리(1026)에 액세스하기 위한 커맨드를 저장한다.The main memory control register 1033 is composed of the following four blocks, and each stores a command for accessing the
우선 커맨드 블록에는, 우선도가 높은 커맨드를 복수개 저장한다. 그 커맨드는 우선적으로 처리된다.First, a plurality of commands having high priority are stored in the command block. The command is processed first.
통상 커맨드 블록1에는, 통상의 커맨드를 복수개 저장하고, 통상 커맨드 블록2에도, 통상의 커맨드를 복수개 저장한다. 통상 커맨드 블록1과 통상 커맨드 블 록2 사이에는, 기능적인 차는 없지만, 예를 들면, 메인 메모리(1026)에의 액세스 실행전의 커맨드를 한쪽의 블록에 저장하고, 실행후의 커맨드를 다른쪽의 블록에 저장하는 것에 의해, 실행전과 실행후의 커맨드를, 각각 집중적 및 연속적으로 처리할 수 있는 효과가 있다.The
오더 커맨드 블록에는, 올바른 순서로 처리되어야 하는 커맨드를 복수개 저장한다. 즉, 각 서브 프로세서(1023)로부터의 커맨드를, 수신한 순서대로, 커맨드 송신원의 서브 프로세서의 서브 프로세서 ID와 더불어 저장한다. 이에 의해, 수신한 순서대로 커맨드를 처리하고, 또한 동일한 순서로 커맨드 송신원 서브 프로세서에 실행 결과를 회신할 수 있다.In the order command block, a plurality of commands to be processed in the correct order are stored. In other words, the commands from the
서브 메모리 컨트롤 레지스터(1034)도, 이하의 4개의 블록으로 구성되고, 이하와 같이 각각이 서브 메모리(1027)에 액세스하기 위한 커맨드를 저장한다.The sub memory control register 1034 is also composed of the following four blocks, and each stores a command for accessing the
우선 커맨드 블록에는, 우선도가 높은 커맨드를 복수개 저장한다. 그 커맨드는 우선적으로 처리된다.First, a plurality of commands having high priority are stored in the command block. The command is processed first.
리드 커맨드 블록에는, 리드 커맨드를 복수개 저장하고, 라이트 커맨드 블록에는, 라이트 커맨드를 복수개 저장한다.A plurality of read commands is stored in the read command block, and a plurality of write commands are stored in the write command block.
대기 커맨드 블록에는, 서브 메모리(1027)내의 임의의 영역에 대하여 액세스를 시도했지만, 대상 영역이 록되어 있어 액세스 불가였던 커맨드를 복수개 저장한다. 록 해제시에는, 그 커맨드는 우선 커맨드 블록으로 이동한다.Although an attempt was made to access an arbitrary area in the
각 서브 프로세서(1023)는, 예를 들면, 도 19에 도시하는 바와 같은 구조의 커맨드에 의해, 메인 메모리(1026) 또는 서브 메모리(1027)에 액세스한다. 액세스 실행후의 메인 메모리(1026) 또는 서브 메모리(1027)로부터의 실행 결과의 레스펀스도, 동일 구조로 된다.Each
이 커맨드/레스펀스 구조에 있어서, 커맨드 타입으로서는, 리드와 라이트가 있다. 우선 커맨드 식별자는, 해당 커맨드가 우선도가 높은 커맨드인 것을 나타낸다. 통상 커맨드 식별자는, 메인 메모리(1026)에의 액세스시의 것이고, 해당 커맨드가 통상 커맨드 블록1 또는 통상 커맨드 블록2에 저장되는 것을 나타낸다.In this command / response structure, the command types are read and write. The priority command identifier indicates that the command is a high priority command. The normal command identifier is at the time of access to the
체인 커맨드 식별자도, 메인 메모리(1026)에의 액세스시의 것이고, 해당 커맨드가 직전 또는 직후의 커맨드와 함께 연속적인 액세스가 필요하다는 것을 나타낸다. 또는, 연속하는 커맨드 열의 일련 번호이어도 무방하다. 체인 커맨드 식별자가 세트된 커맨드는, 오더 커맨드 블록에 저장되지만, 처리의 우선도는, 우선 커맨드 블록내의 커맨드보다 높은 것으로 한다.The chain command identifier is also at the time of access to the
여기서의 어드레스는, 커맨드를 실행하는 메인 메모리(1026) 또는 서브 메모리(1027)내의 어드레스를 나타낸다. 또는, 워크 메모리(1029)내의 어드레스이어도 무방하다.The address here represents an address in the
서브 프로세서 식별자는, 커맨드 송신원의 서브 프로세서의 서브 프로세서 ID이다. 프로세싱 스레드 식별자는, 커맨드 송신원의 후술하는 프로세싱 스레드의 식별자이다.The subprocessor identifier is a subprocessor ID of the subprocessor of the command transmission source. The processing thread identifier is an identifier of a processing thread, which will be described later, from the command sender.
OK/NG는, 커맨드의 성공/실패를 나타낸다. 여기서의 데이터는, 리드 커맨드 실행시에 레스펀스에 포함되는 판독된 데이터, 또는 라이트 커맨드 실행시에 커맨드에 포함되는 기입되는 데이터이다.OK / NG indicates the success / failure of the command. The data herein is read data included in the response at the time of executing the read command, or data written in the command at the time of executing the write command.
도 18에 도시하는 바와 같이, DMAC(1025)내에는, 전술한 각 서브 프로세서(1023)가 메인 메모리(1026)에 정확하게 액세스하기 위한 메인 메모리 컨트롤 레지스터(1033), 및 각 서브 프로세서(1023)가 서브 메모리(1027)에 정확하게 액세스하기 위한 서브 메모리 컨트롤 레지스터(1034) 이외에, 메인 프로세서(1021)가 메인 메모리(1026) 또는 서브 메모리(1027)에 액세스하기 위한 리드 커맨드 및 라이트 커맨드를 각각 복수개 저장할 수 있는 메인 프로세서용 리드 커맨드 블록(1035) 및 메인 프로세서용 라이트 커맨드 블록(1036)을 마련할 수도 있다. 어드레스 변환 레지스터(1037)에 대해서는, 후술한다.As shown in FIG. 18, in the
또한, 복수의 서브 프로세서가 DMAC(1025)에 대하여, 우선도가 동일한 메모리 액세스 커맨드를 동일한 타이밍으로 송신한 경우에는, 이하의 순서에 따르는 것으로 한다. 즉, DMAC(1025)는, 내부에 메모리 액세스에 성공한 최후의 서브 프로세서를 나타내는 포인터를 갖는 것으로 하고, 복수의 서브 프로세서로부터 우선도가 동일한 메모리 액세스 커맨드를 동일한 타이밍으로 수신했을 때에는, 해당 포인터보다 값이 크고, 또한 해당 포인터와의 차분이 가장 작은 커맨드를 우선시키는 것으로 한다. 이 경우, 가장 큰 포인터 값의 다음은, 가장 작은 포인터 값으로 한다.When the plurality of subprocessors transmit the memory access commands having the same priority to the
(3-4. 각 서브 프로세서로부터 메인 메모리에 정확하게 액세스하기 위한 서브 메모리에의 액세스)(3-4. Access to sub memory for accurate access to main memory from each sub processor)
DRAM 등에 의해 구성되는 메인 메모리(1026), 및 SRAM 등에 의해 구성되는 서브 메모리(1027)는, 당연히, 각각의 소자의 구조가 상이하기 때문에, 사용 목적 도 상이해진다.The
따라서, 메인 메모리(1026)와 서브 메모리(1027)를 조합하여 사용하는 방법의 일례로서, 각 서브 프로세서(1023)가 메인 메모리(1026)에 액세스할 때의 어드레스 변환을 서브 메모리(1027)가 담당하는 것이 고려된다. 그 때문의 구성 및 순서를, 도 20을 이용하여 나타낸다.Therefore, as an example of a method of using the
전술한 바와 같이, 메인 메모리(1026)는, 복수의 메모리 로케이션에 의해 구성되고, 또한 1개의 샌드 박스는, 1개 또는 복수의 메모리 로케이션으로 구성된다. 그리고, 각 서브 프로세서(1023)는, 자신에게 할당된 샌드 박스를 배타적으로 사용할 수 있다.As described above, the
예를 들면, 도 20a에 나타내는 바와 같이, 임의의 서브 프로세서(1023)에, 메인 메모리(1026)내의 샌드 박스1, 2, 3이 할당되어 있는 것으로 한다. 샌드 박스1은 0x800∼0x8FF, 샌드 박스2는 0x200∼0x2FF, 샌드 박스3은 0xF00∼0xFFF로 하고, 각 샌드 박스는 선두 어드레스에 의해 식별되는 것으로 한다. 즉, 할당되는 각 샌드 박스는, 어드레스가 연속하지 않아도 무방하다.For example, as illustrated in FIG. 20A, it is assumed that
해당 서브 프로세서(1023)는, 이들 샌드 박스1, 2, 3으로부터 데이터를 판독할 때에는, 우선, DMAC(1025)내의 어드레스 변환 레지스터(1037)에 액세스한다.The
어드레스 변환 레지스터(1037)는, 서브 프로세서(1023)와, 해당 서브 프로세서(1023)에 할당된 샌드 박스를 관련짓는 레지스터이고, 서브 프로세서(1023)의 수와 동수의 엔트리로 구성된다. 여기서는, Q1로 나타나는 엔트리가 해당 서브 프로세서(1023)에 대응하는 것으로 한다.The
이 때, 서브 프로세서(1023)는, 자신에게 대응하는 Q1의 값을 판독한다. 또한, 판독된 Q1의 값(0x80)으로 나타나는, 서브 메모리(1027)내의 제1 어드레스로부터, 데이터(0x20)를 판독한다.At this time, the
샌드 박스1의 영역은, Q1의 값에 기초하여 특정된다. 예를 들면, Q1의 값을 16배한 값이 샌드 박스1의 선두 어드레스를 나타내고, 그 선두 어드레스에 255를 가산한 값이 샌드 박스1의 종료 어드레스를 나타낸다. 따라서, 상기한 바와 같이 Q1의 값이 0x80일 때에는, 샌드 박스1의 영역은 0x800∼0x8FF이다.The area of the
또한, 서브 프로세서(1023)는, 상기의 제1 어드레스로부터 판독된 데이터(0x20)로 나타나는, 동일한 서브 메모리(1027)내의 제2 어드레스로부터, 데이터(0xF0)를 판독한다.Further, the
샌드 박스2의 영역은, 이 제2 어드레스로부터 판독된 데이터에 기초하여 특정된다. 구체적으로, 샌드 박스1과 마찬가지로, 제2 어드레스로부터 판독된 데이터의 값을 16배한 값이 샌드 박스2의 선두 어드레스를 나타내고, 그 선두 어드레스에 255를 가산한 값이 샌드 박스2의 종료 어드레스를 나타낸다. 따라서, 상기한 바와 같이 제2 어드레스로부터 판독된 데이터가 0xF0일 때에는, 샌드 박스2의 영역은 0x200∼0x2FF이다.The area of the
또한, 서브 프로세서(1023)는, 상기의 제2 어드레스로부터 판독된 데이터(0xF0)로 나타나는, 동일한 서브 메모리(1027)내의 제3 어드레스로부터, 데이터(0x00)를 판독한다. 0x00은, 할당된 샌드 박스의 종료를 나타낸다.Further, the
샌드 박스3의 영역은, 이 제3 어드레스로부터 판독된 데이터에 기초하여 특 정된다. 구체적으로, 샌드 박스1, 2와 마찬가지로, 제3 어드레스로부터 판독된 데이터의 값을 16배한 값이 샌드 박스3의 선두 어드레스를 나타내고, 그 선두 어드레스에 255를 가산한 값이 샌드 박스3의 종료 어드레스를 나타낸다. 따라서, 상기한 바와 같이 제3 어드레스로부터 판독된 데이터가 0x00일 때에는, 샌드 박스3의 영역은 0xF00∼0xFFF이다.The area of the
이상과 같이, 각 서브 프로세서(1023)는, 자신에게 할당된 샌드 박스의 어드레스가 비연속이더라도, 할당된 샌드 박스에 정확하게 액세스할 수가 있어, 할당된 샌드 박스로부터 데이터를 확실하게 판독할 수 있다.As described above, each subprocessor 1023 can accurately access the assigned sandbox even if the address of the sandbox assigned to it is discontinuous, and can reliably read data from the assigned sandbox.
다음으로, 동일한 서브 프로세서(1023)가, 메인 메모리(1026)내의 새로운 샌드 박스에 데이터를 기입하고, 해당 샌드 박스를 어드레스 변환 레지스터(1037)내의 자신에게 대응한 엔트리에 의해 관리되는 샌드 박스 그룹에 추가하기 위한 순서를, 도 20b를 이용하여 나타낸다.Next, the
해당 서브 프로세서(1023)가, 메인 메모리(1026)내의 0x000∼0x0FF의 영역인 샌드 박스4에 데이터를 기입했다고 하자. 이 때, 해당 서브 프로세서(1023)는, 우선, Q1의 값(Q1의 초기값, 예를 들면 상기한 바와 같이 0x80)을 판독한다.It is assumed that the
다음으로, 해당 서브 프로세서(1023)는, 새롭게 데이터를 기입한 샌드 박스4를 특정할 수 있는 서브 메모리(1027)내의 어드레스에, 먼저 판독한 Q1의 값(0x80)을 기입한다. 예를 들면, 금회는 0x000∼0x0FF의 영역에 데이터를 기입했기 때문에, 선두 어드레스인 0x000을 16으로 나눈 0x00으로 나타나는 서브 메모리(1027)내의 어드레스에 Q1의 값(0x80)을 기입한다. 또한, Q1의 값(0x80)을 기입한 서브 메 모리(1027)내의 어드레스(0x00)를 새로운 Q1의 값으로서, 어드레스 변환 레지스터(1037)내의 Q1에 기입한다.Subsequently, the
이상과 같이 하여, 각 서브 프로세서(1023)는, 새로운 샌드 박스를 기존의 샌드 박스 그룹에 추가할 수 있다. 이 경우에도, 각 샌드 박스의 어드레스가 비연속이어도 무방하다. 또한, 기존의 샌드 박스 그룹이 존재하지 않고, 최초의 샌드 박스를 서브 메모리(1027) 및 어드레스 변환 레지스터(1037)와 관련지을 때에도, 상기의 방법을 이용할 수 있다.As described above, each subprocessor 1023 can add a new sandbox to an existing sandbox group. Even in this case, the address of each sandbox may be discontinuous. The above method can also be used when there is no existing sandbox group and the first sandbox is associated with the
(3-5. 메인 프로세서 및 각 서브 프로세서로부터 워크 메모리에의 액세스)(3-5. Accessing Work Memory from the Main Processor and Each Subprocessor)
전술한 바와 같이, 메인 메모리(1026)는, DRAM 등에 의해 구성되고, 또한 DMA 방식에 의해 데이터가 전송되기 때문에, 각 서브 프로세서(1023)는, 대용량의 메인 메모리(1026)를 고속으로 사용할 수 있다. 또한, 서브 메모리(1027)는, SRAM 등에 의해 구성되고, 마찬가지로 고속으로 사용할 수 있다.As described above, since the
또한, 메인 프로세서(1021) 및 각 서브 프로세서(1023)가, 정보 처리 컨트롤러에 접속된 메인 메모리(1026) 및 서브 메모리(1027)와 함께, 정보 처리 컨트롤러 내에 포함되는 워크 메모리(1029)를 작업용 메모리로서 공유하여 사용할 수 있으면, 한층 더 고속화를 실현할 수 있다.In addition, the main processor 1021 and each subprocessor 1023
또한, 해당 워크 메모리(1029)에 의해 간단한 수치 연산을 할 수 있으면, 효율적이다. 워크 메모리(1029)는, 전술한 바와 같이 SRAM 등에 의해 구성되기 때문에, DRAM과 같은 대용량화는 기대할 수 없지만, 매우 고속이다.In addition, if a simple numerical operation can be performed by the
이하에, 메인 프로세서(1021) 및 각 서브 프로세서(1023)가 워크 메모리 (1029)에 액세스하는 경우의 구성 및 순서를 나타낸다.The configuration and procedure in the case where the main processor 1021 and each subprocessor 1023 access the
도 21에 나타내는 바와 같이, 워크 메모리(1029)는, 컨트롤러(1038)와 RAM(1039)으로 구성된다. RAM(1039)으로서는, SRAM을 이용할 수 있지만, 그것에 한정되는 것은 아니다. RAM(1039)은, 복수의 블록으로 구성된다. 각 블록에는, 어드레스가 할당되고, 데이터가 기억된다.As shown in FIG. 21, the
메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 컨트롤러(1038)를 통하여 RAM(1039)에 액세스한다. 구체적으로, 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 컨트롤러(1038)에 커맨드, 어드레스 또는 데이터 등을 송신하고, 컨트롤러(1038)는, 그것에 따라서 RAM(1039)에 액세스한다.The main processor 1021 and each subprocessor 1023 access the
처리 실행후, 컨트롤러(1038)는, 커맨드 송신원의 메인 프로세서(1021) 또는 서브 프로세서(1023)에 커맨드 실행 결과를 회신한다.After the execution of the process, the
각 서브 프로세서(1023)가 워크 메모리(1029)에 액세스할 때의 커맨드는, 예를 들면 도 19에 도시한 바와 같은, 메인 메모리(1026) 또는 서브 메모리(1027)에의 액세스시에 이용하는 것과 동일하다. 처리 실행후의 워크 메모리(1029)로부터의 실행 결과의 레스펀스도, 동일 구조이다.Commands when each subprocessor 1023 accesses the
단, 워크 메모리(1029)에 액세스하는 경우에는, 도 19에 도시한 커맨드 중의 우선 커맨드 식별자, 통상 커맨드 식별자, 체인 커맨드 식별자, 프로세싱 스레드 식별자는, 기본적으로 사용하지 않는다. 그러나, 워크 메모리(1029)가, 이들의 식별자에 대응 가능하면, 사용해도 무방하다. 커맨드 타입으로서는, 이하에 도시하는 바와 같은, 몇 개 정도가 고려된다.However, when the
제1은, 리드 커맨드이다. 이것은, 워크 메모리(1029)내의 데이터를 판독하기 위해 사용된다. 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 리드 커맨드와 함께, 원하는 데이터를 기억하는 RAM(1039)내의 블록의 어드레스도 송신한다. 컨트롤러(1038)로부터는, 실행 결과로서, 리드 커맨드의 성공/실패를 나타내는 OK/NG로, 판독된 데이터가 회신된다.The first is a read command. This is used to read data in the
제2는, 라이트 커맨드이다. 이것은, 워크 메모리(1029)내에 데이터를 기입하기 위해 사용된다. 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 라이트 커맨드, 데이터, 해당 데이터를 기억시키는 RAM(1039)내의 블록의 어드레스를 송신한다. 컨트롤러(1038)로부터는, 실행 결과로서, 라이트 커맨드의 성공/실패를 나타내는 OK/NG가 회신된다.The second is a write command. This is used to write data into the
제3은, 가산 커맨드이다. 이것은, 워크 메모리(1029)내의 데이터를 가산하기 위해 사용된다. 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 가산 커맨드, 가산시키는 데이터를 기억하는 RAM(1039)내의 블록의 어드레스를 송신한다. 컨트롤러(1038)는, 수신한 어드레스의 블록에 있어서의 데이터에 1을 가산하여, 덮어쓰기 한다. 실행 결과로서, 가산 커맨드의 성공/실패를 나타내는 OK/NG가 회신된다.The third is an addition command. This is used to add data in the
제4는, 세트 커맨드이다. 이것은, 워크 메모리(1029)내의 데이터를 비트 단위로 조작하기 위해 사용된다. 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 세트 커맨드, 조작하는 데이터를 기억하는 RAM(1039)내의 블록의 어드레스, 및 마스크 데이터를 송신한다.The fourth is a set command. This is used to manipulate data in the
이에 대하여, 컨트롤러(1038)는, 수신한 마스크 데이터와, 수신한 어드레스의 블록에 있어서의 데이터를 비교하여, 마스크 데이터에 있어서 값이 1인 비트와 동일한 위치의, 데이터에 있어서의 비트의 값을 1로 한다. 실행 결과로서, 세트 커맨드의 완료를 나타내는 Completed가 회신된다. 이 때, 세트 커맨드 실행전의 데이터도 회신함으로써, 커맨드의 성공/실패를 확인할 수 있도록 하여도 무방하다.In contrast, the
제5는, 클리어 커맨드이다. 이것도, 워크 메모리(1029)내의 데이터를 비트 단위로 조작하기 위해 사용된다. 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 클리어 커맨드, 조작하는 데이터를 기억하는 RAM(1039)내의 블록의 어드레스, 및 마스크 데이터를 송신한다.The fifth is a clear command. This is also used to manipulate data in the
이에 대하여, 컨트롤러(1038)는, 수신한 마스크 데이터와, 수신한 어드레스의 블록에 있어서의 데이터를 비교하여, 마스크 데이터에 있어서 값이 1인 비트와 동일한 위치의, 데이터에 있어서의 비트의 값을 0으로 한다. 실행 결과로서, 클리어 커맨드의 완료를 나타내는 Completed가 회신된다. 이 때, 클리어 커맨드 실행전의 데이터도 회신함으로써, 커맨드의 성공/실패를 확인할 수 있도록 하여도 무방하다.In contrast, the
이상과 같이, 메인 프로세서(1021) 및 각 서브 프로세서(1023)는, 대용량의 메인 메모리(1026) 및 고속의 서브 메모리(1027) 이외에, 워크 메모리(1029)를 병용할 수 있다. 또한, 워크 메모리(1029)를 메인 메모리(1026) 또는 서브 메모리(1027)의 캐쉬로서 이용하면, 한층 더 고속화를 기대할 수 있다.As described above, the main processor 1021 and each subprocessor 1023 can use the
(3-6. 각 서브 프로세서 내의 프로세싱 스레드)(3-6. Processing Threads in Each Subprocessor)
전술한 바와 같이, 1개의 정보 처리 컨트롤러내의 각 서브 프로세서(1023)는 구조상 독립되어 있다. 따라서, 각각의 서브 프로세서(1023)가 독립적으로 서브 프로세서 프로그램을 실행하여, 데이터를 처리할 수 있다. 또한, 각 서브 프로세서(1023)가 내부에, 가상적으로 독립한 복수의 프로세싱 스레드를 갖는 것도 고려된다. 그 구조를 도 22에 나타낸다.As described above, each subprocessor 1023 in one information processing controller is independent in structure. Thus, each subprocessor 1023 independently executes a subprocessor program to process data. It is also contemplated that each
서브 프로세서(1023)는, 내부에 갖는 아비터(1040)를 통하여, 버스(1032)와 접속된다. 서브 프로세서(1023)내에는, 또한 LS(로컬 스토리지)(1024)와 프로세싱 스레드(1041, 1042, 1043 및 1044)가 포함되고, 아비터(1040)는, 외부로부터의 신호를 적절한 프로세싱 스레드에 통지하는 역할을 담당한다.The
도 22에서는 각 프로세싱 스레드(1041, 1042, 1043 및 1044)를 독립적으로 나타내고 있지만, 어디까지나 가상적인 독립이다. 프로세싱 스레드(1041, 1042, 1043 및 1044)는, 각각 프로세싱 스레드 식별자가 할당되고, 독립 또한 병렬로 동작 가능하다.In FIG. 22, each
각 프로세싱 스레드(1041, 1042, 1043 및 1044)는, 메인 메모리(1026), 서브 메모리(1027) 또는 워크 메모리(1029)에 대하여 독립적으로 액세스를 행하기 위하여, 커맨드 송신원의 프로세싱 스레드에 확실하게 레스펀스가 회신되도록 해야 한다. 이를 위한 순서를 이하에 나타낸다.Each
각 프로세싱 스레드(1041, 1042, 1043 및 10440)가 각각의 메모리에 액세스할 때의 커맨드는, 예를 들면 도 19에 도시한 바와 같은, 각 서브 프로세서(1023)가 메모리에 액세스할 때에 이용하는 것과 동일하다. 처리 실행후의 각 메모리로 부터의 실행 결과의 레스펀스도, 동일 구조이다.The command when each
도 19의 커맨드/레스펀스 구조에 대해서는 전술했지만, 서브 프로세서 식별자는 커맨드 송신원의 서브 프로세서의 서브 프로세서 ID이고, 또한 프로세싱 스레드 식별자는, 해당 서브 프로세서 내의 어느 프로세싱 스레드가 커맨드 송신원인지를 식별하기 위한 것이다.Although the command / response structure of FIG. 19 has been described above, the subprocessor identifier is the subprocessor ID of the subprocessor of the command sender, and the processing thread identifier is for identifying which processing thread in the subprocessor is the command sender. .
메인 메모리(1026), 서브 메모리(1027) 또는 워크 메모리(1029)로부터의 레스펀스는, 우선 서브 프로세서 식별자에 기초하여, 커맨드 송신원의 서브 프로세서(1023)에 회신된다. 또한, 프로세싱 스레드 식별자에 기초하여, 서브 프로세서(1023)내의 아비터(1040)에 의해, 커맨드 송신원의 프로세싱 스레드에 회신된다.The response from the
단, 동일한 처리를 행할 때 등, 서브 프로세서 내의 복수의 프로세싱 스레드 중의 어느 것이어도 무방한 경우에는, 프로세싱 스레드 식별자에 기초하지 않고서, 처리 부하가 가벼운 프로세싱 스레드에 회신하도록 하여도 무방하다. 또한, 메인 메모리(1026), 서브 메모리(1027) 또는 워크 메모리(1029)로부터 레스펀스를 수신할 때마다, 복수의 프로세싱 스레드 중의 1개를 차례차례로 선택하고, 그 선택된 프로세싱 스레드에 해당 레스펀스를 회신하도록 하여도 무방하다.However, when any of a plurality of processing threads in the subprocessor, for example, when performing the same processing, it is possible to return the processing load to the light processing thread without the processing thread identifier. In addition, each time a response is received from the
이상과 같이, 각 서브 프로세서(1023) 내의 복수의 프로세싱 스레드가, 메인 메모리(1026), 서브 메모리(1027) 또는 워크 메모리(1029)에 대하여 독립적으로 액세스를 행하는 경우에도, 커맨드 송신원의 프로세싱 스레드에 확실하게 레스펀스가 회신되도록 할 수 있다.As described above, even when a plurality of processing threads in each subprocessor 1023 independently access the
(3-7. 컨트롤 레지스터에 의한 서브 프로세서 프로그램의 관리)(3-7. Subprocessor Program Management with Control Registers)
1개의 정보 처리 컨트롤러 내에 복수의 서브 프로세서(1023)가 존재하고, 또한 각 서브 프로세서(1023) 내에 복수의 프로세싱 스레드를 갖는 경우에, 정보 처리 컨트롤러 내에서 처리되어야 하는 서브 프로세서 프로그램을, 어느 프로세싱 스레드에 처리시킬지를 결정하는 것은, 정보 처리 컨트롤러의 고속화를 실현하는 데에 있어서 중요하다.In the case where a plurality of
그래서 이하에, 도 16에 도시한 컨트롤 레지스터(1028)를 사용함으로써, 각 프로세싱 스레드에 대하여 적절하게 서브 프로세서 프로그램의 처리를 할당하여, 정보 처리 컨트롤러를 효율적으로 동작시키는 구성 및 순서를 나타낸다.Thus, by using the
도 23에 나타내는 바와 같이, 컨트롤 레지스터(1028)는, 처리 대기 서브 프로세서 프로그램 레지스터(1045)와 서브 프로세서 프로그램 처리 진척 레지스터(1046)로 구성된다.As shown in FIG. 23, the
처리 대기 서브 프로세서 프로그램 레지스터(1045)에 대하여 나타내면, 메인 프로세서(1021)는, 정보 처리 컨트롤러 내에서 처리되어야 하는 서브 프로세서 프로그램이 발생한 경우에는, 처리 대기 서브 프로세서 프로그램 레지스터(1045) 내에, 해당 서브 프로세서 프로그램 또는 이에 관련하는 데이터가 저장되어 있는 메인 메모리(1026), 서브 메모리(1027), 워크 메모리(1029), 또는 LS(로컬 스토리지)(1022 또는 1024)에 있어서의 어드레스를 기입한다.Referring to the processing wait
처리되어야 하는 서브 프로세서 프로그램이 존재하지 않는 상태에서는, 처리 대기 서브 프로세서 프로그램 레지스터(1045)의 값은 제로이다. 모든 프로세싱 스레드는, 자신이 아무것도 서브 프로세서 프로그램을 실행하고 있지 않는 동안은, 정기적 또는 비정기적으로 처리 대기 서브 프로세서 프로그램 레지스터(1045)의 값을 판독하고, 그 결과, 제로가 아닌 값을 판독한 프로세싱 스레드가 처리를 행하는 것으로 한다.In the state where there is no subprocessor program to be processed, the value of the processing waiting
이와 함께, 해당 프로세싱 스레드는, 처리 대기 서브 프로세서 프로그램 레지스터(1045)에 제로의 값을 기입한다. 처리를 행하는 프로세싱 스레드는, 판독한 처리 대기 서브 프로세서 프로그램 레지스터(1045)의 값에 기초하여, 처리 대상으로 되는 서브 프로세서 프로그램 또는 관련 데이터를 판독하여, 처리한다. 이 때, 서브 프로세서 프로그램은 이미 해당 프로세싱 스레드를 갖는 서브 프로세서(1023)에 판독되어 있고, 서브 프로세서 프로그램의 판독은 불필요한 것도 고려된다.At the same time, the processing thread writes a zero value to the processing wait
이와 같이 하여, 서브 프로세서 프로그램을 실행하지 않는, 처리 능력에 여유가 있는 프로세싱 스레드에 신속하게 서브 프로세서 프로그램의 처리를 할당할 수 있어, 정보 처리 컨트롤러를 효율적으로 동작시킬 수 있다.In this way, the processing of the subprocessor program can be promptly assigned to the processing thread having a sufficient processing capacity not to execute the subprocessor program, and the information processing controller can be operated efficiently.
서브 프로세서 프로그램 처리 진척 레지스터(1046)는, 서브 프로세서 프로그램의 처리가 할당된 프로세싱 스레드가, 처리 진척 상황을 기입하기 위한 2비트(x, y)의 레지스터이다. 예를 들면, (0, 0)은 미 처리를 나타내고, (0, 1)은 처리중의 단계1을 나타내고, (1, 0)은 처리중의 단계2를 나타내며, (1, 1)은 처리 완료를 나타낸다. 또한, 이 2비트와 함께, 프로세싱 스레드 식별자를 기입함으로써, 처리가 할당된 프로세싱 스레드를 나타내도록 하여도 무방하다.The subprocessor program
또는, 정보 처리 컨트롤러 내의 각 프로세싱 스레드마다, 서브 프로세서 프로그램의 처리 진척 상황을 기입하기 위한 레지스터를 마련하여도 무방하다.Alternatively, a register for writing processing progress of the subprocessor program may be provided for each processing thread in the information processing controller.
서브 프로세서 프로그램 처리 진척 레지스터(1046)는, 정보 처리 컨트롤러 내의 메인 프로세서(1021), 모든 서브 프로세서(1023) 및 모든 프로세싱 스레드가 액세스 가능하고, 이에 의해, 서브 프로세서 프로그램의 처리 진척 상황을 적확하게 파악할 수 있다. 또한, 각 프로세싱 스레드마다 처리 진척 레지스터를 마련하는 경우에는, 복수의 서브 프로세서 프로그램이 동시에 실행되는 경우에도 처리 진척 상황의 파악이 가능하게 된다.The subprocessor program
이상이, 각 서브 프로세서(1023)가 내부에, 가상적으로 독립한 복수의 프로세싱 스레드를 갖는 경우의 프로세싱 스레드 관리 방법의 예이다.The above is an example of a processing thread management method in the case where each
또한, 이하에 있어서는, 서브 프로세서가 약간의 처리를 행하는 경우에는, 해당 서브 프로세서 내부의 어느 프로세싱 스레드가 처리를 행하여도 상관없는 것으로 하고, 프로세싱 스레드의 상이에 의한 실행 결과의 차이는 발생하지 않는 것으로 한다. 따라서, 서브 프로세서의 처리 내용에 대하여, 서브 프로세서 내부의 복수의 프로세싱 스레드가 어떻게 처리를 분담하는가에 대해서는 설명을 생략한다.In addition, in the following, when a subprocessor performs some processing, it does not matter which processing thread in the said subprocessor processes, and the difference of the execution result by the difference of a processing thread does not arise. do. Therefore, the description of how the plurality of processing threads in the subprocessor share processing with respect to the processing contents of the subprocessor is omitted.
(3-8. 소프트웨어 셀의 생성 및 구성)(3-8. Creating and Configuring Software Cells)
도 16의 네트워크 시스템에서는, 정보 처리 장치(1001, 1002, 1003 및 1004) 사이에서의 분산 처리를 위해, 정보 처리 장치(1001, 1002, 1003 및 1004) 사이에서 소프트웨어 셀이 전송된다. 즉, 임의의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)는, 커맨드, 프로그램 및 데이터를 포함하는 소프트웨어 셀을 생성하여, 네트워크(1009)를 통하여 다른 정보 처리 장치에 송신함에 의해, 처리를 분산할 수 있다.In the network system of FIG. 16, software cells are transmitted between the
도 3에, 소프트웨어 셀의 구성의 일례를 나타낸다. 이 예의 소프트웨어 셀은, 전체적으로, 송신원 ID, 송신처 ID, 응답처 ID, 셀 인터페이스, DMA 커맨드, 프로그램, 및 데이터에 의해 구성된다.3 shows an example of the configuration of the software cell. The software cell of this example is entirely composed of a transmission source ID, a transmission destination ID, a response destination ID, a cell interface, a DMA command, a program, and data.
송신원 ID에는, 소프트웨어 셀의 송신원인 정보 처리 장치의 네트워크 어드레스 및 정보 처리 장치 ID, 또한 그 정보 처리 장치내의 정보 처리 컨트롤러가 구비하는 메인 프로세서(1021) 및 각 서브 프로세서(1023)의 식별자(메인 프로세서 ID 및 서브 프로세서 ID)가 포함된다.The transmission source ID includes a network address and an information processing device ID of an information processing device which is a transmission source of a software cell, and an identifier of a main processor 1021 and each subprocessor 1023 included in the information processing controller in the information processing device (main processor ID and subprocessor ID).
송신처 ID 및 응답처 ID에는, 각각 소프트웨어 셀의 송신처인 정보 처리 장치, 및 소프트웨어 셀의 실행 결과의 응답처인 정보 처리 장치에 대한, 동일한 정보가 포함된다.The transmission destination ID and the response destination ID each include the same information about the information processing device that is the destination of the software cell and the information processing device that is the destination of the execution result of the software cell.
셀 인터페이스는, 소프트웨어 셀의 이용에 필요한 정보이고, 글로벌 ID, 필요한 서브 프로세서의 정보, 샌드 박스 사이즈, 및 전회의 소프트웨어 셀 ID로 구성된다.The cell interface is information necessary for the use of a software cell, and is composed of a global ID, information of a required subprocessor, a sandbox size, and a previous software cell ID.
글로벌 ID는, 네트워크 전체를 통하여 해당 소프트웨어 셀을 일의적으로 식별할 수 있는 것으로, 송신원 ID, 및 소프트웨어 셀의 작성 또는 송신의 일시(날짜 및 시각)에 기초하여 작성된다.The global ID can uniquely identify the corresponding software cell throughout the network, and is created based on the source ID and the date and time (date and time) of the creation or transmission of the software cell.
필요한 서브 프로세서의 정보는, 해당 소프트웨어 셀의 실행에 필요한 서브 프로세서의 수가 설정된다. 샌드 박스 사이즈는, 해당 소프트웨어 셀의 실행에 필요한 메인 메모리(1026)내 및 서브 프로세서(1023)의 LS(1024)내의 메모리량이 설정된다.The number of subprocessors required is set to the number of subprocessors required for the execution of the software cell. The sandbox size is set in the amount of memory in the
전회의 소프트웨어 셀 ID는, 스트리밍 데이터 등의 순차적인 실행을 요구하는 1 그룹의 소프트웨어 셀 내의, 전회의 소프트웨어 셀의 식별자이다.The last software cell ID is an identifier of the previous software cell in a group of software cells that require sequential execution of streaming data or the like.
소프트웨어 셀의 실행 섹션은, DMA 커맨드, 프로그램 및 데이터로 구성된다. DMA 커맨드에는, 프로그램의 기동에 필요한 일련의 DMA 커맨드가 포함되고, 프로그램에는, 서브 프로세서(1023)에 의해 실행되는 서브 프로세서 프로그램이 포함된다. 여기서의 데이터는, 이 서브 프로세서 프로그램을 포함하는 프로그램에 의해 처리되는 데이터이다.The execution section of the software cell is composed of DMA commands, programs and data. The DMA command includes a series of DMA commands necessary for starting the program, and the program includes a subprocessor program executed by the
또한, DMA 커맨드에는, 로딩 커맨드, 킥 커맨드, 기능 프로그램 실행 커맨드, 스테이터스 요구 커맨드, 및 스테이터스 회신 커맨드가 포함된다.The DMA command also includes a loading command, a kick command, a function program execution command, a status request command, and a status reply command.
로딩 커맨드는, 메인 메모리(1026)내의 정보를 서브 프로세서(1023)내의 LS(1024)에 로딩하는 커맨드이고, 로딩 커맨드 자체 이외에, 메인 메모리 어드레스, 서브 프로세서 ID 및 LS 어드레스를 포함한다. 메인 메모리 어드레스는, 정보의 로딩원인 메인 메모리(1026)내의 소정 영역의 어드레스를 나타낸다. 서브 프로세서 ID 및 LS 어드레스는, 정보의 로딩처인 서브 프로세서(1023)의 식별자 및 LS(1024)의 어드레스를 나타낸다.The loading command is a command for loading information in the
킥 커맨드는, 서브 프로세서 프로그램의 실행을 개시하는 커맨드이고, 킥 커맨드 자체 이외에, 서브 프로세서 ID 및 프로그램 카운터를 포함한다. 서브 프로세서 ID는, 킥 대상의 서브 프로세서(1023)를 식별하고, 프로그램 카운터는, 서브 프로세서 프로그램 실행용 프로그램 카운터를 위한 어드레스를 부여한다.The kick command is a command for starting execution of a subprocessor program and includes, in addition to the kick command itself, a subprocessor ID and a program counter. The subprocessor ID identifies the
기능 프로그램 실행 커맨드는, 후술하는 바와 같이, 임의의 정보 처리 장치 가 다른 정보 처리 장치에 대하여, 기능 프로그램의 실행을 요구하는 커맨드이다. 기능 프로그램 실행 커맨드를 수신한 정보 처리 장치내의 정보 처리 컨트롤러는, 후술하는 기능 프로그램 ID에 의해, 기동해야 할 기능 프로그램을 식별한다.The function program execution command is a command for requesting execution of a function program to another information processing apparatus from another information processing apparatus as described later. The information processing controller in the information processing apparatus that receives the function program execution command identifies the function program to be started by the function program ID described later.
스테이터스 요구 커맨드는, 송신처 ID에서 나타나는 정보 처리 장치의 현재의 동작 상태(상황)에 관한 장치 정보를, 응답처 ID에서 나타나는 정보 처리 장치에 송신하는 것을 요구하는 커맨드이다. 기능 프로그램에 대해서는 후술하지만, 도 6에 도시하는 정보 처리 장치의 메인 메모리(1026)가 기억하는 소프트웨어의 구성도에서 기능 프로그램으로 분류되는 프로그램이다. 기능 프로그램은, 메인 메모리(1026)에 로딩되어, 메인 프로세서(1021)에 의해 실행된다.The status request command is a command for requesting transmission of device information relating to the current operating state (situation) of the information processing apparatus indicated by the transmission destination ID to the information processing apparatus indicated by the response destination ID. Although a functional program is mentioned later, it is a program classified as a functional program in the block diagram of the software which the
스테이터스 회신 커맨드는, 상기의 스테이터스 요구 커맨드를 수신한 정보 처리 장치가, 자신의 장치 정보를 해당 스테이터스 요구 커맨드에 포함되는 응답처 ID에서 나타나는 정보 처리 장치에 응답하는 커맨드이다. 스테이터스 회신 커맨드는, 실행 섹션의 데이터 영역에 장치 정보를 저장한다.The status reply command is a command in which the information processing apparatus that has received the above status request command responds to the information processing apparatus whose device information is indicated by the response destination ID included in the status request command. The status reply command stores the device information in the data area of the execution section.
도 4에, DMA 커맨드가 스테이터스 회신 커맨드인 경우에 있어서의 소프트웨어 셀의 데이터 영역의 구조를 나타낸다.Fig. 4 shows the structure of the data area of the software cell when the DMA command is a status return command.
정보 처리 장치 ID는, 정보 처리 컨트롤러를 구비하는 정보 처리 장치를 식별하기 위한 식별자이고, 스테이터스 회신 커맨드를 송신하는 정보 처리 장치의 ID를 나타낸다. 정보 처리 장치 ID는, 전원 투입시, 그 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)에 의해, 전원 투입시의 일시, 정보 처리 장치의 네트워크 어드레스 및 정보 처리 장치내의 정보 처리 컨트롤러에 포함 되는 서브 프로세서(1023)의 수 등에 기초하여 생성된다.The information processing apparatus ID is an identifier for identifying the information processing apparatus provided with the information processing controller, and represents the ID of the information processing apparatus which transmits the status reply command. When the power is turned on, the information processing device ID is set by the main processor 1021 included in the information processing controller in the information processing device to the network address of the information processing device and the information processing controller in the information processing device. It is generated based on the number of
정보 처리 장치 종별 ID에는, 해당 정보 처리 장치의 특징을 나타내는 값이 포함된다. 정보 처리 장치의 특징이란, 예를 들면, 후술하는 하드디스크 레코더, PDA(Personal Digital Assistants), 포터블 CD(Compact Disc) 플레이어 등이다. 또한, 정보 처리 장치 종별 ID는, 영상 음성 기록, 영상 음성 재생 등, 정보 처리 장치의 기능을 나타내는 것이어도 무방하다. 정보 처리 장치의 특징이나 기능을 나타내는 값은 미리 결정되어 있는 것으로 하고, 정보 처리 장치 종별 ID를 판독함에 의해, 해당 정보 처리 장치의 특징이나 기능을 파악하는 것이 가능하다.The information processing apparatus type ID includes a value indicating a characteristic of the information processing apparatus. The characteristics of the information processing apparatus are, for example, a hard disk recorder, a PDA (Personal Digital Assistants), a portable CD (Compact Disc) player, and the like described later. In addition, the information processing apparatus type ID may represent the function of an information processing apparatus, such as video audio recording and video audio reproduction. The values indicating the features and functions of the information processing apparatus are determined in advance, and the characteristics and functions of the information processing apparatus can be grasped by reading the information processing apparatus type ID.
MS(마스터/슬레이브) 스테이터스는, 후술하는 바와 같이 정보 처리 장치가 마스터 장치 또는 슬레이브 장치 중 어느 것으로 동작하고 있는가를 나타내는 것으로, 이것이 0으로 설정되어 있는 경우에는 마스터 장치로서 동작하고 있는 것을 나타내고, 1로 설정되어 있는 경우에는 슬레이브 장치로서 동작하고 있는 것을 나타낸다.The MS (master / slave) status indicates whether the information processing device is operating as a master device or a slave device as described later. When this is set to 0, it indicates that it is operating as a master device. If set, this indicates that the device is operating as a slave device.
메인 프로세서 동작 주파수는, 정보 처리 컨트롤러 내의 메인 프로세서(1021)의 동작 주파수를 나타낸다. 메인 프로세서 사용율은, 메인 프로세서(1021)에 의해 현재 동작하고 있는 모든 프로그램에 대한, 메인 프로세서(1021)에서의 사용율을 나타낸다. 메인 프로세서 사용율은, 대상 메인 프로세서의 전체 처리 능력에 대한 사용중의 처리 능력의 비율을 나타낸 값으로, 예를 들면 프로세서 처리 능력 평가를 위한 단위인 MIPS를 단위로 하여 산출되고, 또는 단위 시간당 프로세서 사용 시간에 기초하여 산출된다. 후술하는 서브 프로세서 사용율에 대해서도 마찬 가지다.The main processor operating frequency indicates the operating frequency of the main processor 1021 in the information processing controller. The main processor utilization rate represents the utilization rate in the main processor 1021 for all programs currently operating by the main processor 1021. The main processor utilization rate is a value representing the ratio of the processing power in use to the total processing power of the target main processor, for example, calculated in units of MIPS which is a unit for evaluating processor processing power, or the processor usage time per unit time. Calculated based on The same applies to the subprocessor utilization described later.
서브 프로세서 수는, 해당 정보 처리 컨트롤러가 구비하는 서브 프로세서(1023)의 수를 나타낸다. 서브 프로세서 ID는, 해당 정보 처리 컨트롤러 내의 각 서브 프로세서(1023)를 식별하기 위한 식별자이다.The number of subprocessors represents the number of
서브 프로세서 스테이터스는, 각 서브 프로세서(1023)의 상태를 나타내는 것으로, unused, reserved, busy 등의 상태가 있다. unused는, 해당 서브 프로세서가 현재 사용되고 있지 않고, 사용 예약도 되어 있지 않은 것을 나타낸다. reserved는, 현재는 사용되고 있지 않지만, 예약되어 있는 상태를 나타낸다. busy는, 현재 사용중인 것을 나타낸다.The subprocessor status indicates the state of each subprocessor 1023, and there are states such as unused, reserved, and busy. unused indicates that the subprocessor is not currently being used or reserved for use. reserved is a state which is not currently used but is reserved. busy indicates that it is currently in use.
서브 프로세서 사용율은, 해당 서브 프로세서에 의해 현재 실행하고 있는, 또는 해당 서브 프로세서에 실행이 예약되어 있는 서브 프로세서 프로그램에 대한, 해당 서브 프로세서에서의 사용율을 나타낸다. 즉, 서브 프로세서 사용율은, 서브 프로세서 스테이터스가 busy인 경우에는, 현재의 사용율을 나타내고, 서브 프로세서 스테이터스가 reserved인 경우에는, 나중에 사용되는 예정의 추정 사용율을 나타낸다.The subprocessor utilization rate represents the utilization rate in the subprocessor for a subprocessor program currently being executed by the subprocessor or for which execution is reserved for the subprocessor. In other words, the subprocessor usage ratio indicates the current usage ratio when the subprocessor status is busy, and the estimated estimated usage ratio to be used later when the subprocessor status is reserved.
서브 프로세서 ID, 서브 프로세서 스테이터스 및 서브 프로세서 사용율은, 1개의 서브 프로세서(1023)에 대하여 한 세트 설정되고, 1개의 정보 처리 컨트롤러 내의 서브 프로세서(1023)의 수의 세트 수만큼 설정된다.The subprocessor ID, the subprocessor status, and the subprocessor usage rate are set one set for one subprocessor 1023, and set by the number of sets of the number of
메인 메모리 총용량 및 메인 메모리 사용량은, 각각 해당 정보 처리 컨트롤러에 접속되어 있는 메인 메모리(1026)의 총 용량 및 현재 사용중인 용량을 나타낸 다.The main memory total capacity and the main memory usage amount represent the total capacity and the currently used capacity of the
외부 메모리부 수는, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(1031)의 수를 나타낸다. 외부 메모리부 ID는, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(1031)를 일의적으로 식별하는 정보이다. 외부 메모리부 종별 ID는, 해당 외부 메모리부의 종류(예를 들면, 하드디스크, CD-RW, DVD-RW, 메모리 디스크, SRAM, ROM 등)를 나타낸다.The number of external memory sections indicates the number of external memory sections 1031 connected to the information processing controller. The external memory unit ID is information for uniquely identifying the external memory unit 1031 connected to the information processing controller. The external memory unit type ID indicates the type of the external memory unit (for example, hard disk, CD-RW, DVD-RW, memory disk, SRAM, ROM, and the like).
외부 메모리부 총용량 및 외부 메모리부 사용량은, 각각 외부 메모리부 ID에 의해 식별되는 외부 메모리부(1031)의 총 용량 및 현재 사용중인 용량을 나타낸다.The external memory unit total capacity and the external memory unit usage amount represent the total capacity of the external memory unit 1031 and the capacity currently being used, respectively identified by the external memory unit ID.
외부 메모리부 ID, 외부 메모리부 종별 ID, 외부 메모리부 총용량 및 외부 메모리부 사용량은, 1개의 외부 메모리부(1031)에 대하여 1 세트 설정되고, 해당 정보 처리 컨트롤러에 접속되어 있는 외부 메모리부(1031)의 수의 세트 수만큼 설정된다. 즉, 1개의 정보 처리 컨트롤러에 복수의 외부 메모리부가 접속되어 있는 경우, 각각의 외부 메모리부에는 상이한 외부 메모리부 ID가 할당되고, 외부 메모리부 종별 ID, 외부 메모리부 총용량 및 외부 메모리부 사용량도 따로따로 관리된다.The external memory unit ID1, the external memory unit type ID, the external memory unit total capacity, and the external memory unit usage amount are set one set for one external memory unit 1031, and are connected to the information processing controller 1031. Is set by the number of sets. That is, when a plurality of external memory units are connected to one information processing controller, each external memory unit is assigned a different external memory unit ID, and the external memory unit type ID, external memory unit total capacity, and external memory unit usage are also separately. Managed separately.
(3-9. 소프트웨어 셀의 실행)(3-9. Execution of the software cell)
임의의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)는, 이상과 같은 구성의 소프트웨어 셀을 생성하여, 네트워크(1009)를 통하여 다른 정보 처리 장치 및 해당 장치내의 정보 처리 컨트롤러에 송신한다. 송신원의 정보 처리 장치, 송신처의 정보 처리 장치, 응답처의 정보 처리 장치, 및 각 장치내의 정보 처리 컨트롤러는, 각각 상기 송신원 ID, 송신처 ID 및 응답처 ID에 의해 식별된다.The main processor 1021 included in the information processing controller in the arbitrary information processing apparatus generates a software cell having the above configuration and transmits it to the other information processing apparatus and the information processing controller in the apparatus via the
소프트웨어 셀을 수신한 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)는, 그 소프트웨어 셀을 메인 메모리(1026)에 저장한다. 또한, 송신처의 메인 프로세서(1021)는, 소프트웨어 셀을 판독하고, 그것에 포함되는 DMA 커맨드를 처리한다.The main processor 1021 included in the information processing controller in the information processing apparatus that has received the software cell stores the software cell in the
구체적으로, 송신처의 메인 프로세서(1021)는, 우선 로딩 커맨드를 실행한다. 이에 의해, 로딩 커맨드에 의해 지시된 메인 메모리 어드레스로부터, 로딩 커맨드에 포함되는 서브 프로세서 ID 및 LS 어드레스에서 특정되는 서브 프로세서 내의 LS(1024)의 소정 영역에, 정보가 로딩된다. 여기서 로딩되는 정보는, 수신한 소프트웨어 셀에 포함되는 서브 프로세서 프로그램 또는 데이터, 또는 그 밖의 지시된 데이터이다.Specifically, the main processor 1021 of the transmission destination first executes a loading command. As a result, information is loaded from the main memory address indicated by the loading command to a predetermined area of the
다음으로, 메인 프로세서(1021)는, 킥 커맨드를, 이것에 포함되는 서브 프로세서 ID에 의해 지시된 서브 프로세서에, 마찬가지로 킥 커맨드에 포함되는 프로그램 카운터와 함께 송신한다.Next, the main processor 1021 transmits the kick command to the subprocessor indicated by the subprocessor ID included therein, together with the program counter included in the kick command.
지시된 서브 프로세서는, 그 킥 커맨드 및 프로그램 카운터에 따라서, 서브 프로세서 프로그램을 실행한다. 그리고, 실행 결과를 메인 메모리(1026)에 저장한 후, 실행을 완료한 것을 메인 프로세서(1021)에 통지한다.The indicated subprocessor executes the subprocessor program in accordance with the kick command and the program counter. After the execution result is stored in the
또한, 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 있어서 소프트웨어 셀을 실행하는 프로세서는 서브 프로세서(1023)에 한정되는 것은 아니고, 메인 프로세서(1021)가 소프트웨어 셀에 포함되는 기능 프로그램 등의 메인 메모리용 프로그램을 실행하도록 지정하는 것도 가능하다.In addition, the processor which executes a software cell in the information processing controller in the information processing apparatus of a transmission destination is not limited to the
이 경우에는, 송신원의 정보 처리 장치는, 송신처의 정보 처리 장치에, 서브 프로세서 프로그램 대신에, 메인 메모리용 프로그램 및 그 메인 메모리용 프로그램에 의해 처리되는 데이터를 포함하고, DMA 커맨드가 로딩 커맨드인 소프트웨어 셀을 송신하여, 메인 메모리(1026)에 메인 메모리용 프로그램 및 그것에 의해 처리되는 데이터를 기억시킨다.In this case, the information processing apparatus of the transmission source includes, in the information processing apparatus of the transmission destination, a main memory program and data processed by the main memory program instead of the subprocessor program, and the DMA command is a loading command. The cell is transmitted so that the
다음으로, 송신원의 정보 처리 장치는, 송신처의 정보 처리 장치에, 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 대한 메인 프로세서 ID, 메인 메모리 어드레스, 메인 메모리용 프로그램을 식별하기 위한 후술하는 기능 프로그램 ID 등의 식별자, 및 프로그램 카운터를 포함하고, DMA 커맨드가 킥 커맨드 또는 기능 프로그램 실행 커맨드인 소프트웨어 셀을 송신하여, 메인 프로세서(1021)에 해당 메인 메모리용 프로그램을 실행시킨다.Subsequently, the information processing apparatus of the transmission source, to the information processing apparatus of the transmission destination, a main processor ID for the information processing controller in the information processing apparatus of the transmission destination, a main memory address, a function program ID to be described later for identifying a program for the main memory, and the like. And a software counter, wherein the DMA command transmits a software cell which is a kick command or a function program execution command, and causes the main processor 1021 to execute the main memory program.
이상과 같이, 본 발명의 네트워크 시스템에서는, 송신원의 정보 처리 장치는, 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 소프트웨어 셀에 의해 송신처의 정보 처리 장치에 송신함과 더불어, 해당 서브 프로세서 프로그램을 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 포함되는 서브 프로세서(1023)에 로딩시켜, 해당 서브 프로세서 프로그램 또는 해당 메인 메모리용 프로그램을 송신처의 정보 처리 장치에 실행시킬 수 있다.As described above, in the network system of the present invention, the information processing apparatus of the transmission source transmits the subprocessor program or the main memory program to the information processing apparatus of the transmission destination by the software cell, and transmits the subprocessor program information of the transmission destination. The
송신처의 정보 처리 장치내의 정보 처리 컨트롤러에서는, 수신한 소프트웨어 셀에 포함되는 프로그램이 서브 프로세서 프로그램인 경우에는, 해당 서브 프로세서 프로그램을 지정된 서브 프로세서에 로딩시킨다. 그리고, 소프트웨어 셀에 포함되는 서브 프로세서 프로그램 또는 메인 메모리용 프로그램을 실행시킨다.In the information processing controller in the information processing apparatus of the transmission destination, when the program included in the received software cell is a subprocessor program, the subprocessor program is loaded into the designated subprocessor. Then, the subprocessor program or the main memory program included in the software cell is executed.
따라서, 사용자가 송신처의 정보 처리 장치를 조작하지 않더라도 자동적으로, 해당 서브 프로세서 프로그램 또는 해당 메인 메모리용 프로그램을 송신처의 정보 처리 장치내의 정보 처리 컨트롤러에 실행시킬 수 있다.Therefore, even if the user does not operate the information processing apparatus of the transmission destination, the subprocessor program or the main memory program can be automatically executed by the information processing controller in the information processing apparatus of the transmission destination.
이와 같이 하여 정보 처리 장치는, 자 장치내의 정보 처리 컨트롤러가 서브 프로세서 프로그램 또는 기능 프로그램 등의 메인 메모리용 프로그램을 갖고 있지 않을 경우에는, 네트워크에 접속된 다른 정보 처리 장치로부터 이들을 취득할 수 있다. 또한, 각 서브 프로세서와 메인 메모리 사이에서는 DMA 방식에 의해 데이터 전송을 행하고, 또한 전술한 샌드 박스를 사용함으로써, 1개의 정보 처리 컨트롤러 내에서 데이터를 다단계로 처리해야 하는 경우에도, 고속이고 또한 높은 시큐러티로 처리를 실행할 수 있다.In this way, when the information processing controller in the own apparatus does not have a main memory program such as a subprocessor program or a function program, the information processing apparatus can acquire them from another information processing apparatus connected to the network. In addition, data transfer is performed between the subprocessors and the main memory by the DMA system, and by using the above-described sandbox, even when data must be processed in multiple stages in one information processing controller, high speed and high security Processing can be performed with
[4. 네트워크 시스템으로서의 분산 처리 그 2][4. Distributed Processing as a
소프트웨어 셀의 사용에 의한 분산 처리의 결과, 도 24의 상단에 나타내는 바와 같이 네트워크(1009)에 접속되어 있는 복수의 정보 처리 장치(1001, 1002, 1003 및 1004)는, 도 24의 하단에 나타내는 바와 같이, 가상적인 1대의 정보 처리 장치(1007)로서 동작한다. 단, 그 때문에는, 이하와 같은 구성에 의해, 이하와 같은 처리가 실행될 필요가 있다.As a result of the distributed processing by using the software cell, as shown in the upper part of FIG. 24, the plurality of
(4-1. 시스템의 소프트웨어 구성과 프로그램의 로딩)(4-1.System Configuration and Program Loading)
도 6에, 개개의 정보 처리 컨트롤러의 메인 메모리(1026)가 기억하는 소프트웨어의 구성을 나타낸다. 이들의 소프트웨어(프로그램)는, 정보 처리 장치에 전원이 투입되기 전에는, 해당 정보 처리 컨트롤러에 접속되는 외부 메모리부(1031)에 기록되어 있는 것이다.6 shows a configuration of software stored in the
각 프로그램은, 기능 또는 특징에 의해, 제어 프로그램, 기능 프로그램 및 디바이스 드라이버로 분류된다.Each program is classified into a control program, a function program, and a device driver by a function or a feature.
제어 프로그램은, 각 정보 처리 컨트롤러가 동일한 것을 구비하고, 각 정보 처리 컨트롤러의 메인 프로세서(1021)가 실행하는 것으로, 후술하는 MS(마스터/슬레이브) 매니저 및 능력 교환 프로그램을 포함한다.The control program is provided with the same information processing controller, and is executed by the main processor 1021 of each information processing controller, and includes an MS (master / slave) manager and a capability exchange program described later.
기능 프로그램은, 메인 프로세서(1021)가 실행하는 것으로, 기록용, 재생용, 소재 검색용 등, 정보 처리 컨트롤러마다 정보 처리 장치에 대응한 것이 구비된다.The function program is executed by the main processor 1021, and is provided with an information processing apparatus corresponding to each information processing controller, such as recording, reproduction, and material search.
디바이스 드라이버는, 정보 처리 컨트롤러(정보 처리 장치)의 입출력(송수신)용으로, 방송 수신, 모니터 출력, 비트 스트림 입출력, 네트워크 입출력 등, 정보 처리 컨트롤러마다 정보 처리 장치에 대응한 것이 구비된다.The device driver is provided for the input / output (transmission / reception) of the information processing controller (information processing apparatus) and corresponds to the information processing apparatus for each information processing controller such as broadcast reception, monitor output, bit stream input / output, network input / output, and the like.
케이블의 삽입 등에 의해 정보 처리 장치가 물리적으로 네트워크(1009)에 접속된 상태에서, 정보 처리 장치에 주 전원이 투입되고, 정보 처리 장치가 전기적·기능적으로도 네트워크(1009)에 접속되면, 그 정보 처리 장치의 정보 처리 컨트롤러의 메인 프로세서(1021)는, 제어 프로그램에 속하는 각 프로그램, 및 디바이스 드라이버에 속하는 각 프로그램을, 메인 메모리(1026)에 로딩한다.When the information processing device is physically connected to the
로딩 순서로서는, 메인 프로세서(1021)는, 우선 DC(1030)에 판독 명령을 실 행시킴으로써, 외부 메모리부(1031)로부터 프로그램을 판독하고, 다음으로 DMAC(1025)에 기입 명령을 실행시킴으로써, 그 프로그램을 메인 메모리(1026)에 기입한다.As the loading order, the main processor 1021 first executes a read command to the DC 1030 to read a program from the external memory unit 1031, and then executes a write command to the
기능 프로그램에 속하는 각 프로그램에 대해서는, 필요할 때에 필요한 프로그램만을 로딩하도록 구성해도 무방하고, 또는 다른 카테고리에 속하는 프로그램과 마찬가지로, 주 전원 투입 직후에 각 프로그램을 로딩하도록 구성해도 무방하다.Each program belonging to the functional program may be configured to load only necessary programs when necessary, or similarly to programs belonging to other categories, each program may be loaded immediately after the main power is turned on.
기능 프로그램에 속하는 각 프로그램은, 네트워크에 접속된 모든 정보 처리 장치의 외부 메모리부(1031)에 기록되어 있을 필요는 없고, 어느 하나의 정보 처리 장치의 외부 메모리부(1031)에 기록되어 있으면, 전술한 방법에 의해 다른 정보 처리 장치로부터 로딩할 수 있기 때문에, 결과적으로 도 24의 하단에 나타내는 바와 같이, 가상적인 1대의 정보 처리 장치(1007)로서 기능 프로그램을 실행할 수 있다.Each program belonging to the functional program does not need to be recorded in the external memory unit 1031 of all information processing apparatuses connected to the network, and if it is recorded in the external memory unit 1031 of any one information processing apparatus, Since it can be loaded from another information processing apparatus by one method, as a result, as shown at the bottom of FIG. 24, a functional program can be executed as one virtual
또한, 전술한 바와 같이, 메인 프로세서(1021)에 의해 처리되는 기능 프로그램은, 서브 프로세서(1023)에 의해 처리되는 서브 프로세서 프로그램과 제휴 동작하는 경우가 있다. 따라서, 메인 프로세서(1021)가 외부 메모리부(1031)로부터 기능 프로그램을 판독하여, 메인 메모리(1026)에 기입할 때, 대상으로 되는 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램이 존재하는 경우에는, 해당 서브 프로세서 프로그램도 함께 동일한 메인 메모리(1026)에 기입한다. 이 경우, 제휴 동작하는 서브 프로세서 프로그램은, 1개인 경우도 있지만, 복수개인 경우도 있을 수 있다. 복수개인 경우에는, 모든 제휴 동작하는 서브 프로세서 프로그램을 메인 메모리(1026)에 기입한다.In addition, as described above, the functional program processed by the main processor 1021 may cooperate with the subprocessor program processed by the
메인 메모리(1026)에 기입된 서브 프로세서 프로그램은, 그 후, 서브 프로세서(1023)내의 LS(1024)에 기입되고, 메인 프로세서(1021)에 의해 처리되는 기능 프로그램과 제휴 동작한다.The subprocessor program written in the
도 3의 소프트웨어 셀에 나타낸 바와 같이, 기능 프로그램에는, 프로그램마다 프로그램을 일의적으로 식별할 수 있는 식별자가, 기능 프로그램 ID로서 할당된다. 기능 프로그램 ID는, 기능 프로그램의 작성의 단계에서, 작성 일시나 정보 처리 장치 ID 등으로부터 결정된다.As shown in the software cell of FIG. 3, an identifier capable of uniquely identifying a program for each program is assigned to the functional program as the functional program ID. The function program ID is determined from the creation date, the information processing device ID, and the like at the stage of the creation of the function program.
서브 프로세서 프로그램에도 서브 프로세서 프로그램 ID가 할당되고, 이에 의해 서브 프로세서 프로그램을 일의적으로 식별 가능하다. 할당되는 서브 프로세서 프로그램 ID는, 제휴 동작의 상대로 되는 기능 프로그램의 기능 프로그램 ID와 관련성이 있는 식별자, 예를 들면 기능 프로그램 ID를 페어런트 번호로 한 후에 마지막 끝부분에 브랜치 번호를 부가시킨 식별자이어도 무방하지만, 제휴 동작의 상대로 되는 기능 프로그램의 기능 프로그램 ID와는 관련성이 없는 식별자이어도 무방하다.The subprocessor program ID is also assigned to the subprocessor program, whereby the subprocessor program can be uniquely identified. The subprocessor program ID to be allocated may be an identifier associated with the function program ID of the function program to be associated with the cooperative operation, for example, the function program ID is the parent number and the branch number is added at the end. For example, the identifier may be irrelevant to the function program ID of the function program that is the partnering operation.
어느 쪽이든, 기능 프로그램과 서브 프로세서 프로그램이 제휴 동작하는 경우에는, 양자 모두 상대의 식별자인 프로그램 ID를 자 프로그램 내에 기억해 둘 필요가 있다. 기능 프로그램이 복수개의 서브 프로세서 프로그램과 제휴 동작하는 경우에도, 해당 기능 프로그램은, 그 복수개의 서브 프로세서 프로그램의 서브 프로세서 프로그램 ID를 모두 기억해 둔다.In either case, when the functional program and the subprocessor program cooperate with each other, it is necessary to store the program ID, which is the identifier of the counterpart, in the child program. Even when a function program cooperates with a plurality of subprocessor programs, the function program stores all the subprocessor program IDs of the plurality of subprocessor programs.
메인 프로세서(1021)는, 자신이 동작하는 정보 처리 장치의 장치 정보(동작 상태에 관한 정보)를 저장하기 위한 영역을 메인 메모리(1026)에 확보하여, 해당 정보를 자 장치의 장치 정보 테이블로서 기록한다. 여기서의 장치 정보는, 도 4에 도시한 정보 처리 장치 ID 이하의 각 정보이다.The main processor 1021 secures an area in the
(4-2. 시스템에 있어서의 마스터/슬레이브의 결정)(4-2. Determination of Master / Slave in the System)
전술한 네트워크 시스템에서는, 임의의 정보 처리 장치에의 주 전원 투입시, 그 정보 처리 장치의 정보 처리 컨트롤러의 메인 프로세서(1021)는, 마스터/슬레이브 매니저(이하, MS 매니저)를 메인 메모리(1026)에 로딩하여, 실행한다.In the above-described network system, when the main power is supplied to any information processing apparatus, the main processor 1021 of the information processing controller of the information processing apparatus is configured to supply a master / slave manager (hereinafter referred to as MS manager) to the
MS 매니저는, 자신이 동작하는 정보 처리 장치가 네트워크(1009)에 접속되어 있는 것을 검지하면, 동일한 네트워크(1009)에 접속되어 있는 다른 정보 처리 장치의 존재를 확인한다. 여기서의 “접속” 또는 “존재”는, 전술한 바와 같이, 정보 처리 장치가 물리적으로 네트워크(1009)에 접속되어 있을 뿐만 아니라, 전기적·기능적으로도 네트워크(1009)에 접속되어 있는 것을 나타낸다.When the MS manager detects that the information processing apparatus on which it operates is connected to the
이하에서는, 자신이 동작하는 정보 처리 장치를 자 장치, 다른 정보 처리 장치를 타 장치라고 칭한다. 해당 장치도, 해당 정보 처리 장치를 나타내는 것으로 한다.In the following, the information processing apparatus on which it operates is called a child apparatus, and another information processing apparatus is called another apparatus. The device also refers to the information processing device.
MS 매니저가 동일한 네트워크(1009)에 접속되어 있는 다른 정보 처리 장치의 존재를 확인하는 방법을, 이하에 나타낸다.A method of confirming the existence of another information processing apparatus connected to the
MS 매니저는, DMA 커맨드가 스테이터스 요구 커맨드이고, 송신원 ID 및 응답처 ID가 해당 정보 처리 장치에서, 송신처 ID를 특정하지 않는 소프트웨어 셀을 생성하여, 해당 정보 처리 장치가 접속된 네트워크상에 송신하여, 네트워크 접속 확 인용 타이머를 설정한다. 타이머의 타임아웃 시간은, 예를 들면 10분으로 된다.The MS manager generates a software cell in which the DMA command is a status request command, the sender ID and the destination ID are not specified in the information processing apparatus, and does not specify the sender ID, and transmits it on the network to which the information processing apparatus is connected. Set the network connection verification timer. The timeout time of the timer is, for example, 10 minutes.
해당 네트워크 시스템상에 다른 정보 처리 장치가 접속되어 있는 경우, 기타 장치는, 상기 스테이터스 요구 커맨드의 소프트웨어 셀을 수신하고, 상기 응답처 ID에서 특정되는 스테이터스 요구 커맨드를 발행한 정보 처리 장치에 대하여, DMA 커맨드가 스테이터스 회신 커맨드이고, 또한 데이터로서 자신(기타 장치)의 장치 정보를 포함하는 소프트웨어 셀을 송신한다. 이 스테이터스 회신 커맨드의 소프트웨어 셀에는, 적어도 해당 타 장치를 특정하는 정보(정보 처리 장치 ID, 메인 프로세서에 관한 정보, 서브 프로세서에 관한 정보 등) 및 해당 타 장치의 MS 스테이터스가 포함된다.When another information processing apparatus is connected on the network system, the other apparatus receives a software cell of the status request command and issues a DMA to the information processing apparatus that issues a status request command specified by the response destination ID. The command is a status reply command and transmits a software cell containing device information of itself (other device) as data. The software cell of the status reply command includes at least information (information processing device ID, information on the main processor, information on the subprocessor, etc.) specifying the other device, and the MS status of the other device.
스테이터스 요구 커맨드를 발행한 정보 처리 장치의 MS 매니저는, 상기 네트워크 접속 확인용 타이머가 타임 아웃될 때까지, 해당 네트워크상의 타 장치로부터 송신되는 스테이터스 회신 커맨드의 소프트웨어 셀의 수신을 감시한다. 그 결과, MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신된 경우에는, 자 장치의 장치 정보 테이블에 있어서의 MS 스테이터스를 1로 설정한다. 이에 의해, 해당 장치는 슬레이브 장치로 된다.The MS manager of the information processing device which issued the status request command monitors the reception of the software cell of the status reply command sent from another device on the network until the network connection confirmation timer times out. As a result, when a status reply command indicating MS status = 0 (master device) is received, the MS status in the device information table of the own device is set to one. As a result, the device becomes a slave device.
한편, 상기 네트워크 접속 확인용 타이머가 타임 아웃될 때까지의 동안에 스테이터스 회신 커맨드가 전혀 수신되지 않은 경우, 또는 MS 스테이터스=0(마스터 장치)을 나타내는 스테이터스 회신 커맨드가 수신되지 않은 경우에는, 자 장치의 장치 정보 테이블에 있어서의 MS 스테이터스를 0으로 설정한다. 이에 의해, 해당 장치는 마스터 장치로 된다.On the other hand, when the status reply command is not received at all until the network connection confirmation timer is timed out, or when the status reply command indicating MS status = 0 (master device) is not received, The MS status in the device information table is set to zero. As a result, the device becomes a master device.
즉, 어느 장치도 네트워크(1009)에 접속되어 있지 않은 상태, 또는 네트워크(1009)상에 마스터 장치가 존재하지 않는 상태에 있어서, 새로운 정보 처리 장치가 네트워크(1009)에 접속되면, 해당 장치는 자동적으로 마스터 장치로서 설정된다. 한편, 네트워크(1009)상에 이미 마스터 장치가 존재하는 상태에 있어서, 새로운 정보 처리 장치가 네트워크(1009)에 접속되면, 해당 장치는 자동적으로 슬레이브 장치로서 설정된다.In other words, if no device is connected to the
마스터 장치 및 슬레이브 장치 중 어느 것에 대해서도, MS 매니저는, 정기적으로 스테이터스 요구 커맨드를 네트워크(1009)상의 타 장치에 송신하여 스테이터스 정보를 조회함으로써, 타 장치의 상황을 감시한다. 그 결과, 네트워크(1009)에 접속되어 있는 정보 처리 장치의 주 전원이 차단되고, 또는 네트워크(1009)로부터 정보 처리 장치가 분리됨에 의해, 미리 판정용으로 설정된 소정 기간 내에 특정한 타 장치로부터 스테이터스 회신 커맨드가 회신되지 않은 경우나, 네트워크(1009)에 새로운 정보 처리 장치가 접속된 경우 등, 네트워크(1009)의 접속 상태에 변화가 있었던 경우에는, 그 정보를 후술하는 능력 교환 프로그램에 통지한다.In either of the master device and the slave device, the MS manager periodically monitors the status of other devices by sending status request commands to other devices on the
(4-3. 마스터 장치 및 슬레이브 장치에 있어서의 장치 데이터의 취득)(4-3. Acquisition of Device Data in Master Device and Slave Device)
메인 프로세서(1021)는, MS 매니저로부터, 네트워크(1009)상의 타 장치의 조회 및 자 장치의 MS 스테이터스의 설정 완료의 통지를 받으면, 능력 교환 프로그램을 실행한다.The main processor 1021 executes the capability exchange program when the MS manager receives notification of the inquiry of other devices on the
능력 교환 프로그램은, 자 장치가 마스터 장치인 경우에는, 네트워크(1009)에 접속되어 있는 모든 타 장치의 장치 정보, 즉 각 슬레이브 장치의 장치 정보를 취득한다.When the own device is the master device, the capability exchange program acquires device information of all other devices connected to the
타 장치의 장치 정보의 취득은, 전술한 바와 같이, DMA 커맨드가 스테이터스 요구 커맨드인 소프트웨어 셀을 생성하여 타 장치에 송신하고, 그 후, DMA 커맨드가 스테이터스 회신 커맨드이고, 또한 데이터로서 타 장치의 장치 정보를 포함하는 소프트웨어 셀을 타 장치로부터 수신함으로써 가능하다.Acquiring the device information of the other device, as described above, generates a software cell whose DMA command is a status request command and transmits it to the other device, after which the DMA command is a status reply command and the device of the other device as data. It is possible by receiving a software cell containing information from another device.
능력 교환 프로그램은, 마스터 장치인 자 장치의 장치 정보 테이블과 마찬가지로, 네트워크(1009)에 접속되어 있는 모든 타 장치(각 슬레이브 장치)의 장치 정보를 저장하기 위한 영역을 자 장치의 메인 메모리(1026)에 확보하여, 이들 정보를 타 장치(슬레이브 장치)의 장치 정보 테이블로서 기록한다.Similar to the device information table of the child device which is the master device, the capability exchange program has an area for storing device information of all other devices (each slave device) connected to the
즉, 마스터 장치의 메인 메모리(1026)에는, 자 장치를 포함하는 네트워크(1009)에 접속되어 있는 모든 정보 처리 장치의 장치 정보가, 장치 정보 테이블로서 기록된다.That is, in the
한편, 능력 교환 프로그램은, 자 장치가 슬레이브 장치인 경우에는, 네트워크(1009)에 접속되어 있는 모든 타 장치의 장치 정보, 즉 마스터 장치 및 자 장치 이외의 각 슬레이브 장치의 장치 정보를 취득하여, 이들 장치 정보에 포함되는 정보 처리 장치 ID 및 MS 스테이터스를, 자 장치의 메인 메모리(1026)에 기록한다.On the other hand, when the child device is a slave device, the capability exchange program acquires device information of all other devices connected to the
즉, 슬레이브 장치의 메인 메모리(1026)에는, 자 장치의 장치 정보가, 장치 정보 테이블로서 기록됨과 더불어, 자 장치 이외의 네트워크(1009)에 접속되어 있는 마스터 장치 및 각 슬레이브 장치에 대한 정보 처리 장치 ID 및 MS 스테이터스가, 별도의 장치 정보 테이블로서 기록된다.That is, in the
또한, 마스터 장치 및 슬레이브 장치 중 어느 것에 대해서도, 능력 교환 프로그램은, 상기한 바와 같이 MS 매니저로부터, 새롭게 네트워크(1009)에 정보 처리 장치가 접속된 것이 통지되었을 때에는, 그 정보 처리 장치의 장치 정보를 취득하여, 전술한 바와 같이 메인 메모리(1026)에 기록한다.In addition, in either of the master device and the slave device, the capability exchange program receives the device information of the information processing device when it is notified from the MS manager that the information processing device is newly connected to the
또한, MS 매니저 및 능력 교환 프로그램은, 메인 프로세서(1021)에 의해 실행되는 것에 한정하지 않고, 어느 서브 프로세서(1023)에 의해 실행되어도 무방하다. 또한, MS 매니저 및 능력 교환 프로그램은, 정보 처리 장치의 주 전원이 투입되고 있는 동안은 항상 동작하는 상주 프로그램인 것이 바람직하다.The MS manager and the capability exchange program are not limited to being executed by the main processor 1021 but may be executed by any
(4-4. 정보 처리 장치가 네트워크로부터 절단된 경우)(4-4. When the information processing device is cut off from the network)
마스터 장치 및 슬레이브 장치 중 어느 것에 대해서도, 능력 교환 프로그램은, 상기한 바와 같이 MS 매니저로부터, 네트워크(1009)에 접속되어 있는 정보 처리 장치의 주 전원이 차단되고, 또는 네트워크(1009)로부터 정보 처리 장치가 분리된 것이 통지되었을 때에는, 그 정보 처리 장치의 장치 정보 테이블을 자 장치의 메인 메모리(1026)로부터 삭제한다.In either of the master device and the slave device, as described above, the main power supply of the information processing device connected to the
또한, 이와 같이 네트워크(1009)로부터 절단된 정보 처리 장치가 마스터 장치인 경우에는, 이하와 같은 방법에 의해, 새롭게 마스터 장치가 결정된다.In addition, when the information processing apparatus cut | disconnected from the
구체적으로, 예를 들면, 네트워크(1009)로부터 절단되어 있지 않은 정보 처리 장치는, 각각 자 장치 및 타 장치의 정보 처리 장치 ID를 수치로 치환하여, 자 장치의 정보 처리 장치 ID를 타 장치의 정보 처리 장치 ID와 비교하여, 자 장치의 정보 처리 장치 ID가 네트워크(1009)로부터 절단되어 있지 않은 정보 처리 장치중 에서 최소인 경우, 그 슬레이브 장치는, 마스터 장치로 이행하여, MS 스테이터스를 0으로 설정하고, 마스터 장치로서, 전술한 바와 같이, 네트워크(1009)에 접속되어 있는 모든 타 장치(각 슬레이브 장치)의 장치 정보를 취득하여, 메인 메모리(1026)에 기록한다.Specifically, for example, the information processing apparatus not disconnected from the
(4-5. 장치 데이터에 기초하는 분산 처리)(4-5. Distributed Processing Based on Device Data)
도 24의 하단에 나타낸 바와 같이 네트워크(1009)에 접속되어 있는 복수의 정보 처리 장치(1001, 1002, 1003 및 1004)를 가상적인 1대의 정보 처리 장치(1007)로서 동작시키기 위해서는, 마스터 장치가 사용자의 조작 및 슬레이브 장치의 동작 상태를 파악할 필요가 있다.As shown in the lower part of FIG. 24, in order to operate the plurality of
도 25에, 4대의 정보 처리 장치가 가상적인 1대의 정보 처리 장치(1007)로서 동작하는 모양을 나타낸다. 정보 처리 장치(1001)가 마스터 장치, 정보 처리 장치(1002, 1003 및 1004)가 슬레이브 장치 A, B 및 C로서, 동작하고 있는 것으로 한다.25 shows how four information processing apparatuses operate as one virtual
사용자가 네트워크(1009)에 접속되어 있는 정보 처리 장치를 조작한 경우, 조작 대상이 마스터 장치(1001)이면, 그 조작 정보는, 마스터 장치(1001)에 있어서 직접 파악되고, 조작 대상이 슬레이브 장치이면, 그 조작 정보는, 조작된 슬레이브 장치로부터 마스터 장치(1001)에 송신된다. 즉, 사용자의 조작 대상이 마스터 장치(1001)와 슬레이브 장치 중 어느 것인가에 관계없이, 그 조작 정보는 항상 마스터 장치(1001)에 있어서 파악된다. 조작 정보의 송신은, 예를 들면, DMA 커맨드가 조작 정보 송신 커맨드인 소프트웨어 셀에 의해 행해진다.When the user operates the information processing apparatus connected to the
그리고, 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 그 조작 정보에 따라서, 실행하는 기능 프로그램을 선택한다. 그 때, 필요하면, 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 상기의 방법에 의해 자 장치의 외부 메모리부(1031-1 또는 1031-2)로부터 메인 메모리(1026-1)에 기능 프로그램을 로딩하지만, 다른 정보 처리 장치(슬레이브 장치)가 마스터 장치(1001)에 기능 프로그램을 송신하여도 무방하다.The main processor 1021-1 included in the
기능 프로그램에는, 그 실행 단위마다 필요로 되는, 도 4에 도시한 각 정보로서 나타나는 정보 처리 장치 종별 ID, 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 메모리부에 관한 조건 등의, 장치에 관한 요구 스펙이 규정되어 있다.The function program includes apparatuses such as information processing apparatus type IDs shown as information shown in FIG. 4 required for each execution unit, processing capability of the main processor or subprocessor, main memory usage, and conditions relating to the external memory unit. The specification of requirements is specified.
마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 각 기능 프로그램에 대하여 필요로 되는 상기 요구 스펙을 판독한다. 또한, 미리 능력 교환 프로그램에 의해 메인 메모리(1026-1)에 기록된 장치 정보 테이블을 참조하여, 각 정보 처리 장치의 장치 정보를 판독한다. 여기서의 장치 정보는, 도 4에 도시한 정보 처리 장치 ID 이하의 각 정보를 나타내고, 메인 프로세서, 서브 프로세서, 메인 메모리 및 외부 메모리부에 관한 정보이다.The main processor 1021-1 included in the
마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 네트워크(1009)상에 접속된 각 정보 처리 장치의 상기 장치 정보와, 기능 프로그램 실행에 필요로 되는 상기 요구 스펙을 순차적으로 비교한다.The main processor 1021-1 included in the
그리고, 예를 들면, 기능 프로그램이 녹화 기능을 필요로 하는 경우에는, 정보 처리 장치 종별 ID에 기초하여, 녹화 기능을 갖는 정보 처리 장치만을 특정하여 추출한다. 또한, 기능 프로그램을 실행하기 위해 필요한 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리 사용량, 외부 메모리부에 관한 조건을 확보할 수 있는 슬레이브 장치를, 실행 요구 후보 장치로서 특정한다. 여기서, 복수의 실행 요구 후보 장치가 특정된 경우에는, 해당 후보장치로부터 1개의 실행 요구 후보 장치를 특정하여 선택한다.For example, when the function program requires a recording function, only the information processing device having a recording function is identified and extracted based on the information processing device type ID. Further, a slave device capable of securing the processing capacity of the main processor or subprocessor, the main memory usage, and the external memory unit necessary to execute the function program is specified as the execution request candidate device. Here, when a plurality of execution request candidate devices are specified, one execution request candidate device is specified and selected from the candidate device.
실행 요구하는 슬레이브 장치가 특정되면, 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 그 특정된 슬레이브 장치에 대하여, 자 장치내의 정보 처리 컨트롤러(1011)에 포함되는 메인 메모리(1026-1)에 기록되어 있는 해당 슬레이브 장치의 장치 정보 테이블을 갱신한다.When the slave device requesting execution is specified, the main processor 1021-1 included in the
또한, 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, DMA 커맨드가 기능 프로그램 실행 커맨드인 소프트웨어 셀을 생성하고, 해당 소프트웨어 셀의 셀 인터페이스에, 해당 기능 프로그램에 관한 필요한 서브 프로세서의 정보 및 샌드 박스 사이즈(도 3 참조)를 설정하여, 상기 실행 요구되는 슬레이브 장치에 대하여 송신한다.In addition, the main processor 1021-1 included in the
기능 프로그램의 실행을 요구된 슬레이브 장치는, 그 기능 프로그램을 실행함과 더불어, 자 장치의 장치 정보 테이블을 갱신한다. 그 때, 필요하면, 슬레이브 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)는, 상기의 방법에 의해 자 장치의 외부 메모리부(1031)로부터 메인 메모리(1026)에 기능 프로그램 및 해당 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램을 로딩한다.The slave device requested to execute the function program executes the function program and updates the device information table of the own device. At that time, if necessary, the main processor 1021 included in the information processing controller in the slave device is connected to the
기능 프로그램의 실행을 요구된 슬레이브 장치의 외부 메모리부(1031)에, 필요한 기능 프로그램 또는 해당 기능 프로그램과 제휴 동작하는 서브 프로세서 프로그램이 기록되어 있지 않은 경우에는, 다른 정보 처리 장치가 해당 기능 프로그램 또는 서브 프로세서 프로그램을, 그 기능 프로그램 실행 요구처 슬레이브 장치에 송신하도록, 시스템을 구성하면 무방하다.If the necessary function program or the subprocessor program cooperatively operating with the function program is not recorded in the external memory unit 1031 of the slave device that is requested to execute the function program, the other information processing apparatus is the function program or sub. The system may be configured to transmit the processor program to the functional program execution request slave device.
서브 프로세서 프로그램에 대해서는, 전술하는 로딩 커맨드 및 킥 커맨드를 이용하여 타 정보 처리 장치에 실행시킬 수도 있다.The subprocessor program may be executed by another information processing apparatus using the above-described loading command and kick command.
기능 프로그램의 실행 종료 후, 기능 프로그램을 실행한 슬레이브 장치내의 정보 처리 컨트롤러에 포함되는 메인 프로세서(1021)는, 종료 통지를 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)에 송신함과 더불어, 자 장치의 장치 정보 테이블을 갱신한다. 마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 그 종료 통지를 수신하여, 기능 프로그램을 실행한 슬레이브 장치의 장치 정보 테이블을 갱신한다.After completion of the execution of the function program, the main processor 1021 included in the information processing controller in the slave device that executed the function program sends a termination notification to the main processor 1021 included in the
마스터 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 자 장치 및 타 장치의 장치 정보 테이블의 참조 결과로부터, 해당 기능 프로그램을 실행할 수 있는 정보 처리 장치로서, 자신을 선택하는 경우도 있을 수 있다. 그 경우에는, 마스터 장치(1001)가 해당 기능 프로그램을 실행한다.The main processor 1021-1 included in the
도 25의 예에서, 사용자가 슬레이브 장치 A(정보 처리 장치(1002))를 조작하여, 해당 조작에 따른 기능 프로그램을 별도의 슬레이브 장치 B(정보 처리 장치 (1003))가 실행하는 경우에 관하여, 도 26에 이상의 분산 처리의 예를 나타낸다.In the example of FIG. 25, in the case where a user manipulates slave device A (information processing device 1002), and a separate slave device B (information processing device 1003) executes a function program according to the operation, 26 shows an example of the above dispersion processing.
도 26의 예에서는, 사용자가 슬레이브 장치 A를 조작함으로써, 슬레이브 장치 A를 포함하는 네트워크 시스템 전체의 분산 처리가 개시하여, 우선 슬레이브 장치 A는, 단계 1091에서, 그 조작 정보를 마스터 장치(1001)에 송신한다.In the example of FIG. 26, when the user operates the slave device A, the distributed processing of the entire network system including the slave device A starts, and the slave device A first transmits the operation information to the
마스터 장치(1001)는, 단계 1092에서, 그 조작 정보를 수신하고, 또한 단계 1093으로 진행하여, 자 장치의 메인 메모리(1026-1)에 기록되어 있는 자 장치 및 타 장치의 장치 정보 테이블로부터, 각 정보 처리 장치의 동작 상태를 조사하여, 수신한 조작 정보에 대응한 기능 프로그램을 실행할 수 있는 정보 처리 장치를 선택한다. 이 예는, 슬레이브 장치 B가 선택되는 경우이다.In
다음으로, 마스터 장치(1001)는, 단계 1094에서, 그 선택한 슬레이브 장치 B에 대하여 기능 프로그램의 실행을 요구한다.Next, in
슬레이브 장치 B는, 단계 1095에서, 그 실행 요구를 수신하고, 또한 단계 1096으로 진행하여, 실행 요구된 기능 프로그램을 실행한다.In step 1095, the slave device B receives the execution request, and then proceeds to step 1096 to execute the execution requested function program.
이상과 같이, 사용자는, 1대의 정보 처리 장치만을 조작함으로써, 다른 정보 처리 장치를 조작하지 않고, 복수의 정보 처리 장치(1001, 1002, 1003 및 1004)를 가상적인 1대의 정보 처리 장치(1007)로서 동작시킬 수 있다.As described above, the user operates only one information processing apparatus so that the plurality of
(4-6. 각 정보 처리 장치 및 시스템의 구체예)(4-6. Specific example of each information processing apparatus and system)
네트워크(1009)를 통하여 상호 접속되는 정보 처리 장치(1001, 1002, 1003 및 1004)는, 기본적으로 상기한 바와 같은 정보 처리 컨트롤러(1011, 1012, 1013 및 1014)에 의해 정보 처리를 행하는 것이면, 어떠한 것이어도 무방하지만, 도 27 에, 그 일례를 나타낸다.The
이 예에서는, 정보 처리 컨트롤러(1011)를 구비하는 정보 처리 장치(1001)는, 하드디스크 레코더이고, 도 28에 나타내는 바와 같이, 하드웨어 구성으로서는, 도 16에 도시한 외부 메모리부(1031-1)로서, 하드디스크를 내장하고, 도 16에 도시한 외부 메모리부(1031-2)로서, DVD±R/RW, CD±R/RW, Blu-rayDisc(등록상표) 등의 광 디스크를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(1011)의 버스(1032-1)에 접속된 버스(1051-1)에, 방송 수신부(1052-1), 영상 입력부(1053-1), 음성 입력부(1054-1), 영상 출력부(1055-1), 음성 출력부(1056-1), 조작 패널부(1057-1), 리모콘 수광부(1058-1) 및 네트워크 접속부(1059-1)가 접속된 것이다.In this example, the
방송 수신부(1052-1), 영상 입력부(1053-1) 및 음성 입력부(1054-1)는, 방송 신호를 수신하고, 또는 정보 처리 장치(1001)의 외부로부터 영상 신호 및 음성 신호를 입력하고, 각각 소정 포맷의 디지털 데이터로 변환하여, 정보 처리 컨트롤러(1011)에서의 처리를 위해 버스(1051-1)에 송출하는 것이고, 영상 출력부(1055-1) 및 음성 출력부(1056-1)는, 정보 처리 컨트롤러(1011)로부터 버스(1051-1)에 송출된 영상 데이터 및 음성 데이터를 처리하여, 디지털 데이터인 상태로, 또는 아날로그 신호로 변환하여, 정보 처리 장치(1001)의 외부에 송출하는 것이고, 리모콘 수광부(1058-1)는, 리모콘 송신기(1063-1)로부터의 리모콘(원격 조작) 적외선 신호를 수신하는 것이다.The broadcast receiving unit 1052-1, the video input unit 1053-1, and the audio input unit 1054-1 receive a broadcast signal or input a video signal and an audio signal from the outside of the
도 27 및 도 28에 나타내는 바와 같이, 정보 처리 장치(하드디스크 레코더)(1001)의 영상 출력부(1055-1) 및 음성 출력부(1056-1)에는, 모니터 표시 장치 (1061) 및 스피커 장치(1062)가 접속된다.As shown in FIG. 27 and FIG. 28, the
도 27의 예의, 정보 처리 컨트롤러(1012)를 구비하는 정보 처리 장치(1002)도, 하드디스크 레코더이고, 도 28에 있어서 괄호 안에 참조 번호를 붙여서 나타내는 바와 같이, 정보 처리 장치(1001)와 마찬가지로 구성된 것이다. 단, 예를 들면, 도 27에 나타내는 바와 같이, 정보 처리 장치(하드디스크 레코더)(1002)에는, 모니터 표시 장치 및 스피커 장치는 접속되지 않는다.The
정보 처리 장치(하드디스크 레코더)(1001 및 1002), 즉 정보 처리 컨트롤러(1011 및 1012)의 소프트웨어 구성으로서는, 도 29에 나타내는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 영상 음성 기록, 영상 음성 재생, 소재 검색 및 프로그램 녹화 예약을 위한 프로그램을 구비하고, 디바이스 드라이버로서, 방송 수신, 영상 출력, 음성 출력, 외부 메모리부 입출력 및 네트워크 입출력을 위한 프로그램을 구비한다.As a software configuration of the information processing apparatuses (hard disk recorders) 1001 and 1002, that is, the
도 27의 예의, 정보 처리 컨트롤러(1013)를 구비하는 정보 처리 장치(1003)는, PDA(Personal Digital Assistants)이고, 도 30에 도시하는 바와 같이, 하드웨어 구성으로서는, 도 16에 도시한 외부 메모리부(1031-5)로서, 메모리 카드 디스크를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(1013)의 버스(1032-3)에 접속된 버스(1071)에, 액정 표시부(1072), 음성 출력부(1073), 카메라부(1074), 음성 입력부(1075), 키보드부(1076) 및 네트워크 접속부(1077)가 접속된 것이다.The
또한, 도 16에서는 내부를 생략한 정보 처리 컨트롤러(1013)는, 메인 프로세서(1021-3), 서브 프로세서(1023-7, 1023-8 및 1023-9), DMAC(다이렉트 메모리 액 세스 컨트롤러)(1025-3), 컨트롤 레지스터(1028-3), 워크 메모리(1029-3), DC(디스크 컨트롤러)(1030-3), 및 버스(1032-3)를 구비하고, 그 메인 프로세서(1021-3)는, LS(로컬 스토리지)(1022-3)를 갖고, 각 서브 프로세서(1023-7, 1023-8 및 1023-9)는, LS(로컬 스토리지)(1024-7, 1024-8 및 1024-9)를 갖는다.In addition, in FIG. 16, the
정보 처리 장치(PDA)(1003), 즉 정보 처리 컨트롤러(1013)의 소프트웨어 구성으로서는, 도 31에 도시하는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 영상 음성 기록, 영상 음성 재생, 전화번호부, 워드 프로세서 및 표 계산을 위한 프로그램, 및 Web 브라우저를 구비하고, 디바이스 드라이버로서, 영상 출력, 음성 출력, 카메라 영상 입력, 마이크 음성 입력 및 네트워크 입출력을 위한 프로그램을 구비한다.As the software configuration of the information processing apparatus (PDA) 1003, that is, the
도 27의 예의, 정보 처리 컨트롤러(1014)를 구비하는 정보 처리 장치(1004)는, 포터블 CD 플레이어이고, 도 32에 도시한 바와 같이, 하드웨어 구성으로서는, 도 16에 도시한 외부 메모리부(1031-6)로서, CD(Compact Disc)를 장착할 수 있도록 구성됨과 더불어, 정보 처리 컨트롤러(1014)의 버스(1032-4)에 접속된 버스(1081)에, 액정 표시부(1082), 음성 출력부(1083), 조작 버튼부(1084) 및 네트워크 접속부(1085)가 접속된 것이다.The
또한, 도 16에서는 내부를 생략한 정보 처리 컨트롤러(1014)는, 메인 프로세서(1021-4), 서브 프로세서(1023-10, 1023-11 및 1023-12), DMAC(다이렉트 메모리 액세스 컨트롤러)(1025-4), 컨트롤 레지스터(1028-4), 워크 메모리(1029-4), DC(디스크 컨트롤러)(1030-4), 및 버스(1032-4)를 구비하고, 그 메인 프로세서(1021-4) 는, LS(로컬 스토리지)(1022-4)를 갖고, 각 서브 프로세서(1023-10, 1023-11 및 1023-12)는, LS(로컬 스토리지)(1024-10, 1024-11 및 1024-12)를 갖는다.In addition, the
정보 처리 장치(포터블 CD 플레이어)(1004), 즉 정보 처리 컨트롤러(1014)의 소프트웨어 구성으로서는, 도 33에 도시하는 바와 같이, 제어 프로그램으로서, MS 매니저 및 능력 교환 프로그램을 구비하고, 기능 프로그램으로서, 음악 재생을 위한 프로그램을 구비하며, 디바이스 드라이버로서, 음성 출력, CD 제어 및 네트워크 입출력을 위한 프로그램을 구비한다.As a software configuration of the information processing apparatus (portable CD player) 1004, that is, the
이상과 같은 도 27의 예의 네트워크 시스템에 있어서, 정보 처리 장치(1001, 1003 및 1004)가 네트워크(1009)상에 접속되어 있고, 정보 처리 장치(1001)가 마스터 장치(MS 스테이터스=0)로서, 정보 처리 장치(1003 및 1004)가 슬레이브 장치(MS 스테이터스=1)로서, 설정되어 있는 것으로 한다.In the network system of the example of FIG. 27 described above, the
이 상태에서, 새롭게 정보 처리 장치(1002)가 네트워크(1009)에 접속되면, 전술한 방법에 의해, 정보 처리 장치(1002)내의 정보 처리 컨트롤러(1012)에 포함되는 메인 프로세서(1021-2)에 의해 실행되고 있는 MS 매니저는, 다른 정보 처리 장치(1001, 1003 및 1004)에 MS 스테이터스를 조회하여, 정보 처리 장치(1001)가 이미 마스터 장치로서 존재하는 것을 인식하여, 자 장치(정보 처리 장치(1002))를 슬레이브 장치(MS 스테이터스=1)로 설정한다. 또한, 마스터 장치로 설정되어 있는 정보 처리 장치(1001)는, 새롭게 추가된 정보 처리 장치(1002)를 포함하는 각 장치의 장치 정보를 수집하여, 메인 메모리(1026-1)내의 장치 정보 테이블을 갱신한다.In this state, when the
이와 같은 상태에서, 사용자에 의해 슬레이브 장치인 정보 처리 장치 (PDA)(1003)에 의해 2시간의 방송 프로그램의 녹화 예약의 조작이 행해진 경우를 나타낸다.In this state, it shows the case where the recording reservation operation of the broadcast program for 2 hours is performed by the information processing apparatus (PDA) 1003 which is a slave device by the user.
이 경우, 슬레이브 장치인 정보 처리 장치(PDA)(1003)는, 사용자로부터 녹화 개시 시각, 녹화 종료 시각, 녹화 대상 방송 채널, 녹화 품질 등의 정보를 포함하는 녹화 예약 정보의 입력을 접수하고, 해당 녹화 예약 정보 및 DMA 커맨드로서의 녹화 예약 커맨드를 포함하는 소프트웨어 셀을 생성하여, 마스터 장치인 정보 처리 장치(1001)에 송신한다.In this case, the information processing apparatus (PDA) 1003, which is a slave device, receives an input of recording reservation information including information such as recording start time, recording end time, recording target broadcast channel, recording quality, and the like from the user. A software cell including the recording reservation information and the recording reservation command as the DMA command is generated and transmitted to the
DMA 커맨드가 녹화 예약 커맨드인 소프트웨어 셀을 수신한 정보 처리 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 녹화 예약 커맨드를 판독함과 더불어, 메인 메모리(1026-1)내의 장치 정보 테이블을 참조하여, 해당 녹화 예약 커맨드를 실행 가능한 정보 처리 장치를 특정한다.The main processor 1021-1 included in the
우선, 메인 프로세서(1021-1)는, 장치 정보 테이블에 포함되는 각 정보 처리 장치(1001, 1002, 1003 및 1004)의 정보 처리 장치 종별 ID를 판독하여, 녹화 예약 커맨드에 대응하는 기능 프로그램을 실행 가능한 정보 처리 장치를 추출한다. 여기서는, 녹화 기능을 나타내는 정보 처리 장치 종별 ID를 갖는 정보 처리 장치(1001 및 1002)가 후보 장치로서 특정되고, 정보 처리 장치(1003 및 1004)는 후보 장치로부터 제외된다.First, the main processor 1021-1 reads the information processing apparatus type IDs of the
다음으로, 마스터 장치인 정보 처리 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 장치 정보 테이블을 참조하여, 정보 처리 장치(1001 및 1002)의 메인 프로세서 또는 서브 프로세서의 처리 능력, 메인 메모리에 관한 정보 등의, 장치에 관한 정보를 판독하고, 정보 처리 장치(1001 및 1002)가 녹화 예약 커맨드에 대응하는 기능 프로그램의 실행에 필요한 요구 스펙을 만족하는지의 여부를 판단한다. 여기서는, 정보 처리 장치(1001, 1002) 모두, 녹화 예약 커맨드에 대응하는 기능 프로그램의 실행에 필요한 요구 스펙을 만족하는 것으로 한다.Next, the main processor 1021-1 included in the
또한, 메인 프로세서(1021-1)는, 장치 정보 테이블을 참조하여, 정보 처리 장치(1001 및 1002)의 외부 메모리부에 관한 정보를 판독하고, 외부 메모리부의 공백 용량이 해당 녹화 예약 커맨드의 실행에 필요한 용량을 만족하는지의 여부를 판단한다. 정보 처리 장치(1001 및 1002)는 하드디스크 레코더이기 때문에, 각각 하드디스크(1031-1 및 1031-3)의, 총 용량과 사용량과의 차분이, 각각의 공백 용량에 상당한다.In addition, the main processor 1021-1 reads information about the external memory units of the
이 경우, 정보 처리 장치(1001)의 하드디스크(1031-1)의 공백 용량이, 녹화 시간으로 환산하여 10분이고, 정보 처리 장치(1002)의 하드디스크(1031-3)의 공백 용량이, 녹화 시간으로 환산하여 20시간이라고 하자.In this case, the free space of the hard disk 1031-1 of the
이 때, 마스터 장치인 정보 처리 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되는 메인 프로세서(1021-1)는, 해당 녹화 예약 커맨드의 실행에 필요한 2시간분의 공백 용량을 확보할 수 있는 정보 처리 장치를, 실행 요구처 슬레이브 장치로서 특정한다.At this time, the main processor 1021-1 included in the
그 결과, 정보 처리 장치(1002)만이 실행 요구처 슬레이브 장치로서 선택되고, 마스터 장치인 정보 처리 장치(1001)내의 정보 처리 컨트롤러(1011)에 포함되 는 메인 프로세서(1021-1)는, 사용자에 의해 조작된 정보 처리 장치(1003)로부터 송신된 녹화 예약 정보를 포함하는 해당 녹화 예약 커맨드를 정보 처리 장치(1002)에 송신하여, 상기 2시간의 방송 프로그램의 녹화 예약의 실행을 요구한다.As a result, only the
그리고, 정보 처리 장치(1002)내의 정보 처리 컨트롤러(1012)에 포함되는 메인 프로세서(1021-2)는, 해당 녹화 예약 커맨드를 해석하여, 녹화에 필요한 기능 프로그램을 외부 메모리부인 하드디스크(1031-3)로부터 메인 메모리(1026-2)에 로딩하고, 녹화 예약 정보에 따라서 녹화를 실행한다. 그 결과, 녹화 예약된 2시간의 방송 프로그램의 영상 음성 데이터가 정보 처리 장치(1002)의 하드디스크(1031-3)에 기록된다.Then, the main processor 1021-2 included in the
이와 같이, 도 27의 예의 네트워크 시스템에 있어서도, 사용자는, 1대의 정보 처리 장치만을 조작함으로써, 다른 정보 처리 장치를 조작하지 않고, 복수의 정보 처리 장치(1001, 1002, 1003 및 1004)를 가상적인 1대의 정보 처리 장치(1007)로서 동작시킬 수 있다.Thus, even in the network system of the example of FIG. 27, the user operates only one information processing apparatus, thereby virtually operating the plurality of
당업자에게는, 설계 요건이나 다른 인자에 따라, 특허 청구범위의 범주 또는 그 등가물 내에서 다양한 수정, 조합, 부 조합, 변경 등이 있을 수 있다는 것을 이해할 것이다.Those skilled in the art will understand that various modifications, combinations, subcombinations, changes, and the like may occur within the scope of the claims or equivalents thereof, depending on design requirements or other factors.
이상과 같이, 본 발명에 따르면, 네트워크를 통하여 접속된 복수의 정보 처리 장치 사이에서 분산 처리를 확실하고 또한 효과적으로 행할 수 있다.As described above, according to the present invention, distributed processing can be reliably and effectively performed between a plurality of information processing apparatuses connected via a network.
Claims (22)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2004-00369126 | 2004-12-21 | ||
JP2004369126A JP2005251163A (en) | 2004-02-03 | 2004-12-21 | Information processing device, information processing method, information processing system and information processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060071069A true KR20060071069A (en) | 2006-06-26 |
Family
ID=37164623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050021349A KR20060071069A (en) | 2004-12-21 | 2005-03-15 | Information processing apparatus, information processing method, information processing system, and computer program for information processing |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20060071069A (en) |
-
2005
- 2005-03-15 KR KR1020050021349A patent/KR20060071069A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101089965B1 (en) | Network system, distributed processing method and information processing apparatus | |
US8103771B2 (en) | Distributing processing apparatus, method, and system | |
KR20060043201A (en) | Information processing system, information processing method, and computer program | |
CN100534159C (en) | Information processing system, information processing method, and computer program | |
JP4599923B2 (en) | Information processing system, information processing method, and computer program | |
KR101119870B1 (en) | Information processing system and method | |
CN100440198C (en) | Information processing system, information processing method, and computer program used therewith | |
KR20060043259A (en) | Information processing device, network system condition presentation method and computer program | |
US7970137B2 (en) | Content reproduction apparatus, content recording apparatus, network system, and content recording/reproduction method | |
KR101096308B1 (en) | Information processing apparatus, information processing method, information processing system and recording medium | |
JP2006031525A (en) | Information processor, information processing method and program | |
KR20060071069A (en) | Information processing apparatus, information processing method, information processing system, and computer program for information processing | |
JP2005339401A (en) | Information processor and control method thereof, information processing controller, information processing unit and control method thereof, and computer program | |
JP4349189B2 (en) | Network system, program recording reservation method, and information processing apparatus | |
JP2005251163A (en) | Information processing device, information processing method, information processing system and information processing program | |
JP2005267150A (en) | Information processing system, information processing method, and computer program | |
JP2005293418A (en) | Information processor, network system, throughput presentation method and program for throughput presentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |