KR100933389B1 - Method and apparatus for emulating a software application - Google Patents
Method and apparatus for emulating a software application Download PDFInfo
- Publication number
- KR100933389B1 KR100933389B1 KR1020067014395A KR20067014395A KR100933389B1 KR 100933389 B1 KR100933389 B1 KR 100933389B1 KR 1020067014395 A KR1020067014395 A KR 1020067014395A KR 20067014395 A KR20067014395 A KR 20067014395A KR 100933389 B1 KR100933389 B1 KR 100933389B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- processing
- software program
- adjusting
- identification information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 149
- 238000012545 processing Methods 0.000 claims abstract description 526
- 238000009826 distribution Methods 0.000 claims description 72
- 230000008569 process Effects 0.000 claims description 67
- 238000004891 communication Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 12
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 abstract description 20
- 238000004590 computer program Methods 0.000 description 91
- 230000006870 function Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 21
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 13
- 238000007667 floating Methods 0.000 description 10
- 238000001994 activation Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 2
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 102220619377 Alpha-1,3-galactosyltransferase 2_S40A_mutation Human genes 0.000 description 1
- 102220619379 Alpha-1,3-galactosyltransferase 2_S60A_mutation Human genes 0.000 description 1
- 102100036822 Ankyrin repeat and KH domain-containing protein 1 Human genes 0.000 description 1
- 102100034609 Ankyrin repeat domain-containing protein 17 Human genes 0.000 description 1
- 101100350613 Arabidopsis thaliana PLL1 gene Proteins 0.000 description 1
- 101100082028 Arabidopsis thaliana PLL2 gene Proteins 0.000 description 1
- 101100350628 Arabidopsis thaliana PLL3 gene Proteins 0.000 description 1
- 101100296075 Arabidopsis thaliana PLL4 gene Proteins 0.000 description 1
- 101100135276 Arabidopsis thaliana PLL5 gene Proteins 0.000 description 1
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 1
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 1
- 101000928335 Homo sapiens Ankyrin repeat and KH domain-containing protein 1 Proteins 0.000 description 1
- 101000924481 Homo sapiens Ankyrin repeat domain-containing protein 17 Proteins 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 1
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 1
- 102220588444 Keratin, type I cytoskeletal 18_S44A_mutation Human genes 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 102220370916 c.136T>G Human genes 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000002019 doping agent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 102220238245 rs1555952639 Human genes 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 235000019640 taste Nutrition 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3873—Variable length pipelines, e.g. elastic pipeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
본 발명은, 기록매체에 기록된 소프트웨어 프로그램의 버전을 나타내는 식별정보를 취득하고, 상기 소프트웨어 프로그램이 실행될 하나 이상의 프로세서의 처리능력을 상기 소프트웨어 프로그램의 버전에 따라 조정해야 하는지 결정하고, 상기 단계에서 조정이 결정되면 상기 하나 이상의 프로세서의 처리능력을 조정하는 것을 포함하는 처리능력을 조정하는 방법 및 장치에 관한 것이다.The present invention obtains identification information indicating a version of a software program recorded on a recording medium, determines whether the processing capability of one or more processors on which the software program is to be executed should be adjusted according to the version of the software program, and adjusting at this step. Once determined, the present invention relates to a method and apparatus for adjusting processing power, including adjusting processing power of the one or more processors.
소프트웨어 프로그램, 인터넷, 주처리장치, 하위처리장치, 버스, 프로세서, 변환테이블, 관리자서버, 네트워크, 시스템 Software program, Internet, main processor, sub processor, bus, processor, conversion table, manager server, network, system
Description
본 발명은 소프트웨어 프로그램을 프로세서에서 실행하여 얻은 결과를 향상시키기 위하여 프로세서의 처리능력을 조정하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for adjusting the processing power of a processor to enhance the results obtained by executing a software program on the processor.
가정용 및 상업용 소프트웨어 프로그램의 설계 마케팅이나 판매는 날로 성장하고 있다. 실제로, 소프트웨어 개발자들은 소비자의 새로운 취향을 만족시키기 위하여 끊임없이 노력하고 있다. 그런 점은 비디오 게임, 애니매이션 영화, 특수 효과 등과 같은 컴퓨터 그래픽 소프트웨어 분야에서 더욱 현저하다.Design marketing and sales of home and commercial software programs are growing day by day. Indeed, software developers are constantly working to satisfy new tastes for consumers. This is especially true in the field of computer graphics software such as video games, animated movies, special effects, and the like.
소프트웨어 프로그램이 복잡해짐에 따라 소프트웨어 프로그램이 실행되는 하드웨어의 처리능력 또한 발전하고 있다. 1971년 인텔에서 최초의 마이크로프로세서, 4004(산술계산이 가능한 4비트 프로세서)를 개발한 이후, 마이크로프로세서의 처리능력은 비약적으로 발전했다. 1979년 인텔은 IBM 개인용 컴퓨터에 사용가능한 8080 마이크로프로세서를 선보였으며, 8080 마이크로프로세서는 29,000개가량의 트랜지스터를 5MHz의 클록속도로 사용하여 초당 33만 명령(MIPS)을 실행하였다. 1982년부터 1989년까지 인텔사는 80286, 80386, 80486마이크로프로세서를 내놓았으며, 80486마이크로프로세서는 120만 트랜지스터를 25MHz의 클록 속도로 사용하여 20MIPS를 실현하였다. 그리고 인텔은 1993년부터 2000년까지 펜티엄계열 마이크로프로세서를 개발했으며, 그중 펜티엄 4 마이크로프로세서는 4천2백만 트랜지스터를 1.5GHz의 클록 속도로 사용하여 약 17,000MIPS를 실현하였다. 상기한 바와 같이, 소프트웨어 프로그램이 실행되는 하드웨어의 속도와 소비전력이 점차 증가하고 있음을 알 수 있다. 예컨대, 펜티엄 4는 8088의 5000배속으로 작동한다. 현재는 약 4GHz의 클록주파수에 고속의 MIPS레벨을 실현하는 더욱 새롭고 강력한 마이크로프로세서가 개발되고 있다.As software programs become more complex, the processing power of the hardware on which the software programs run is also developing. Since Intel developed the first microprocessor, 4004 (arithmetic 4-bit processor), in 1971, the processing power of microprocessors has grown dramatically. In 1979, Intel introduced the 8080 microprocessor for use in IBM personal computers, which used 33,000 instructions per second (MIPS) using 29,000 transistors at a clock speed of 5 MHz. From 1982 to 1989, Intel introduced 80286, 80386, and 80486 microprocessors. The 80486 microprocessors achieved 20 MIPS using 1.2 million transistors at a clock speed of 25 MHz. Intel developed the Pentium family of microprocessors from 1993 to 2000, with the Pentium 4 microprocessor using 42 million transistors at a clock speed of 1.5 GHz, achieving approximately 17,000 MIPS. As described above, it can be seen that the speed and power consumption of the hardware on which the software program is executed are gradually increasing. For example, the Pentium 4 runs at 5000 times 8080. Today, newer and more powerful microprocessors are being developed that achieve high MIPS levels at clock frequencies of about 4 GHz.
요즘은 실시간, 멀티미디어 프로세서가 각광받고 있으므로, 초당 수천 메가비트의 데이터를 처리할 수 있는 빠른 처리속도가 요구된다. 단일 프로세서장치는 처리속도가 빠른 반면 멀티프로세서 구조의 처리속도를 매치시키지 못하는 단점이 있다. 그에 반해, 멀티프로세서 시스템에서 프로세서들은 병렬로 (적어도 동시에) 동작하므로 원하는 결과를 얻을 수 있다는 장점이 있다.Nowadays, real-time, multimedia processors are in the spotlight, requiring a fast processing speed capable of processing thousands of megabits of data per second. While a single processor device has a high processing speed, it does not match the processing speed of a multiprocessor structure. In contrast, in multiprocessor systems, processors operate in parallel (at least simultaneously), which has the advantage of achieving the desired results.
따라서, 많은 컴퓨터나 산출장치들이 멀티프로세싱 기술을 이용하고 있는데, 예컨대, PC나 서버뿐만 아니라 휴대전화, 모바일 컴퓨터, PDA, 셋톱박스, 디지털 TV 등에 널리 이용되고 있다. Therefore, many computers and computing devices use multiprocessing technology. For example, they are widely used in mobile phones, mobile computers, PDAs, set-top boxes, digital TVs, and the like as well as PCs and servers.
도 1은 소프트웨어 프로그램 및 하드웨어의 발전 모습을 보여주고 있다. 도 1을 참조하면, 초기에 개발된 하드웨어 시스템(102) 보다는 후에 개발된 하드웨어 시스템(106)이 더 강력하며, 그보다는 현재 사용되고 있는 하드웨어 시스템(118)이 더 강력하다. 광디스크에 저장된 것으로 도시된 소프트웨어 프로그램(104)은 하드웨어 시스템(102)에서 실행되도록 설계되었다. 예컨대, 소프트웨어 프로그램(104) 은 인텔의 80286 마이크로프로세서 정도의 처리특성을 갖는 처리장치에서 실행되는 조건으로 기록되었다. 소프트웨어 프로그램(104)에 뒤이어 개발된 소프트웨어 프로그램(110)은 인텔의 80486 마이크로프로세서 정도의 처리특성을 갖는 처리장치에서 실행되도록 설계되었거나 또는 1994년에 개발된 플레이스테이션 게임 콘솔의 처리능력을 갖는 처리장치에서 실행되도록 설계/개발되었다. 소프트웨어 프로그램(116)은 인텔의 펜티엄3 마이크로프로세서 정도의 처리특성을 갖는 처리장치에서 실행되도록 설계/개발되었거나 또는 비디오 게임 소프트웨어 프로그램을 실행하도록 설계된 플레이스테이션2 콘솔에서 실행되도록 설계/개발되었다. Figure 1 shows the development of software programs and hardware. Referring to FIG. 1, later developed
일반적으로, 특정 처리특성을 갖는 처리장치에서 실행되도록 개발된 소프트웨어 프로그램은 그보다 높은 처리특성을 갖는 처리장치에서도 실행가능하지만, 화면에 멀티미디어 기능을 제공하도록 설계된 소프트웨어 프로그램의 경우, 특히 비디오 게임 소프트웨어 프로그램의 경우, 그렇지 않기도 하다. 예컨대, 평이한 성능의 처리장치에 맞게 설계된 소프트웨어 프로그램을 고성능의 처리능력을 갖는 처리장치에 실행시키면 동영상이 과도하게 빨리 움직이거나 오디오요소와 비디오요소가 불일치하게 된다. 이러한 문제는 프로그램 스레드(병렬처리장치)간의 상호의존성이 보장되지 않을 경우 발생한다. Generally, a software program developed to be executed on a processing device having a specific processing characteristic can be executed on a processing device having a higher processing characteristic, but a software program designed to provide a multimedia function on a screen, particularly a video game software program. If not, it may not. For example, if a software program designed for a processor with a smooth performance is executed on a processor with high performance, the video may move excessively fast or the audio and video elements may be inconsistent. This problem occurs when the interdependencies between program threads (parallel processing units) are not guaranteed.
하나의 처리장치에 특정 처리장치에서 실행하도록 설계된 소프트웨어 프로그램과 평이한 수준의 처리장치에서 실행하도록 설계된 소프트웨어 프로그램을 모두 실행시킬 의도가 없다면, 사용자는 각각의 소프트웨어 프로그램에 맞는 서로 다른 처리장치를 사용해야 한다. 그러나 본 발명자의 플레이스테이션 콘솔 및 플레이스 테이션2 콘솔은 예외이다. 플레이스테이션2 콘솔은 하나 이상의 마이크로프로세서를 사용하기 때문에, 플레이스테이션 콘솔용 소프트웨어 프로그램과 플레이스테이션2 콘솔용 소프트웨어 프로그램을 모두 수용할 수 있다. 예컨대, 플레이스테이션2 콘솔은, 플레이스테이션 비디오 게임 소프트웨어 프로그램을 실행하기 위하여 플레이스테이션 콘솔에서 사용되는 마이크로프로세서뿐만 아니라 플레이스테이션2 콘솔용으로 설계된 비디오게임 소프트웨어 프로그램을 실행하는 플레이스테이션2 콘솔의 마이크로프로세서를 포함한다.Unless you intend to run both a software program designed to run on a particular processing unit and a software program designed to run on a level processing unit, a user must use a different processing unit for each software program. The exceptions are the Playstation console and the Placement2 console of the inventors. Since the PlayStation 2 console uses one or more microprocessors, it can accommodate both the PlayStation Console software program and the PlayStation 2 console software program. For example, the Playstation 2 console may include a microprocessor in the Playstation 2 console that runs a video game software program designed for the Playstation 2 console, as well as a microprocessor used in the Playstation console to run a Playstation video game software program. Include.
처리 능력이 서로 다른 복수의 마이크로프로세서를 갖는 처리장치는 소프트웨어 프로그램을 유지하는 문제를 여전히 안고 있으므로 효과적이며 효율적으로 저렴하게 해결할 수 있는 방안이 모색되어야 한다.Since a processing apparatus having a plurality of microprocessors having different processing capacities still has a problem of maintaining a software program, a solution to be effectively and efficiently and inexpensively needs to be sought.
본 발명은, 소프트웨어 프로그램의 버전을 나타내는 식별정보를 취득하는 단계와, 소프트웨어 프로그램이 실행될 적어도 하나의 프로세서의 처리능력을 소프트웨어 프로그램의 버전에 따라 조정해야 하는지 결정하는 단계; 및 상기 단계에서 조정이 결정되면 적어도 하나의 프로세서의 처리능력을 조정하는 단계를 포함하는 소프트웨어 프로그램을 실행하는 방법을 제공한다.The present invention includes obtaining identification information indicating a version of a software program, and determining whether to adjust the processing capability of at least one processor on which the software program is to be executed according to the version of the software program; And adjusting the processing capacity of the at least one processor if the adjustment is determined in the step.
상기 식별정보는 광학디스크매체, 자기매체 및 전자매체 중 적어도 하나의 기록매체에 저장된다. 소프트웨어 프로그램은 식별정보를 포함하며, 상기 식별정보는 소프트웨어 프로그램으로부터 취득된다.The identification information is stored in at least one recording medium of an optical disc medium, a magnetic medium and an electronic medium. The software program includes identification information, which is obtained from the software program.
프로세서의 처리능력을 조정하는 것은 처리장치의 클록주파수, 처리장치의 메모리 맵, 처리장치의 데이터 버스의 버스처리율, 처리장치의 데이터 버스의 대역폭, 처리장치의 캐시 크기, 처리장치의 캐시구조, 처리장치의 명령대기시간, 처리장치의 명령처리율, 처리장치의 메모리대기시간, 및 처리장치의 메모리처리율 중 적어도 하나를 변경하는 것을 포함한다. Adjusting the processor's processing power includes the clock frequency of the processor, the memory map of the processor, the bus throughput of the data bus of the processor, the bandwidth of the data bus of the processor, the cache size of the processor, the cache structure of the processor, and the processing. Changing at least one of an instruction waiting time of the apparatus, an instruction processing rate of the processing apparatus, a memory waiting time of the processing apparatus, and a memory processing rate of the processing apparatus.
본 발명에 따른 소프트웨어 프로그램의 실행 방법은, 복수의 소프트웨어 프로그램 각각의 식별정보를 적어도 하나의 프로세서의 처리능력에 행해질 조정을 나타내는 하나 이상의 매개변수와 관련시키는 변환테이블에 접근하는 단계, 및 소정의 식별정보에 관련된 매개변수를 사용하여 상기 적어도 하나의 프로세서의 처리능력을 조정하는 단계를 더 포함한다.A method of executing a software program according to the present invention comprises the steps of accessing a conversion table that associates identification information of each of a plurality of software programs with one or more parameters indicative of adjustments to be made to the processing capacity of at least one processor, and predetermined identification Adjusting the processing capability of the at least one processor using a parameter related to the information.
상기 테이블은 상기 적어도 하나의 프로세서와 함께 국부적으로 저장, 관리자 엔티티 내에 저장 및/또는 관리자 엔티티가 접근할 수 있는 위치에 저장된다. 테이블이 이격 저장될 경우, 소프트웨어 프로그램 실행방법은, 통신채널을 통해 상기 적어도 하나의 프로세서와 관리자 엔티티 사이의 링크를 확립시키는 단계, 및 상기 통신채널을 통해 상기 적어도 하나의 프로세서에서 관리자 엔티티로 식별정보를 송신하는 단계를 더 포함한다. 관리자 엔티티는 테이블에 접근하여 적어도 하나의 프로세서의 처리능력에 행해질 조정을 나타내는 관련된 하나 이상의 매개변수를 취득한다. 본 발명에 따른 소프트웨어 프로그램의 실행 방법은 상기 통신채널을 통해 관리자 엔티티로부터 상기 적어도 하나의 프로세서의 매개변수를 취득하는 단계, 및 소정의 식별정보에 관련된 매개변수를 이용하여 상기 적어도 하나의 프로세서의 처리능력을 조정하는 단계를 포함한다. The table is stored locally with the at least one processor, stored in an administrator entity and / or in a location accessible to the administrator entity. When a table is stored spaced apart, the software program execution method may include establishing a link between the at least one processor and an administrator entity through a communication channel, and identifying information from the at least one processor to an administrator entity through the communication channel. Further comprising the step of transmitting. The manager entity accesses the table to obtain one or more related parameters that indicate adjustments to be made to the processing power of at least one processor. A method of executing a software program according to the present invention comprises the steps of acquiring a parameter of the at least one processor from an administrator entity through the communication channel, and processing the at least one processor using a parameter related to predetermined identification information. Adjusting the ability.
상기 테이블은 복수의 소프트웨어 프로그램 각각의 식별정보를 서로 다른 복수의 프로세서의 처리능력에 행해질 조정을 나타내는 복수의 매개변수 집합과 관련시킨다. 본 발명에 따른 소프트웨어 프로그램 실행 방법은 적어도 하나의 프로세서의 처리능력의 식별자를 취득하는 단계, 및 식별정보와 식별자를 이용하여 테이블에 접근하여 적어도 하나의 프로세서의 처리능력에 행해질 조정을 나타내는 매개변수 집합을 취득하는 단계, 및 매개변수를 이용하여 상기 적어도 하나의 프로세서의 처리능력을 조정하는 단계를 더 포함한다. The table associates identification information of each of the plurality of software programs with a plurality of parameter sets representing adjustments to be made to the processing capabilities of different processors. A software program execution method according to the present invention comprises the steps of obtaining an identifier of a processing capacity of at least one processor, and accessing a table using the identification information and the identifier to set a parameter indicating adjustment to be made to the processing capacity of the at least one processor. Acquiring a value, and adjusting a processing power of the at least one processor using a parameter.
테이블이 관리자 엔티티 내에서 이격되어 저장되는 경우, 소프트웨어 프로그램 실행방법은 통신채널을 이용하여 적어도 하나의 프로세서와 관리자 엔티티 사이의 링크를 확립하는 단계, 및 상기 통신채널을 통해 적어도 하나의 프로세서에서 관리자 엔티티로 식별정보를 송신하는 단계를 포함한다. 이때 관리자 엔티티는 식별정보와 식별자를 이용하여 테이블에 접근함으로써 적어도 하나의 프로세서의 처리능력에 행해질 조정을 나타내는 매개변수 집합을 취득한다.If the table is stored spaced apart in the manager entity, the software program execution method may include establishing a link between the at least one processor and the manager entity using a communication channel, and at the at least one processor through the communication channel the manager entity. Transmitting the identification information. At this time, the manager entity accesses the table using the identification information and the identifier to obtain a set of parameters representing adjustments to be made to the processing power of at least one processor.
바람직하게, 상기 적어도 하나의 프로세서는 (i) 프로세서 업무를 실행하는 복수의 하위처리장치와, (ii) 하위처리장치에 대한 관리처리업무를 실행하는 주처리장치와, (iii)주처리장치와 하위처리장치에 의해 접근가능한 주기억장치, 및 (iv) 주처리장치, 하위처리장치 및 주기억장치를 동작가능하게 접속시키는 데이터 버스를 포함한다. Preferably, the at least one processor comprises (i) a plurality of subprocessing units executing a processor task, (ii) a main processing unit executing a management processing task for the subprocessing apparatus, (iii) a main processing unit and A main memory device accessible by the sub-processing device, and (iv) a data bus for operatively connecting the main processing device, the sub-processing device and the main memory device.
본 발명에 따른 소프트웨어 프로그램 실행방법은 하위처리장치들 중 적어도 하나의 하위처리장치의 처리특성을 조정하고 그렇게 함으로써 소프트웨어 프로그램을 실행하는 단계, 및 적어도 하나의 다른 하위처리장치의 처리특성을 조정하지 않음으로써 고도의 처리능력을 가지며 다른 처리업무를 실행할 수 있는 단계를 더 포함한다. The software program execution method according to the present invention adjusts the processing characteristics of at least one of the subprocessing units and thereby executes the software program, and does not adjust the processing characteristics of the at least one other subprocessing unit. It further includes the step of having a high processing capacity and capable of executing other processing tasks.
조정단계는 상기 적어도 하나의 프로세서의 클록주파수를 변경하는 단계를 포함한다. 상세하게, 조정단계는 주처리장치, 하위처리장치, 및 데이터 버스 중 적어도 하나의 클록주파수를 나머지 장치의 클록주파수와 상이하게 조정하는 단계를 포함한다. The adjusting step includes changing a clock frequency of the at least one processor. In detail, the adjusting step includes adjusting a clock frequency of at least one of the main processing unit, the subprocessing unit, and the data bus differently from the clock frequency of the remaining apparatus.
조정단계는 상기 적어도 하나의 프로세서의 데이터 버스의 버스처리율을 변경하는 단계를 포함한다. 버스처리율의 변경은 주처리장치의 데이터 버스로의 접근을 제한함으로써 실현된다. The adjusting step includes changing a bus throughput of the data bus of the at least one processor. The change in bus throughput is realized by restricting access to the data bus of the main processing unit.
조정단계는 또한 데이터 버스의 비트수를 증감함으로써 데이터버스의 대역폭을 변경하는 단계를 포함한다. 예컨대, 데이터 버스의 비트수는 128비트, 64비트, 16비트, 및 8비트로 조정가능하다.The adjusting step also includes changing the bandwidth of the data bus by increasing or decreasing the number of bits of the data bus. For example, the number of bits of the data bus is adjustable to 128 bits, 64 bits, 16 bits, and 8 bits.
상기 적어도 하나의 프로세서의 국부기억장치는 데이터 캐시로 동작하며, 조정단계는 데이터 캐시의 캐시크기를 변경하는 단계를 포함한다. 예컨대, 적어도 하나의 하위처리장치의 캐시크기는 다른 하위처리장치의 캐시크기와 상이하게 조정가능하다. 조정단계는 데이터 캐시의 캐시구조를 변경하는 단계를 포함한다. 예컨대, 캐시 메모리의 웨이(way) 크기와 블록 크기 중 적어도 하나를 조정한다. 상기 적어도 하나의 프로세서의 캐시구조는 다른 프로세서의 캐시구조와 상이하게 조정가능하다. The local memory of the at least one processor operates as a data cache, and the step of adjusting includes changing the cache size of the data cache. For example, the cache size of at least one subprocessor may be adjusted differently than the cache size of another subprocessor. The adjusting step includes changing the cache structure of the data cache. For example, at least one of a way size and a block size of the cache memory is adjusted. The cache structure of the at least one processor is adjustable differently than the cache structure of other processors.
마찬가지로, 주기억장치는 상기 적어도 하나의 프로세서의 데이터 캐시로 동작하며, 조정단계는 데이터 캐시의 캐시크기를 변경하는 단계를 포함한다. 데이터 캐시의 캐시 구조는 처리능력을 조정하기 위하여 조작된다. 예컨대, 캐시 메모리의 웨이 크기와 블록크기 중 적어도 하나를 조정한다.Similarly, the main memory operates with a data cache of the at least one processor, and the adjusting includes changing the cache size of the data cache. The cache structure of the data cache is manipulated to adjust processing power. For example, at least one of a way size and a block size of the cache memory is adjusted.
조정단계는 소정의 명령의 명령페치시퀀스, 명령디코드시퀀스, 명령실행시퀀스 및 라이트백(write back)시퀀스 간의 지연시간을 요구함으로써 상기 적어도 하나의 프로세서의 명령대기시간을 조정하는 단계를 포함한다. 지연시간은 라이트백시퀀스와 다음 명령페치시퀀스 사이에 존재하는 것이 바람직하다.The adjusting step includes adjusting an instruction waiting time of the at least one processor by requesting a delay time between an instruction fetch sequence, an instruction decode sequence, an instruction execution sequence, and a write back sequence of a predetermined instruction. The delay is preferably between the writeback sequence and the next instruction fetch sequence.
조정단계는 소정의 명령의 명령페치시퀀스, 명령디코드시퀀스, 명령실행시퀀스, 라이트백시퀀스 간의 하나이상의 비동작 시퀀스를 입력함으로써 상기 적어도 하나의 프로세서의 명령처리율을 조정하는 단계를 포함한다. 비동작 시퀀스는 실행시퀀스와 라이트백시퀀스 사이에 존재하는 것이 바람직하다. The adjusting step includes adjusting an instruction processing rate of the at least one processor by inputting one or more inactive sequences between a command fetch sequence, a command decode sequence, an instruction execution sequence, and a writeback sequence of a predetermined instruction. The inactive sequence is preferably between the run sequence and the writeback sequence.
조정단계는 어드레스페치시퀀스, 어드레스디코드시퀀스, 데이터 읽기/기록 시퀀스 간의 지연시간을 요구함으로써 상기 적어도 하나의 프로세서의 처리능력을 조정하는 단계를 포함한다. 또한, 조정단계는 어드레스 페치 시퀀스, 어드레스 디코드 시퀀스, 데이터 읽기/기록 시퀀스 간의 하나이상의 비동작 시퀀스를 삽입 또는 삭제함으로써 상기 적어도 하나의 하위처리장치와 처리장치의 주기억장치의 메모리처리율을 조정하는 단계를 포함한다.The adjusting step includes adjusting the processing capability of the at least one processor by requiring a delay time between the address fetch sequence, the address decode sequence, and the data read / write sequence. The adjusting may include adjusting or adjusting the memory throughput of the at least one subprocessing unit and the main memory of the processing unit by inserting or deleting one or more non-operational sequences between the address fetch sequence, the address decode sequence, and the data read / write sequence. Include.
본 발명의 실시예에 따른 처리조정부는 적어도 하나의 프로세서를 포함하며, 처리시스템은 적어도 하나의 처리장치를 포함하고, 상기 처리장치는 프로세서 업무를 수행하는 복수의 하위처리장치와, 하위처리장치에 대한 관리처리업무를 수행하는 주처리장치와, 주처리장치와 하위처리장치에 의해 접근가능한 주기억장치, 및 주처리장치와 하위처리장치 및 주기억장치를 동작가능하게 접속시키는 데이터 버스를 구비한다. 바람직하게, 상기 적어도 하나의 프로세서 또는 주처리장치와 하위처리장치 중 적어도 하나는 (i)소프트웨어프로그램의 버전을 나타내는 식별정보를 취득하고, (ii) 적어도 하나의 프로세서 또는 주처리장치와 하위처리장치 중 적어도 하나의 처리능력을 소프트웨어 프로그램의 버전에 따라 조정해야 하는지 결정하고, (iii) 상기 단계에서 조정이 결정되면 처리능력을 조정한다.According to an embodiment of the present invention, a processing adjusting unit includes at least one processor, and a processing system includes at least one processing device, and the processing device includes a plurality of subprocessing devices that perform processor tasks, and a subprocessing device. And a main memory device which is accessible by the main processing device and the sub-processing device, and a data bus for operatively connecting the main processing device, the sub-processing device and the main memory device. Preferably, at least one of the at least one processor or the main processing unit and the subprocessing unit obtains (i) identification information indicating a version of the software program, and (ii) at least one processor or the main processing unit and the subprocessing unit Determine whether the processing capacity of at least one of the software programs should be adjusted according to the version of the software program, and (iii) adjust the processing power if the adjustment is determined in the above step.
상기 프로세서 또는 주처리장치와 하위처리장치 중 적어도 하나는 (i) 복수의 소프트웨어 프로그램 각각의 식별정보와 처리능력에 행해질 조정을 나타내는 하나이상의 매개변수를 관련시키는 테이블에 접근하고, (ii) 소정의 식별정보와 관련된 매개변수를 사용하여 처리능력을 조정한다.At least one of the processor or main processing unit and the subprocessing unit accesses (i) a table that associates identification information of each of the plurality of software programs with one or more parameters indicating adjustments to be made to the processing capability, and (ii) The processing power is adjusted using the parameters related to the identification information.
테이블은 상기 적어도 하나의 프로세서 또는 처리장치 내에 국부적으로 저장되거나, 이격배치된 관리자 엔티티 내에 저장되거나, 또는 이격 배치된 관리자 엔티티가 접근할 수 있는 위치에 저장되는 방법 중 적어도 하나의 방법으로 저장된다. 상기 적어도 하나의 프로세서 또는 처리장치는 통신채널을 이용하여 상기 적어도 하나의 프로세서와 관리자 엔티티 사이의 링크를 확립하고 상기 통신채널을 통해 관리자 엔티티로 식별정보를 송신한다. 관리자 엔티티는 테이블에 접근하여 상기 적어도 하나의 프로세서의 처리능력에 행해질 조정을 나타내는 하나이상의 매개변수를 취득한다. 또한, 상기 적어도 하나의 프로세서는 통신채널을 통해 관리자 엔티티로부터 매개변수를 취득하고 소정의 식별정보와 관련된 매개변수를 이용하여 처리능력을 조정한다. The table is stored in at least one of the methods stored locally in the at least one processor or processing device, stored in a spaced apart manager entity, or stored in a location accessible to spaced manager entities. The at least one processor or processing device establishes a link between the at least one processor and the manager entity using a communication channel and transmits identification information to the manager entity via the communication channel. The manager entity accesses a table to obtain one or more parameters representing adjustments to be made to the processing power of the at least one processor. In addition, the at least one processor obtains parameters from a manager entity over a communication channel and adjusts processing capacity using parameters associated with predetermined identification information.
테이블이 처리식별자를 연관시킬 때, 상기 적어도 하나의 프로세서 또는 주처리장치와 하위처리장치 중 적어도 하나는 (i) 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력의 식별자를 취득하고, (ii) 식별정보와 식별자를 이용하여 테이블에 접근함으로써 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력에 행해질 조정을 나타내는 매개변수 집합 중 하나를 취득하고, (iii) 상기 매개변수를 이용하여 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력을 조정한다.When a table associates a process identifier, at least one of the at least one processor or the main processor and the subprocessor acquires (i) an identifier of the processing capability of the at least one processor or processor, and (ii) identifies Accessing a table using information and identifiers to obtain one of a set of parameters indicative of adjustments to be made to the processing capability of the at least one processor or processing device, and (iii) using the parameters to determine the at least one processor or Adjust the processing capacity of the processing unit.
테이블이 이격 배치된 관리자 엔티티 내에 저장되는 경우, 상기 적어도 하나의 프로세서 또는 처리장치는 (i) 통신채널을 이용하여 상기 적어도 하나의 프로세서 또는 처리장치와 관리자 엔티티 사이의 링크를 확립하고, (ii) 상기 통신채널을 통해 식별정보와 식별자를 관리자 엔티티로 송신한다. 상기 적어도 하나의 프로세서 또는 처리장치는 통신채널을 통해 관리자 엔티티로부터 매개변수 집합을 취득하고 소정의 식별정보 및 식별자와 관련된 매개변수를 이용하여 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력을 조정한다.If the table is stored in a spaced apart manager entity, the at least one processor or processing device (i) establishes a link between the at least one processor or processing device and a manager entity using a communication channel, and (ii) The identification information and the identifier are transmitted to the manager entity through the communication channel. The at least one processor or processing device obtains a set of parameters from a manager entity over a communication channel and adjusts the processing capability of the at least one processor or processing device using parameters associated with predetermined identification information and identifiers.
상기 적어도 하나의 프로세서 또는 하위처리장치의 처리특성은 적어도 하나의 다른 프로세서 또는 처리장치의 처리특성을 조정하지 않은 채 조정된다. 예컨대, 클록주파수를 변경함으로써 상기 적어도 하나의 프로세서 또는 처리장치의 처리특성을 조정할 수 있다. 좀 더 상세하게 설명하면, 주처리장치, 하위처리장치 및 데이터 버스 중 적어도 하나의 클록 주파수를 다른 장치의 클록주파수와 상이하게 변경함으로써 적어도 하나의 프로세서 또는 처리장치의 처리특성을 조정할 수 있다.The processing characteristics of the at least one processor or subprocessor are adjusted without adjusting the processing characteristics of the at least one other processor or processing unit. For example, by changing the clock frequency it is possible to adjust the processing characteristics of the at least one processor or processing device. In more detail, the processing characteristics of the at least one processor or the processing apparatus can be adjusted by changing the clock frequency of at least one of the main processing unit, the subprocessor and the data bus differently from the clock frequency of the other apparatus.
상기 적어도 하나의 프로세서 또는 처리장치의 처리특성은 처리장치의 데이터 버스의 버스처리율을 변경함으로써 조정한다. 데이터 버스의 버스처리율은 (예컨대, 주처리장치에 의한) 데이터 버스로의 접근을 제한함으로써 변경가능하다.The processing characteristics of the at least one processor or processing device are adjusted by changing the bus throughput of the data bus of the processing device. The bus throughput of the data bus can be changed by restricting access to the data bus (eg, by the main processing unit).
상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은 데이터 버스의 비트수를 조정하여 상기 적어도 하나의 프로세서 또는 처리장치의 데이터버스의 대역폭을 변경함으로써 조정할 수 있다. 예컨대, 데이터 버스의 비트수는 128비트, 64비트, 16비트, 및 8비트로 조정가능하다.The processing capability of the at least one processor or processing device may be adjusted by adjusting the number of bits of the data bus to change the bandwidth of the data bus of the at least one processor or processing device. For example, the number of bits of the data bus is adjustable to 128 bits, 64 bits, 16 bits, and 8 bits.
상기 적어도 하나의 프로세서 또는 하위처리장치의 국부기억장치는 데이터캐시로 동작하며, 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은 데이터 캐시의 캐시 크기를 변경함으로써 조정가능하다. 또한, 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은 데이터 캐시의 캐시구조를 변경함으로써 조정가능하다. 예컨대, 적어도 하나의 하위처리장치의 캐시 메모리의 웨이(way) 크기와 블록 크기 중 적어도 하나를 조정한다. 바람직하게, 상기 적어도 하나의 프로세서 또는 상기 적어도 하나의 하위처리장치의 캐시구조는 다른 장치의 캐시구조와 상이하게 조정가능하다. The local storage of the at least one processor or subprocessor operates as a data cache, and the processing power of the at least one processor or the processor is adjustable by changing the cache size of the data cache. Further, the processing power of the at least one processor or processing device is adjustable by changing the cache structure of the data cache. For example, at least one of a way size and a block size of a cache memory of at least one subprocessor is adjusted. Advantageously, the cache structure of the at least one processor or the at least one subprocessor is adjustable differently than the cache structure of another device.
또는, 상기 적어도 하나의 프로세서 또는 처리장치의 주기억장치는 하나이상의 하위처리장치의 데이터 캐시로 동작하며, 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은 데이터 캐시의 캐시크기를 변경함으로써 조정가능하다. 또한, 상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은 데이터 캐시의 캐시구조를 변경함으로써 조정가능하다. 예컨대, 캐시 메모리의 웨이 크기와 블록크기 중 적어도 하나를 변경함으로써 처리능력을 조정한다.Alternatively, the main memory of the at least one processor or processing device operates as a data cache of one or more sub-processing devices, and the processing power of the at least one processor or processing device is adjustable by changing the cache size of the data cache. Further, the processing power of the at least one processor or processing device is adjustable by changing the cache structure of the data cache. For example, the processing capacity is adjusted by changing at least one of the way size and the block size of the cache memory.
상기 적어도 하나의 프로세서 또는 처리장치의 처리특성은, 상기 적어도 하나의 프로세서 또는 적어도 하나의 하위처리장치의 명령대기시간을 변경하여 조정할 수 있다. 명령대기시간의 변경은 소정의 명령의 명령페치시퀀스, 명령디코드시퀀스, 명령실행시퀀스 및 라이트백시퀀스 간의 지연시간을 요구함으로써 실현되는데, 지연시간은 라이트백시퀀스와 다음 명령페치시퀀스 사이에 존재하는 것이 바람직하다. 처리특성은 상기 적어도 하나의 프로세서 또는 상기 처리장치의 적어도 하나의 하위처리장치의 명령처리율을 변경하여 조정한다. 명령처리율의 변경은 소정의 명령의 명령페치시퀀스, 명령디코드시퀀스, 명령실행시퀀스, 라이트백시퀀스 간의 하나이상의 비동작 시퀀스를 삽입하거나 삭제함으로써 실현된다. 비동작 시퀀스는 실행시퀀스와 라이트백시퀀스 사이에 존재하는 것이 바람직하다. The processing characteristic of the at least one processor or processing device may be adjusted by changing the instruction waiting time of the at least one processor or the at least one subprocessing device. Changing the instruction wait time is realized by requiring a delay time between the instruction fetch sequence, instruction decode sequence, instruction execution sequence, and writeback sequence of a predetermined instruction. The delay time is between the writeback sequence and the next instruction fetch sequence. desirable. The processing characteristic is adjusted by changing the instruction processing rate of the at least one processor or at least one sub-processing device of the processing device. Changing the instruction processing rate is realized by inserting or deleting one or more non-operational sequences between a command fetch sequence, an instruction decode sequence, an instruction execution sequence, and a writeback sequence of a predetermined instruction. The inactive sequence is preferably between the run sequence and the writeback sequence.
상기 적어도 하나의 프로세서 또는 처리장치의 처리능력은, 상기 적어도 하나의 프로세서 또는 하위처리장치와 처리장치의 주기억장치 중 적어도 하나의 메모리 대기시간을 변경하여 조정할 수 있다. 메모리대기시간의 변경은 어드레스페치시퀀스, 어드레스디코드시퀀스, 데이터 읽기/기록 시퀀스 간의 지연시간을 요구함으로써 실현된다. 또한 처리특성은 상기 적어도 하나의 프로세서 또는 하위처리장치와 처리장치의 주기억장치 중 적어도 하나의 메모리처리율을 변경함으로써 조정할 수 있다. 메모리처리율의 변경은 어드레스 페치 시퀀스, 어드레스 디코드 시퀀스, 데이터 읽기/기록 시퀀스 간의 하나이상의 비동작 시퀀스를 삽입 또는 제거함으로써 실현된다.The processing capability of the at least one processor or processing device may be adjusted by changing the memory latency of at least one of the at least one processor or subprocessor and the main memory of the processing device. The change in the memory waiting time is realized by requiring a delay time between the address fetch sequence, the address decode sequence, and the data read / write sequence. The processing characteristics may also be adjusted by changing the memory throughput of at least one of the at least one processor or subprocessor and the main memory of the processor. The change in the memory throughput is realized by inserting or removing one or more inactive sequences between the address fetch sequence, the address decode sequence, and the data read / write sequence.
본 발명의 실시예에 따라, 상기 방법을 이용하여 처리장치를 작동시키는 프로그램은 기록매체에 기록된다. According to an embodiment of the present invention, a program for operating the processing apparatus using the method is recorded on the recording medium.
본 발명에 따른 신규한 컴퓨터 아키텍쳐에 따르면, 멀티프로세서 컴퓨터 시스템의 모든 프로세서들은 공통산술모듈(또는 셀)로부터 형성된다. 공통산술모듈은 공통의 구성을 가지며, 동일한 명령 집합구성을 이용한다. 멀티프로세서 컴퓨터 시스템은 하나 이상의 클라이언트, 서버, PC, 모바일 컴퓨터, 게임기계, PDA, 셋톱박스, 설비, 디지털TV, 컴퓨터 프로세서를 이용하는 기타장치들로 구성된다. According to the novel computer architecture according to the invention, all processors of a multiprocessor computer system are formed from a common arithmetic module (or cell). The common arithmetic module has a common structure and uses the same instruction set structure. A multiprocessor computer system consists of one or more clients, servers, PCs, mobile computers, gaming machines, PDAs, set-top boxes, equipment, digital TVs, and other devices that use computer processors.
복수의 컴퓨터 시스템은 네트워크 구성원이다. 일관성있는 모듈구조는 멀티프로세서 컴퓨터 시스템이 애플리케이션 및 데이터를 효과적이며 고속으로 처리할 수 있게 하며, 네트워크가 사용될 경우 네트워크를 통해 애플리케이션 및 데이터의 송신을 신속하게 한다. 또한 이러한 구조는 다양한 크기와 다양한 처리능력의 네트워크 구성원의 형성 및 네트워크 구성원들에 의해 처리되는 애플리케이션의 준비를 간소화한다.Multiple computer systems are network members. The coherent modular architecture enables multiprocessor computer systems to process applications and data efficiently and at high speeds and, when used, speeds up the transmission of applications and data over the network. This structure also simplifies the formation of network members of various sizes and various processing capabilities and the preparation of applications handled by the network members.
기본적인 처리모듈은 프로세서 요소(PE)이며, 프로세서요소는 처리장치(PU), 기억장치직접접근제어기(DMAC), 및 공통내부어드레스와 데이터 버스로 서로 접속하는 복수의 하위처리장치(SPU), 예컨대 4개의 하위처리장치를 포함한다. 처리장치와(PU) 하위처리장치(SPU)는 크로스-바 구조를 갖는 공유DRAM와 상호작용한다. 처리장치는 하위처리장치의 애플리케이션 및 데이터 처리를 관리감독하며, 하위처리장치는 이러한 처리를 병렬/독립적으로 수행한다. 기억장치직접접근제어기(DMAC)는 처리장치와 하위처리장치가 공유DRAM 내에 저장된 데이터 및 애플리케이션으로 접근하는 것을 제어한다. The basic processing module is a processor element (PE), which is a processing unit (PU), a storage direct access controller (DMAC), and a plurality of sub-processing units (SPUs) connected to each other via a common internal address and data bus, for example. Includes four subprocessors. Processing unit (PU) and sub-processing unit (SPU) interact with a shared DRAM having a cross-bar structure. The processing unit supervises the application and data processing of the subprocessing unit, and the subprocessing unit performs this processing in parallel / independently. A memory direct access controller (DMAC) controls the processing device and sub-processing device access to data and applications stored in the shared DRAM.
모듈구조에 있어서, 특정 컴퓨터 시스템에 사용되는 프로세서요소의 수량은 시스템에 필요한 처리능력에 따라 달라진다. 예컨대, 서버는 4개의 처리장치를 사용하며, 워크스테이션은 2개의 처리장치를 사용하고, PDA는 1개의 처리장치를 사용한다. 특정 소프트웨어 셀 처리에 할당된 하위처리장치의 수량은 셀 내부의 프로그램과 데이터의 복잡성, 크기에 따라 다르다. In a modular architecture, the number of processor elements used in a particular computer system depends on the processing power required by the system. For example, a server uses four processors, a workstation uses two processors, and a PDA uses one processor. The number of subprocessors allocated to processing a particular software cell depends on the complexity and size of the program and data within the cell.
복수의 처리장치는 공유DRAM에 접속되며, 공유DRAM은 복수의 섹션으로 분리되고, 각 섹션은 메모리뱅크로 분리된다. 공유DRAM의 각 섹션은 뱅크제어기에 의해 제어되며, 처리장치(PE)의 각 기억장치직접접근제어기(DMAC)는 공유DRAM에 접근한다.A plurality of processing devices are connected to the shared DRAM, where the shared DRAM is divided into a plurality of sections, and each section is separated into a memory bank. Each section of the shared DRAM is controlled by a bank controller, and each memory device direct access controller (DMAC) of the processing device PE accesses the shared DRAM.
본 발명에 따른 신규한 컴퓨터 구성은 네트워크를 통한 데이터 및 애플리케이션의 전송 및 네트워크 구성원들 간의 데이터 및 애플리케이션 처리를 제공하는 신규한 프로그래밍 모델을 사용한다. 이러한 프로그래밍 모델은 네트워크를 통해 전송되며 네트워크 구성원에 의해 처리되는 소프트웨어 셀을 사용한다. 각 소프트웨어 셀은 동일한 구조를 가지며 애플리케이션과 데이터를 모두 포함한다. 이러한 모듈식 컴퓨터 구성 덕분에 고속처리 및 전송으로 소프트웨어 셀의 고속 처리가 가능해진다. 바람직하게 애플리케이션용 코드는 동일한 공통명령세트 및 명령세트아키텍쳐에 기초한다. 각 소프트웨어 셀은 글로벌 식별명 및 셀 처리에 필요한 계산리소스의 양을 나타내는 정보를 포함한다. 계산 리소스는 모두 동일한 기본적 구조를 가지며 동일한 명령세트아키텍쳐를 사용하므로, 특정 리소스는 네트워크 상 임의의 장소에 배치될 수 있으며 동적으로 할당될 수 있다.The novel computer configuration in accordance with the present invention uses a novel programming model that provides for the transfer of data and applications over a network and the processing of data and applications between network members. This programming model uses software cells transmitted over the network and handled by the network members. Each software cell has the same structure and contains both applications and data. This modular computer configuration enables high speed processing of software cells with high speed processing and transmission. Preferably the code for the application is based on the same common instruction set and instruction set architecture. Each software cell contains a global distinguished name and information indicating the amount of computational resources required for cell processing. Computing resources all have the same basic structure and use the same instruction set architecture, so that specific resources can be placed anywhere on the network and dynamically allocated.
본 명세서와 첨부한 도면으로부터 본 발명의 다른 측면과 특징 및 장점들을 유추할 수 있음은 당업자에게 자명한 사실이다.It is apparent to those skilled in the art that other aspects, features, and advantages of the present invention can be derived from the specification and the accompanying drawings.
도면에 도시된 구조나 요소들은 예시를 위한 목적일 뿐, 본 발명의 특정 구조나 요소로 한정되지 않는다.The structures or elements shown in the drawings are for illustrative purposes only and are not limited to the specific structures or elements of the present invention.
도 1은 본 발명에 따른 단일 처리조정부 또는 멀티-처리조정부를 포함하는 소프트웨어 프로그램 및 프로세싱 시스템 설계의 발전과정을 나타내는 도면;1 illustrates the development of a software program and processing system design comprising a single process coordinator or multi-process coordinator in accordance with the present invention;
도 2a는 본 발명에 따른 프로세서 요소(PE)의 구조를 나타내는 도면;2a shows the structure of a processor element (PE) according to the invention;
도 2b는 본 발명에 따른 프로세서 요소의 멀티프로세싱 시스템의 구조를 나타내는 도면;2B illustrates the structure of a multiprocessing system of processor elements in accordance with the present invention;
도 3은 본 발명에 따른 하위처리장치의 구조를 나타내는 도면;3 shows the structure of a subprocessing apparatus according to the invention;
도 4는 본 발명에 따른 멀티-프로세서 시스템을 이용하는 구성의 다른 예를 나타내는 도면;4 illustrates another example of a configuration using a multi-processor system according to the present invention;
도 5는 처리능력을 조정하기 위하여 프로세싱 시스템에 의해 실행되는 공정단계를 나타내는 플로우챠트;5 is a flowchart showing process steps executed by a processing system to adjust processing capacity;
도 6은 본 발명에 따른 컴퓨터 네트워크의 전체구성을 나타내는 블록도;6 is a block diagram showing the overall configuration of a computer network according to the present invention;
도 7은 도 5와 관련된 공정을 나타내는 플로우챠트;7 is a flow chart illustrating a process associated with FIG. 5;
도 8은 본 발명에 따른 프로세서 요소에 의해 사용되는 변환테이블을 나타내는 도면;8 illustrates a conversion table used by a processor element in accordance with the present invention;
도 9는 본 발명에 따른 네트워크통신, 및 처리능력 변경이 가능한 프로세싱 시스템을 나타내는 도면;9 is a diagram showing a network system and a processing system capable of changing processing capacity according to the present invention;
도 10은 도 7과 관련된 공정을 나타내는 플로우챠트;10 is a flowchart illustrating a process associated with FIG. 7;
도 11은 소프트웨어 프로그램 또는 매개변수집합을 일인 이상의 사용자에게 배포하는 시스템을 나타내는 블록도;11 is a block diagram illustrating a system for distributing a software program or parameter set to one or more users;
도 12는 도 11의 시스템의 일부에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;FIG. 12 is a conceptual block diagram and flowchart illustrating a process performed by a portion of the system of FIG. 11; FIG.
도 13은 도 11의 시스템의 일부에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;FIG. 13 is a conceptual block diagram and flowchart illustrating a process performed by a portion of the system of FIG. 11; FIG.
도 14는 도 13에 도시된 공정단계를 나타내는 플로우챠트;14 is a flowchart showing the process steps shown in FIG. 13;
도 15는 도 11의 관리자서버(601)에 의해 실행되는 처리공정을 나타내는 플로우챠트;FIG. 15 is a flowchart showing processing performed by the
도 16은 데이터베이스 콘텐츠의 구성을 나타내는 블록도;16 is a block diagram showing the configuration of database contents;
도 17은 도 11의 시스템의 일부에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;FIG. 17 is a conceptual block diagram and flowchart illustrating processing steps performed by a portion of the system of FIG. 11; FIG.
도 18은 도 17에 따라 실행되는 처리공정을 나타내는 플로우챠트;18 is a flow chart showing a processing step performed according to FIG. 17;
도 19는 도 11의 클라이언트단말장치(604)에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;FIG. 19 is a conceptual block diagram and flowchart showing processing performed by the
도 20은 도 19에 따라 실행되는 단계를 나타내는 플로우챠트;20 is a flowchart showing the steps executed in accordance with FIG. 19;
도 21은 처리공정을 나타내는 플로우챠트;21 is a flowchart showing a processing step;
도 22는 도 21에 나타난 단계의 상세도;FIG. 22 is a detailed view of the steps shown in FIG. 21;
도 23은 처리공정의 다른 예를 나타내는 개념블록도 및 플로우챠트;23 is a conceptual block diagram and flowchart illustrating another example of the processing step;
도 24는 도 23의 단계를 상세하게 보여주는 플로우챠트;FIG. 24 is a flowchart showing the steps of FIG. 23 in detail; FIG.
도 25는 도 23의 다른 개념에 따른 처리공정을 나타내는 개념블록도 및 플로우 챠트;FIG. 25 is a conceptual block diagram and flowchart illustrating a processing process according to another concept of FIG. 23; FIG.
도 26은 도 25의 단계를 상세하게 보여주는 플로우챠트;FIG. 26 is a flowchart showing the steps of FIG. 25 in detail; FIG.
도 27은 소프트웨어 프로그램 또는 매개변수집합을 일인 이상의 사용자에게 배포하는 시스템의 다른 예를 나타내는 블록도;27 is a block diagram illustrating another example of a system for distributing a software program or a parameter set to one or more users;
도 28은 도 27의 시스템의 일부에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;28 is a conceptual block diagram and flowchart illustrating processing steps performed by a portion of the system of FIG. 27;
도 29는 도 27의 시스템의 일부에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;29 is a conceptual block diagram and flowchart illustrating processing steps performed by a portion of the system of FIG. 27;
도 30은 도 29에 따라 실행되는 처리공정을 나타내는 플로우챠트;30 is a flow chart showing a processing step performed according to FIG. 29;
도 31은 관리자서버와 클라이언트단말장치에 의해 실행되는 처리공정을 나타내는 개념블록도 및 플로우챠트;Fig. 31 is a conceptual block diagram and flowchart showing processing performed by the manager server and the client terminal device;
도 32는 도 31의 장치에 의해 실행되는 처리공정을 나타내는 플로우챠트;32 is a flowchart showing a processing step executed by the apparatus of FIG. 31;
도 33은 데이터베이스 콘텐츠의 구성을 나타내는 블록도;33 is a block diagram showing the configuration of database contents;
도 34는 도 27의 시스템 일부에 의해 실행되는 처리공정을 나타내는 개념블 록도 및 플로우 챠트;FIG. 34 is a conceptual block diagram and flow chart showing processing steps performed by a portion of the system of FIG. 27; FIG.
도 35는 도 24의 장치에 의해 실행되는 처리공정을 나타내는 플로우챠트;FIG. 35 is a flowchart showing processing performed by the apparatus of FIG. 24; FIG.
도 36은 데이터베이스 콘텐츠의 구성을 나타내는 블록도;36 is a block diagram showing the configuration of database contents;
도 37은 본 발명에 따른 처리능력을 변경하기 위하여 특정 클록주파수를 변경하는 프로세서 요소 시스템의 구성을 나타내는 블록도;FIG. 37 is a block diagram illustrating the configuration of a processor element system for changing a specific clock frequency to change processing capacity in accordance with the present invention. FIG.
도 38은 본 발명의 다른 실시예에 따른 처리능력을 변경하기 위하여 특정 클록주파수를 변경하는 프로세서 요소 시스템의 구성을 나타내는 블록도;FIG. 38 is a block diagram illustrating a configuration of a processor element system for changing a specific clock frequency to change processing capacity according to another embodiment of the present invention. FIG.
도 39는 도 12의 특정 클록회로요소의 다른 예를 나타내는 블록도;FIG. 39 is a block diagram illustrating another example of the specific clock circuit element of FIG. 12; FIG.
도 40은 본 발명의 실시예에 따른 처리능력을 변경하는 프로세싱 시스템의 다른 예를 보여주는 블록도;40 is a block diagram showing another example of a processing system for changing processing capacity according to an embodiment of the present invention;
도 41은 본 발명의 일 실시예에 따른 명령지연시간 및/또는 명령처리율의 조정가능한 특징을 나타내는 플로우챠트;FIG. 41 is a flowchart showing an adjustable feature of instruction delay time and / or instruction throughput in accordance with one embodiment of the present invention; FIG.
도 42는 본 발명의 다른 실시예에 따른 명령지연시간 및/또는 명령처리율의 조정가능한 특징을 나타내는 플로우챠트;42 is a flowchart showing adjustable features of instruction delay time and / or instruction throughput in accordance with another embodiment of the present invention;
도 43은 본 발명의 실시예에 따른 렌탈 프로그램 콘텐츠의 배포자로부터 프로그램 콘텐츠를 안전하게 배포하는 공정을 나타내는 플로우챠트;43 is a flowchart illustrating a process of securely distributing program content from a distributor of rental program content according to an embodiment of the present invention;
도 44는 도 43의 공정의 추가 단계를 나타내는 플로우챠트;44 is a flowchart showing further steps of the process of FIG. 43;
도 45는 도 44의 공정의 추가 단계를 나타내는 플로우챠트; 및45 is a flowchart showing further steps of the process of FIG. 44; And
도 46은 도 45의 공정의 추가 단계를 나타내는 플로우챠트이다.FIG. 46 is a flowchart illustrating additional steps of the process of FIG. 45.
도 1을 참조하면, 처리조정부(118)는 하기에 기술될 마이크로프로세싱 시스템을 이용하여 소프트웨어 프로그램을 실행한다. 디스플레이(120)와 오디오기능(미도시)은 사용자에게 멀티미디어를 제공한다. Referring to FIG. 1, the
소프트웨어 프로그램은, 소프트웨어 프로그램을 포함하고 있는 기록매체를 처리조정부(118)에 삽입하여 RAM으로 읽는 방식으로 처리조정부(118)에 저장된다. 또는 네트워크, 예컨대 인터넷(124)을 통해 다운로드하여 처리조정부(118)에 저장될 수 있다. 기록매체로는 광매체, 자기매체, 전자매체 등이 있다. The software program is stored in the
본 발명에 따른 처리조정부(118)는 강력한 멀티프로세싱시스템을 이용해야 처리특성이 향상된다. 바람직하게, 처리조정부(118)는 실행될 소프트웨어 프로그램의 버전에 따라 처리능력을 상향조정해야할지 하향조정해야 할지를 결정하고, 조정이 결정되면 그에 따라 처리능력을 조정한다. 하기에 처리조정부(118)의 내부구조에 대한 상세한 설명이 이어진다.The
도 2a를 참조하면, 기본적인 처리모듈로서 프로세서요소(PE)(200)는 I/O인터페이스(202), 처리장치(PU)(204), 기억장치직접접근제어기(DMAC)(206) 및 복수의 하위처리장치(SPU)(208) 즉, 제1하위처리장치(208A), 제2하위처리장치(208B), 제3하위처리장치(208C), 제4하위처리장치(208D)를 포함한다. 로컬(또는 내부)PE버스(212)는 처리장치(204), 하위처리장치(208), DMAC(206) 및 메모리 인터페이스(210) 사이로 데이터 및 애플리케이션을 송신한다. 로컬PE버스(212)는 종래 구조를 가지거나 또는 패킷 스위치 네트워크(packet switch network)에 실장된다. 패킷 스위치 네트워크로 실장하면 더 많은 하드웨어가 필요하지만 이용가능한 대역폭을 증가시킬 수 있는 장점이 있다. Referring to FIG. 2A, the processor element (PE) 200 as a basic processing module includes an I /
프로세서요소(200)는 디지털 논리회로를 이용하여 다양한 방법으로 형성된다. 바람직하게 프로세서요소(200)는 실리콘기판에 CMOS를 갖는 단일 IC칩으로 형성될 수 있다. 기판은 갈륨비소, 갈륨알루미늄비소 및 다양한 도판트를 이용한 III-B족화합물 등으로 형성된다. 프로세서요소(200)는 초전도물질, 예컨대 초고속단자속양자(RSFQ)논리회로를 이용하여 형성될 수 있다.The
프로세서요소(200)는 광대역메모리접속(216)을 통해 DRAM(214)과 밀접하게 접속한다. DRAM(214)은 프로세서요소(200)의 주(또는 공유)메모리 역할을 한다. DRAM(214)은 다이내믹 RAM을 말하는 것이지만, 다른 수단, 예컨대 SRAM, MRAM, 광메모리 또는 홀로그래픽 메모리로 대체가능하다. DRAM(214)은 프로세서요소(200)와 동일한 IC칩 안에 형성되거나 또는 별도의 외부메모리로 제공될 수 있다. DRAM(214)이 프로세서요소(200)와 동일한 IC칩 안에 형성될 경우, DRAM(214)은 칩 상의 다른 장소에 위치하거나 또는 프로세서요소를 구성하는 하나 이상의 프로세서와 일체화된다. DMAC(206) 및 메모리인터페이스(210)는 프로세서요소(200)의 DRAM(214), 하위처리장치(208), 처리장치(204) 간의 데이터 송신을 용이하게 한다. DMAC(206) 및/또는 메모리 인터페이스(210)는 하위처리장치(208) 및 처리장치(204)와 일체로 형성되거나 또는 하위처리장치(208) 및 처리장치(204)와 별도로 형성된다. 사실, 도시되어 있는 별도의 구성 대신 DMAC(206)기능 및/또는 메모리 인터페이스(210)기능은 하나 이상의 하위처리장치(208) 및 처리장치(204)와 일체로 형성될 수 있다.The
처리장치(204)는 데이터 및 애플리케이션을 자립적(stand-alone)으로 처리할 수 있는 표준 프로세서로서, 하위처리장치(208)의 데이터 및 애플리케이션의 처리를 관리, 감독한다. 프로세서요소(200)는 복수의 처리장치(204)를 포함할 수 있다. 각 처리장치(204)는 소정의 하위처리장치(208)그룹을 제어한다. 바람직하게 하위처리장치(208)는 단일명령복수데이터(SIMD) 프로세서이다. 처리장치(204)의 제어 하에 하위처리장치(208)는 데이터 및 애플리케이션을 병렬/독립적으로 처리한다. DMAC(206)은 처리장치(204)와 하위처리장치(208)가 공유DRAM(214)에 저장된 데이터 및 애플리케이션에 접근하는 것을 제어한다. 처리장치(204)는 주처리장치 역할을 하는 하나 이상의 하위처리장치(208)로 구성된다.The
복수의 프로세서요소(200)는 서로 접속하거나 패키지되어 처리능력을 향상시킬 수 있다. 이러한 구조를 광대역 엔진(BE)이라고 한다.The plurality of
도 2b를 참조하면, 복수의 프로세서요소(PE)(250), 즉 PE1, PE2, PE3, PE4가 하나의 칩 상에 존재한다. 프로세서요소(250)는 도 2a의 프로세서요소(200)처럼 처리장치 및/또는 하위처리장치와 같이 서브시스템을 포함할 수 있으나, 포함하지 않을 수도 있다. 복수의 프로세서요소(250)는 필요한 처리종류에 따라 동일한 형태이거나 또는 다른 형태일 수 있다. 예컨대, 하나 이상의 프로세서요소(250)는 일반적인 마이크로프로세서, 디지털 신호 프로세서, 그래픽 프로세서, 마이크로 콘트롤러 등일 수 있다. Referring to FIG. 2B, a plurality of processor elements (PEs) 250, that is, PE1, PE2, PE3, and PE4 are present on one chip.
바람직하게, 복수의 프로세서요소(250)는 공유버스(252)에 접속되고, 메모리 콘트롤러 또는 DMAC(256)는 메모리버스(254)를 통해 공유버스(252)에 접속된다. DMAC(256)은 메모리(258)와 연결된다. 입출력콘트롤러(262)는 입출력버스(260)를 통해 공유버스(252)에 접속된다. 입출력콘트롤러(262)는 하나 이상의 입출력장치(264), 예컨대 프레임 버퍼, 디스크 드라이브에 접속된다. 상기한 처리 모듈 및 아키텍쳐는 예시에 지나지 않으며 다양한 구조를 이용하여 본 발명의 다양한 특징을 구현할 수 있다. 예컨대, 본 발명은 2003년 2월 25일자 등록된 발명의 명칭이 '광역 네트워크용 컴퓨터 아키텍쳐의 메모리 보호시스템 및 방법'인 미국특허번호 제 6,526,491호와 2001년 3월 22일자 출원된 발명의 명칭이 '광역 네트워크용 컴퓨터 아키텍쳐 및 소프트웨어 셀'인 미국출원번호 제 09/816,004호에 개시된 형태의 마이크로프로세서 시스템에 한정되지 않는다. Preferably, the plurality of
도 3을 참조하면, 하위처리장치(208)는 국부기억장치(270), 리지스터(272), 하나 이상의 부동소수점유니트(274) 및 하나 이상의 정수유니트(276)를 포함한다. 부동소수점유니트(274) 및 정수유니트(276)의 수량은 필요한 처리능력에 따라 달라진다. 바람직하게, 국부기억장치(270)의 저장용량은 128킬로바이트이고 리지스터의 용량은 128*128비트이다. 부동소수점 유니트(274)는 32기가플롭스(GFLOPS) 즉, 초당 320억 번의 부동소수점 연산을 실행하며, 정수유니트(176)는 32곱스(GOPS) 즉, 초당 320억 번의 정수연산을 실행한다.Referring to FIG. 3, the
바람직하게, 국부기억장치(270)의 저장용량은 256킬로바이트이고 리지스터의 용량은 128*128비트이다. 이때, 공유메모리(214)를 이용하여 처리업무를 실행하지 않는다. 다만, 처리업무는 소정의 하위처리장치(208)의 국부기억장치(270)로 복제되어 국부적으로 실행된다.Preferably, the storage capacity of the local memory 270 is 256 kilobytes and the capacity of the register is 128 * 128 bits. At this time, the processing task is not executed using the shared
국부기억장치(270)는 캐시메모리일 수도 있고 아닐 수도 있다. 바람직하게, 국부기억장치(270)는 SRAM으로 구성된다. 처리장치(204)는, 처리장치(204)에 의해 개시된 직접 메모리 액서스(direct memory access)를 위해 캐시 일관성(cache coherency) 유지를 요구한다. 또는 하위처리장치(208)에 의해 개시된 직접 메모리 액서스 또는 외부 장치로/로부터의 액서스를 위해 캐시 일관성 유지가 요구되지 않기도 한다.The local memory 270 may or may not be cache memory. Preferably, local memory 270 is comprised of SRAM.
하위처리장치(208)는 애플리케이션 및 데이터를 송수신하는 버스(289)를 포함한다. 하위처리장치(208)는 또한 애플리케이션 및 데이터를 송신하는 버스인터페이스(I/F)(278)를 포함한다. 바람직하게, 버스인터페이스(I/F)(278)는 하위처리장치(208) 내에 일체로 형성된 DMAC(미도시)에 연결된다. 또는 DMAC(206)는 외부에 설치될 수 있다(도 3 참조). 버스인터페이스(278)와 국부기억장치(270) 사이에 일체로 형성된 DMAC(206)에는 한 쌍의 버스가 상호연결된다. 바람직하게 한 쌍의 버스의 폭은 256비트이며, 버스(289)의 폭은 1024비트이다.
하위처리장치(208)는 내부버스(281, 283, 285)를 포함한다. 버스(281)의 폭은 256비트이며 국부기억장치(270)와 리지스터(272) 간의 통신을 수행한다. 버스(283)는 리지스터(272)와 부동소수점유니트(274) 간의 통신을, 그리고 버스(285)는 리지스터(272)와 부동소수점유니트(276) 간의 통신을 수행한다. 바람직하게, 리지스터(272)부터 부동소수점유니트 또는 정수유니트까지의 버스(285, 283)의 폭은 384비트이며, 부동소수점유니트(274) 또는 정수유니트(276)로부터 리지스터(272)까지의 버스(285,283)의 폭은 128비트이다. 부동소수점유니트(274) 또는 정수유니 트(276)부터 리지스터(272)까지보다 리지스터(272)에서 부동소수점유니트(274) 또는 정수유니트(276)까지의 버스의 폭이 더 크므로 리지스터(272)로부터 더 많은 데이터 플로우를 수용할 수 있다. 각 계산별로 최대 3워드가 필요하다. 그러나 각 계산의 결과는 통상 1워드이다.
본 실시예에서는 프로세서요소(200)를 이용하여 실행되었지만 다른 단일 프로세서 또는 멀티프로세서 시스템을 사용할 수 있다. 그 예가 도 4에서 도시되어 있다. 도 4를 참조하면, 멀티프로세서시스템(300)은 버스(308)를 통해 메모리인터페이스(304)에 접속되는 복수의 프로세서(302)(사용수량은 임의임)를 포함한다. 메모리인터페이스(304)는 다른 버스(310)를 통해 공유메모리(306), 예컨대 DRAM과 통신한다. 메모리인터페이스(304)는 프로세서들(302)에 분산되고 필요한 경우 DMAC와 공동으로 동작한다. 프로세서(302)는 도 3의 구조와 동일하거나 하기에 기술될 기술 또는 공지된 다른 기술을 이용하여 형성될 수 있다. Although implemented using the
도 5를 참조하면, 처리능력을 조정하는 공정은 프로세서요소(도 2의 200)를 이용하여 처리조정부(118)의 적어도 일부에 의해 실시된다. 도 5의 처리단계들 (및 후속 단계들)은 프로세서요소(200)의 내부 또는 외부에 설치된 소프트웨어, 하드웨어 또는 그들의 조합에 의해 실시된다. 예컨대, 400단계에서 소프트웨어 프로그램은 기록매체에서 (소프트웨어를 실행하는 장치인) 처리조정부(118)의 RAM으로 판독된다. 프로세서요소(200)는 소프트웨어 실행 장치의 일부로서, 기록매체, 예컨대 광학기록매체(도 1의 122), 자기기록매체, 또는 전자기록매체로부터 소프트웨어 프로그램을 판독한다. 광학기록매체의 경우, 기록매체는 CD, DVD 또는 Blu-ray 디스 크(상표)이며, 읽기전용, 기록가능, 또는 재생가능 장치이다. 이러한 기능에 덧붙여 또는 다른 실시예에서, 처리조정부(118)는 인터넷(124) 등의 네트워크를 통해 소프트웨어 프로그램을 다운로드할 수 있다. Referring to FIG. 5, the process of adjusting the processing capacity is performed by at least a portion of the
402단계에서, 처리조정부(118)는 소프트웨어 프로그램의 버전을 나타내는 식별정보를 취득한다. 소프트웨어 프로그램이 기록매체로부터 판독될 때 식별정보는 광학기록매체(122) 상에 설정된 프로그램 ID이다. 또는 소프트웨어 프로그램은 파일헤더의 일부이거나 광학기록매체(122) 상에 동일하게 설정된 소프트프로그램 테이블 내부에 포함될 수 있다. 일반적으로, 사용자들은 광학기록매체(122)에서 처리조정부(188) 내에 있는 다른 기록매체, 예컨대 하드디스크드라이브, 전자기록매체 등으로 소프트프로그램을 복제한다. 소프트웨어 프로그램 ID를 취득하는 단계는 외부기록매체에서 소프트웨어 프로그램 ID를 취득하는 것과 반대로 처리조정부(118) 내의 내부기록매체에서 ID를 가져오는 단계를 포함한다. In
인터넷(124)을 통해 소프트웨어 프로그램을 다운로드할 경우, 식별정보는 프로그램ID, 사용자ID 등이다. 식별정보는 다운로드된 소프트웨어 프로그램의 내부, 예컨대 프로그램 테이블 또는 파일 헤더 내부에 포함된다. 또는 처리조정부(118) 내에 저장되거나 사용자에 의해 처리조정부나 다른 장치에 입력될 수 있다. When downloading a software program via the
400단계는 소프트웨어 프로그램이 처리조정부(118)의 내부기록매체, 예컨대, 하드디스크에 기록된 경우 402단계 전에 실시될 수 있지만 본 발명에 필수적인 단계는 아니다. 그러나 소프트웨어 프로그램을 다운로드하거나 판독하기 전에 사용자가 승인할 경우 400단계 전에 실행될 수 있다. Step 400 may be performed before
404단계에서, 처리조정부(118)의 처리능력을 상향조정해야할지 하향조정해야할지 결정한다. 예컨대, 처리조정부(118)의 처리능력이 소프트웨어 설계자가 개발 당시 고려한 능력을 상회하여 처리조정부(118)에 소프트웨어 프로그램을 실행할 경우 바람직하지 못한 결과를 낳을 것으로 예상되는 경우, 처리조정부(118)의 처리능력은 하향 조정되어야 한다. 처리조정부(118)는 소프트웨어 ID 또는 다른 식별정보를 이용하여 소프트웨어 프로그램의 버전 및/또는 소프트웨어 프로그램을 정상적으로 작동시키는데 필요한 처리능력의 표시를 결정한다. 처리조정부(118)는 소프트웨어 프로그램을 작동시키는데 필요한 처리능력과 실제 처리능력을 비교한다. 반면 처리조정부(118)의 처리능력이 소프트웨어 프로그램을 작동시키는데 필요한 능력에 미치지 못하여 바람직하지 못한 결과를 초래할 것으로 예상되는 경우, 404단계에서 처리능력 조정에 대한 결정은 취소되며 공정은 406단계로 진행된다. In
406단계에서 처리조정부(118)는 처리능력을 온전히 활용하여 소프트웨어 프로그램을 실행하거나 또는 적어도 처리능력을 감소시키는 절차를 밟지는 않을 것이다. 소프트웨어 프로그램을 실행한 후 공정은 종료된다.In
처리조정부(118)의 처리능력이 소프트웨어 프로그램을 실행시키는데 필요한 능력 이상이라면 404단계에서 처리능력의 조정이 결정되고 도 7의 A단계로 진행된다. 처리조정부(118)의 처리능력은 처리조정부(118)에 이용가능한 프로세서요소(200)의 수량에 따라 결정된다. 실제로, 하나 이상의 프로세서요소(200)가 처리조정부(118) 내에 포함되는 반면 하나 이상의 다른 프로세서 요소들은 처리조정부로부터 이격되어 위치한다. 도 6을 참조하면, 프로세서요소(200) 및/또는 (복수의 프로세서요소로 형성된) 광역엔진을 이용하여 컴퓨터시스템(500)의 전체 분산형 아키텍쳐(overall distributed architecture)를 형성한다. 시스템(500)은 복수의 컴퓨터 및/또는 컴퓨팅 디바이스와 연결된 네트워크(504)를 포함한다. 네트워크(504)는 구내정보통신망(LAN), 인터넷 같은 글로벌네트워크 또는 기타 컴퓨터 네트워크이다. 네트워크(504)(네트워크의 구성원)와 연결된 컴퓨터 및 컴퓨팅 디바이스로는 클라이언트 컴퓨터(506), 서버컴퓨터(508), 개인휴대용정보단말기(PDA)(510), 디지털 텔레비젼(DTV)(512) 및 유무선 컴퓨터 및 컴퓨팅 디바이스이다. 네트워크(504)의 구성원에 의해 사용되는 프로세서는 프로세서요소(200) 또는 기타 적절한 멀티프로세서 시스템으로 구성된다. If the processing capacity of the
시스템(500)의 서버(508)는 클라이언트(5060)보다 더 많은 데이터 및 애플리케이션을 처리하므로 클라이언트(506)보다 서버(508)가 더 많은 컴퓨팅 모듈, 예컨대 프로세서요소(200)를 포함한다. PDA(510)는 프로세싱을 거의 수행하지 않으므로 가장 적은 수량의 프로세서요소(200), 예컨대 하나의 프로세서요소(200)를 포함한다. DTV(512)는 클라이언트(5060)와 서버(508) 중간 정도의 프로세싱을 수행하므로 클라이언트(506)와 서버(508) 중간 정도 수량의 프로세서 요소를 포함한다.
따라서 도 5의 404단계에서 실행되는 처리조정부(118)의 처리능력 결정단계는 처리조정부(118)의 내,외부 프로세서요소(200)의 수량을 결정하는 단계를 수반한다. 도 6에 내부 및 외부에 존재하는 프로세서 요소(200)의 처리능력을 이용하는 분산형 시스템(500)이 도시되어 있다.Accordingly, the processing capability determining step of the
도 5에 도시된 처리단계의 설명으로 돌아가기에 앞서, 도 6의 분산형 시스 템(500)에 대해 상세하게 설명하겠다. 시스템(500)의 균일한 구성은 적합성, 처리속도 및 처리효율성 등을 향상시킨다. 시스템(500)의 각 요소들은 동일한 하나 이상의 컴퓨팅 모듈, 예컨대 프로세서 요소(200)를 이용하여 처리하므로 데이터 및/또는 애플리케이션의 처리를 실제로 행하는 특정한 컴퓨터 또는 컴퓨팅 디바이스가 중요하지 않다. 그 이유는 데이터 및/또는 애플리케이션의 처리가 네트워크의 구성원 사이에서 공유되기 때문이다. 시스템(500)에 의해 처리된 데이터 및 애플리케이션으로 이루어진 소프트웨어 셀을 식별함으로써, 어디서 처리되었는지 상관없이 처리를 요구하는 컴퓨터 또는 컴퓨팅 디바이스로 처리결과를 전송한다. 이러한 처리를 수행하는 모듈은 공통구조를 가지며 공통 명령세트아키텍쳐(ISA)를 사용하기 때문에, 프로세서 간의 호환성을 얻을 수 있는 소프트웨어의 추가 레이어에 대한 계산 부담을 피할 수 있다. 이러한 구성 및 프로그래밍 모듈 덕분에 멀티미디어, 애플리케이션의 실시간 실행에 필요한 처리 속도를 달성할 수 있다.Prior to returning to the description of the processing steps shown in FIG. 5, the distributed
시스템(500)에 의해 얻은 처리속도와 효율성의 장점을 활용하여, 시스템에 의해 처리된 데이터 및 애플리케이션은 소프트웨어 셀(502)로 패키지된다. 소프트웨어 셀(502)은 애플리케이션과 데이터를 포함하며, 고유하게 식별되며 균일하게 포맷된다. 또한 소프트웨어 셀(502)은 네트워크(504)와 시스템(500)에서 셀을 글로벌하게 식별하는 ID를 포함한다. 소프트웨어 셀의 균일한 구조와 네트워크에서의 소프트웨어 셀 식별로 네트워크(504) 상의 컴퓨터 또는 컴퓨팅 디바이스에서의 애플리케이션 및 데이터 처리를 용이하게 한다. 예컨대, 클라이언트(506)는 소프트웨어 셀(502)을 소정의 형식으로 생성하지만 클라이언트(506)의 제한된 처리능력으로 인해 소프트웨어 셀(502)을 서버(508)로 전송하여 처리한다. 따라서 소프트웨어 셀(502)은 네트워크(504) 상에서의 처리리소스를 기초로 네트워크(504) 곳곳을 이동한다. Taking advantage of the processing speed and efficiency gained by the
시스템(500)의 프로세서 및 소프트웨어 셀(502)의 균일한 구조 덕분에 기존의 이종 네트워크의 문제를 피할 수 있다. 명령세트를 이용하여 명령세트아키텍쳐 상에서 애플리케이션의 처리를 허가하려고 하는 불충분한 프로그래밍 모듈, 예컨대 JAVA(등록상표) 가상기계를 피할 수 있다. 따라서, 본 발명에 따른 시스템(500)은 종래의 네트워크보다 더욱 효율적, 효과적으로 광역처리를 실현한다.The uniform structure of the processor and
도 5로 돌아가서, 처리조정부(118)의 처리능력은 도 6의 외부장치의 처리능력을 사용할 경우 특히 중요하다. 때때로, 덜 복잡한 시스템을 실행하도록 설계된 소프트웨어 프로그램의 실행에 역효과를 가져올 수 있다. 따라서 404단계에서 처리조정부(118)의 처리능력이 소프트웨어 프로그램의 버전에 따라 조정되어야 한다고 결정되면 공정플로우는 도 7의 A단계로 이어져, 408단계에서 처리조정부의 처리능력을 변경하려는 시퀀스가 실행된다.Returning to FIG. 5, the processing capability of the
본 발명에 따른 처리능력의 조정예는 데이터 및 애플리케이션을 처리하도록 처리조정부에 의해 사용되는 하나 이상의 클록 주파수를 변경하는 것을 포함한다. 하위처리장치(도 2의 208)는 약 4GHz의 클록주파수에서 정상적으로 작동하며, 주파수가 상향 또는 하향 조정됨에 따라 하위처리장치(208)의 처리능력도 증가되거나 감소된다. 실제로, 소정의 단위시간 내에 실행되는 부동소수점연산수가 증가하거나 감소하면 소정의 단위시간 내에 실행되는 명령수도 증가하거나 감소한다. 프로세서 요소(200) 내에서 여러 관리조정기능을 실행하는 처리장치(204)는 클록주파수를 기초로 동작한다. 즉 클록주파수에 따라 그 기능성이 향상되거나 감소된다. 버스(212)도 또한 클록주파수에 따라 동작한다. 즉, 본 발명에 따라 클록주파수가 증가되거나 감소되면 전체적으로 처리조정부(118) 및 프로세서요소(200)의 처리능력도 향상되거나 감소된다.An example of adjusting the processing capacity according to the present invention includes changing one or more clock frequencies used by the processing adjusting unit to process data and applications. The
처리조정부의 다른 특성 및 매개변수는 국부기억장치(250)의 메모리맵 및/또는 공유 메모리(214), (처리장치(204)에 의한) 버스(212)의 버스사용율, 버스(212)의 대역폭(예컨대, 128비트, 64비트, 32비트 등)을 포함한다. 처리조정부(118)의 처리능력을 변경하도록 조정되는 매개변수는 국부기억장치(250) 및/또는 공유 메모리(214)의 캐시크기, 캐시구조, 처리조정부(118)의 처리장치(204)의 하나 이상의 하위처리장치(208)의 명령대기시간, 명령처리율, 국부기억장치(250) 및/또는 공유메모리(214)의 메모리대기시간, 및 메모리처리율을 포함한다.Other characteristics and parameters of the processing coordination unit may include the memory map of the
엔디안(endian)을 제어한다. 예컨대, 리틀엔디안(최후에 최하위의 바이트를 설정하는 것)에서 빅엔디안(최후에 최상위의 바이트를 설정하는 것)로 변환하거나 그 반대로 변환한다. 또 다른 매개변수는 명령타입에 관한 것으로, 예컨대, MIPS에서 파워PC로 또는 그 반대로 변환한다. 이러한 매개변수와 제어에 관한 상세한 설명은 하기에 이어질 것이다.Control endian For example, it converts from little endian (last setting byte) to big endian (last setting byte) and vice versa. Another parameter relates to the command type, for example converting MIPS to PowerPC or vice versa. A detailed description of these parameters and controls will follow.
처리조정부(118)의 처리능력 조정이 결정되면 처리조정부(118)의 어떤 매개변수를 얼만큼 조정해야 하는지에 관해 변환테이블을 참조하는 것이 바람직하다. 도 8을 참조하면, 일반적으로 변환테이블(550)은 식별정보(예컨대, 소프트웨어 프 로그램 ID)와 처리조정부의 처리능력에 행해질 조정을 나타내는 하나 이상의 매개변수를 관련시킨다. 식별정보는 수직열로 0010, 0020, 0030식으로 각각 번호가 매겨져 있으며 이는 소프트웨어 프로그램 ID와 같은 식별번호를 나타낸다. 하나 이상의 매개변수, P1-i, P2-i, P3-i, P4-i 등은 각각의 식별정보와 연관된다. 여기서 각 매개변수는 처리 조정부의 처리능력에 행해질 조정을 나타내며, i는 매개변수가 갖는 복수의 값 중 하나를 나타낸다.When the processing capacity adjustment of the
0040 식별정보는 처리조정부(1180)에서 실행되는 소프트웨어 프로그램의 해당 버전이며, 처리조정부(118)의 처리능력이 소프트웨어 개발 당시에 고려된 처리능력을 초과하는지 판단한다. 또한 처리조정부(118)의 처리능력이 너무 높아서, 주어진 소프트웨어 프로그램이 처리조정부(118)의 처리능력으로 실행할 경우 부적합한 결과가 나올지 판단한다. 따라서, 변환테이블(550)은 식별정보(0040)에 관련된 복수의 매개변수, 즉 P2-2, P3-1, P4-4.....PM-7를 포함한다. 각각의 매개변수는 처리조정부(118)의 처리능력의 상태, 또는 관련 소프트웨어 프로그램을 실행할 경우 바람직한 결과를 얻으려면 그러한 상태를 얼만큼 변경해야 하는지 조정량을 나타낸다. 0040 The identification information is a corresponding version of the software program executed in the processing adjusting unit 1180, and determines whether the processing capacity of the
매개변수 P2-2는 소프트웨어 프로그램을 실행하는데 사용되는 하나 또는 복수의 하위처리장치(208)의 클록주파수를 나타낸다. 매개변수 P2-2는 프로세서 요소(200)의 다른 부분, 예컨대 처리장치(204), 버스(212)의 클록주파수를 나타내기도 한다. 소정의 매개변수, 예컨대 P2-2의 실제값은 처리조정부(118)의 처리능력, 예컨대 실제 클록주파수와 직,간접적으로 클록주파수의 변화량만큼 관련이 있다. 이외에도 다른 간접적인 관계를 고려할 수 있음은 당업자에게 자명한 사실이다. 예컨대, 매개변수 P3-1는 관련 소프트웨어 프로그램이 실행될 때 바람직한 결과를 얻을 수 있도록 조정되어야 하는 처리조정부(118)의 처리능력의 다른 상태를 나타낸다. 매개변수 P2-2, P3-1, P4-4...PM-7는 처리능력을 조정하도록 처리조정부(118)에 의해 사용되어 관련 소프트웨어 프로그램(예컨대 0040)을 실행하는 소정의 플랫폼(platform)을 실현한다. The parameter P2-2 represents the clock frequency of one or
본 발명의 실시예에 따른 변환테이블(550)은 소정의 식별정보의 일 요소와 매개변수 집합을 연관시키는 다른 차원을 포함한다. 변환테이블(550)은 복수의 처리식별자 C001, C002...C00X가 배치되는 해당차원(556)을 포함한다. 각 처리식별자는 매개변수의 상위 집합, 즉 차원(556) 내 소정의 유니트에 포함된 복수의 매개변수집합과 관련된다. 따라서, 수직렬(552)에 위치한 소프트웨어 프로그램 식별자는 각각 차원을 따라 위치한 처리식별자와 관련된다. 마찬가지로, 소정의 식별자, 예컨대, 식별자 0040를 위해 복수의 매개변수집합은 각각 처리식별자들 C001, C002...C00X와 관련된다.The conversion table 550 according to an embodiment of the present invention includes another dimension for associating an element of a predetermined identification with a parameter set. The conversion table 550 includes a
도 8에 도시된 바와 같이, 식별자 0040과 관련된 매개변수들 P2-2, P3-1, P4-4....PM-7은 처리식별자 C0010와 관련된다. 즉 매개변수 집합을 식별자0040 및 처리식별자 C001, C002...C00X와 관련시켜 식별자0040에 관련되어 존재하는 매개변수집합을 상이하게 한다. 이러한 배열은 매개변수의 특정값 설정에 있어서 자유도를 향상시킨다. 특히, 소프트웨어 프로그램의 버전이 다른 처리능력을 가진 처리조정부에서 실행될 경우, 예컨대 도 6의 시스템(500)과 같은 경우는 효과적이다.As shown in Fig. 8, the parameters P2-2, P3-1, P4-4 .... PM-7 related to the
도 7로 돌아가서, 410단계에서, 변환테이블(550)이 처리조정부(118) 내에 국부적으로 저장되거나 또는 처리조정부(118)로부터 이격 배치될 경우, 예컨대 (도 6의 네트워크(504)와 동일한) 네트워크(124) 상의 노드(node) 등에 리모트(remote)하게 배치되는지 결정한다. 변환테이블(550)은 하나 이상의 국부기억장치(도 3의 250) 및/또는 하나 이상의 프로세서요소(200) 내의 공유 메모리(도 2의 214) 내에 저장된다. 변환테이블이 국부적으로 저장될 경우 이격 배치된 변환테이블에 접근하는데 필요한 시간과 노력을 피할 수 있다. 한편, 변환테이블(550)의 내용이 정확하고 최신인지 보증하기 위하여, 변환테이블(550)을 관리자 엔티티에 의해 유지/관리될 수 있는 장소에 저장하는 것이 유리하다. Returning to FIG. 7, in
도 9를 참조하면, 처리시스템(380)은 (바람직하게는 모니터(120)를 포함하는) 처리조정부(118)를 구비하며, 처리조정부(118)는 인터넷(124) 등의 네트워크에 동작가능하게 접속된다. 관리자엔티티 역할을 하는 관리자(382) 또한 인터넷(124)에 접속된다. 바람직하게 관리자(382)는 데이터베이스(386) 및 또는 네트워크에 접속가능한 데이터베이스서버(384)를 포함한다. 데이터베이스(386)는 데이터베이스서버(384)와 동일한 장소에 설치되거나 또는 다른 네트워크 접속을 통해 서버에 리모트하게 접속된다. 도시되지 않았지만, (서로 다른 처리능력을 가진) 복수의 처리조정부는 인터넷(124)에 접속되며 관리자(382)에 의해 제공된 서비스를 이용한다. Referring to FIG. 9, the
변환테이블(550)이 하나이상의 처리조정부(118)에 국부적으로 저장되지 않을 경우 또는 변환테이블의 버전이 국부적으로 저장되는 경우, 변환테이블(550)의 버전은 정확하고 최신의 상태로 관리자(382)의 데이터베이스(386) 내에 저장되는 것 이 바람직하다. 다시 도 7로 돌아가서, 변환테이블(550)이 국부적으로 저장되지 않을 경우 처리공정은 412단계로 진행된다. 412단계에서 처리조정부(118)는 인터넷(124)을 통해 관리자 엔티티(382)와 통신링크를 확립한다. 인터넷(124)이 바람직한 링크를 제공하는 동안 임의의 공지된 통신 기술을 사용하여 본 발명의 정신을 벗어나지 않는 범위 내에서 링크를 확립한다. 관리자(32)와의 통신링크를 확립하는 동작의 일부에서 처리조정부(118)의 인증처리 또는 사용자의 인증처리를 포함할 수 있다. 실제로 관리자에게 대금을 지불할 의사가 없는 사용자는 관리자가 제공하는 서비스를 꼭 받을 필요없다. 따라서, 인증처리는 공지된 기술에 의해 처리조정부(118)에서 관리자(382)로 정보를 송신할 뿐만 아니라 정보를 관리하는 동작을 포함한다. 정보는 사용자 이름 및/또는 비밀번호, 회원번호, 소프트웨어 제품일련번호, 구입증명서 등을 포함한다. If the conversion table 550 is not stored locally in the one or more
일단 처리조정부(118)와 관리자(382)간의 통신 링크가 확립되면, 414단계로 진행된다. 414단계에서, 소프트웨어 프로그램에 관한, 예컨대 소프트웨어 프로그램 ID와 같은 식별정보가 인터넷(124)을 통해 처리조정부(118)에서 관리자(382)로 송신된다. 필수적이지 않지만, 변환테이블(550)은 인터넷(124)을 통해 처리조정부(118)에서 관리자(382)로 처리식별자, 예컨대 플레이어 ID 또는 처리능력 표시기를 송신하는 것을 표시하는 차원(dimension)(556)을 포함하는 것이 바람직하다.Once the communication link between the
바람직하게, 관리자(382)는 서버(384)를 사용하여 입력데이터를 처리하고 변환테이블(550)에 접근한다(416단계). 특히, 서버(384)는 소프트웨어 프로그램 실행시 원하는 결과를 얻기 위하여 식별정보(및 필요하다면 처리식별자)를 사용함으로 써 처리조정부(118)의 처리능력을 조정하는 매개변수집합을 취득한다. 그리고 서버(384)는 매개변수를 적절한 형태로 패키지한 후 그를 인터넷(124)을 통해 처리조정부(118)로 송신한다. 처리공정은 노드 B로 이어진다. 그에 관한 상세한 설명은 도 10을 참조한다.Preferably,
418단계에서, 처리조정부(118)는 (매개변수가 국부적으로 저장된 버전을 기초로 취득되었는지 또는 관리자 엔티티로부터 취득되었는지 상관없이) 변환테이블(550)로부터 취득한 매개변수를 이용하여 처리능력을 변경하는 처리를 진행한다. 처리조정부(118)가 작동시스템 또는 기타 시스템레벨 제어프로그램의 제어 하에 있다고 가정하면, 처리조정부(118)의 처리능력을 변경하는 단계가 행해지는 프로그램에 매개변수를 제공하는 것이 바람직하다. 한편, 모든 하드웨어 어프로치 및/또는 소프트웨어와 하드웨어 조합의 어프로치가 채용된다면, 매개변수는 적절한 목표지점, 예컨대 기억 위치, 리지스터 등에 전송되는 것이 바람직하다. 420단계에서, 처리조정부(118)는 제공된 매개변수에 따라 자신의 처리특성을 변경하는 것이 바람직하다.In
프로세서 요소(200)의 종류가 광범위할 경우 처리조정부(118)의 처리특성을 변경하기 위하여 채용되는 어프로치 역시 여러 가지이며, 그에 관한 예가 하기에 상술된다. 처리특성의 변경이 정상적으로 행해진 경우, 처리공정은 변경된 처리특성에 따라 소프트웨어 프로그램을 실행하는 422단계로 진행된다. 처리조정부(118)가 소프트웨어 프로그램 개발 당시에 고려되었던 처리능력과 일치하는 경우, 소프트웨어 프로그램의 실행에서 오류를 피할 수 있다. When the types of the
도 11을 참조하면, 시스템(610)은 처리조정부(118)가 프로그램 콘텐츠, 예컨대 소프트웨어 프로그램 및/또는 상기한 매개변수 집합을 안전한 방식으로 다운로드하도록 허용하므로 프로그램 콘텐츠의 비인가복제물을 방지하며 사용할 수 없게 만든다. 그러한 시스템에 관하여 발명의 명칭이 '프로그램 콘텐츠의 안전한 분배 방법 및 장치'인 미국 특허출원번호 제 10/316,675호(2002년 12월 11일 출원)에 개시되어 있다.Referring to FIG. 11,
시스템(610)은 관리자서버(601), 제3자서버(602), 암호화서버(603), 처리조정부(118)의 복수의 클라이언트 단말장치(604), 및 인터넷 등의 네트워크(605)를 포함한다. 시스템(610)은 복수의 관리자서버(601), 복수의 제3자서버(602), 및 복수의 암호화서버(603)를 포함한다. 간략명료한 설명을 위해서 복수개의 서버들 중 하나씩만 예를 들어 설명하겠다.The
서버들(601,602,603)은 각각 엔티티(entity) 또는 사람에 의해 유지, 관리 및/또는 그에 관련된다. 하기에 서버와 엔티티의 상호관계에 대한 설명이 이어진다.
관리자서버(601), 예컨대 상기한 데이터베이스(386)와 같은 고객데이터베이스(606)에 접속된 서버(384)는 바람직하게 관리기능을 실행하는 엔티티에 의해 유지, 관리 및/또는 그에 관련된다. 관리자서버(601) 및 고객데이터베이스(606)는 네트워크서버기능 및 데이터베이스 기능을 실행하는데 적절한 공지의 하드웨어를 이용하여 실장된다. An
제3자서버(602)는 관리자서버의 관리자 엔티티, 예컨대 소프트웨어 프로그램 의 개발자와는 다른 엔티티에 의해 유지, 관리 및/또는 그에 관련된다. 제3자서버(602)는 컴퓨터 애플리케이션, 컴퓨터 시스템 프로그램의 개발자일 수 있으며 처리조정부(118)에 의해 사용되는 매개변수집합을 제공하여 처리능력을 조정한다. 그러나 제3자서버(602)에 관련된 엔티티가 관리자서버(601)의 엔티티와 상이할 필요는 없으며 실제로 동일한 엔티티일 수 있다. 예컨대 제3자서버(602)에 의해 실행되는 기능이 관리자서버(601)에 의해 실행될 수 있다. 제3자서버(602)는 서버관련기능을 실행하는 임의의 공지된 하드웨어를 이용하여 실장된다. The
암호화서버(603)는 관리자서버(601)의 엔티티와 동일한 엔티티에 의해 유지관리 및/또는 그에 관련된다. 예컨대, 암호화서버(603)는 관리자(382) 내의 서버(384)와 동일한 장소에 설치된다. 그러나 암호화서버(603)는 다른 엔티티에 관련될 수도 있다. 암호화서버(603)는 서버관련기능을 실행하는 임의의 공지된 하드웨어를 이용하여 실장된다. 관리자서버(601), 제3자서버(602) 및 암호화서버(603)에 의해 실행되는 각각의 기능은, 하나 이상의 서버 및/또는 상기 서버들을 유지, 관리 및/또는 그에 관련되는 하나 이상의 엔티티 사이에 분산된다. The
일반적으로, 클라이언트단말장치(604)는 디스크드라이브 하드웨어와 같은 임의의 공지된 하드디스크드라이브(607) 및 SONY 메모리스틱 같은 메모리카드와 결합가능하다. 클라이언트단말장치는 광학디스크장치, 예컨대 CD드라이브, DVD드라이브 Blu-ray디스크 드라이브와 결합가능하다. 하드디스크드라이브(607), 메모리카드(608) 및/또는 (클라이언트 단말장치(604)에 제거가능한) 광학장치는 클라이언트단말장치(604)와 별도로 도시되어 있지만, 일체로 형성될 수 있다. 클라이언트단말 장치(604)는 임의의 공지된 하드웨어, 예컨대 PC, 출원인의 플레이스테이션 등을 사용하여 실장된다. In general, the
바람직하게, 클라이언트단말장치(604)는 하나 이상의 처리조정부(118)를 포함하며, 네트워크(605)를 통해 소스암호화 프로그램 또는 소스암호화 매개변수집합을 다운로드함으로써 취득한다. 소스암호화 프로그램 또는 소스암호화 매개변수집합은 확인된 임의의 관리자 엔티티로부터 취득되는 반면, 클라이언트단말장치(604)는 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수프로그램을 (네트워크(605)를 통해 다운로드함으로써) 제3자서버(602) 또는 관리자서버(603)로부터 얻는 것이 바람직하다.Preferably, the
최종사용자는 소스암호화된 형식의 컴퓨터 프로그램 및/또는 매개변수집합을 취득한다. 복호화키는 인가된 클라이언트단말장치(604)에 의해서만 취득된다. 그리고, 복호화키를 취득하여 소스암호화 프로그램을 복호화한 다음, 컴퓨터 프로그램 및/또는 매개변수집합을 사용하여 클라이언트단말장치(604) 내의 처리조정부의 처리능력을 조정하는 프로그램을 실행한다.The end user acquires a computer program and / or parameter set in source encrypted form. The decryption key is obtained only by the authorized
도 12를 참조하면, 암호화서버(603) 및 제3자서버(602)에 실행되는 공정으로, 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합 생성방법의 일예를 보여주고 있다. 제3자서버(602)는 소프트웨어개발자에 관련된다. 소프트웨어 개발자는 홀로 또는 다른 엔티티와 병용하여 프로그램 및/또는 매개변수집합을 취득한다. 제3자서버(602)는 적어도 하나의 프로그램, 예컨대 시스템 프로그램 또는 애플리케이션 및/또는 적어도 하나의 매개변수집합을 포함한다. 이러한 하나 이상의 프 로그램 또는 매개변수집합은 네트워크(605)를 통해 암호화서버(603)로 송신된다.Referring to FIG. 12, an example of a method of generating a source encryption computer program or a source encryption parameter set in a process executed in an
암호화서버(603)는 프로그램 또는 매개변수집합을 암호화하며 암화된 프로그램 또는 암호화된 매개변수집합을 제3자서버(602)로 송신한다. 암호화공정은 임의의 공지된 암호화기술, 예컨대 공개열쇠암호방식, 대칭형암호방식 등을 이용하여 암호화된 소프트웨어 프로그램 또는 매개변수집합을 생성한다. 암호화서버(603)는 제3자서버(602)에 복호화키를 제공한다. 복호화키는 암호화된 소프트웨어 프로그램 또는 매개변수집합을 복호화할 수 있다. 제3자서버(602)는 네트워크를 통한 전자 통신으로 암호화된 프로그램 또는 암호화된 매개변수집합을 클라이언트단말장치(604)로 다운로드함으로써 배포한다. 소스암호화된 프로그램 또는 소스암호화된 매개변수집합의 배포에 상관없이, 최종사용자는 등록 처리를 실행한 다음, 프로그램을 실행하거나 매개변수집합을 이용하여 처리능력을 조정할 수 있다.The
도 13을 참조하면, 소스암호화된 컴퓨터프로그램 및/또는 소스암호화된 매개변수집합을 처리하기 위하여 실행되는 공정단계이다. 클라이언트단말장치(604)는 네트워크(605)를 통해 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 다운로드함으로써 취득한다. 소스암호화 컴퓨터프로그램을 실행하거나 또는 소스암호화 매개변수집합을 사용하기 위하여, 클라이언트단말장치(604)는 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 네트워크(605)를 통해 관리자서버(601)에 등록해야 한다.Referring to FIG. 13, a process step executed to process a source encrypted computer program and / or a source encrypted parameter set. The
도 14를 참조하면, 등록 처리의 일부 단계가 나타난다. S20단계에서, 클라이언트단말장치(604)는 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 취득 및 저장한다. S22단계에서, 사용자는 컴퓨터프로그램의 설치 및 실행준비 지시 또는 매개변수집합의 사용지시를 내린다. 이때 클라이언트단말장치(604)는 사용자의 설치지시에 응답하여 호출된 컴퓨터프로그램을 포함한다. 이 프로그램은 사용자에게 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 등록하도록 하며 통신기능을 호출한다(S24).Referring to Fig. 14, some steps of registration processing are shown. In step S20, the
바람직하게, 클라이언트단말장치(604)는 네트워크(605)를 통해 통신을 제공하는 네트워크인터페이스를 포함한다. 이를 위하여 임의의 공지된 네트워크인터페이스 하드웨어를 사용한다. S26단계에서, 클라이언트단말장치(604)에 의해 통신채널이 개시되며 클라이언트단말장치(604)와 관리자서버(601) 사이에 확립된다. 클라이언트단말장치(604)의 네트워크인터페이스는 클라이언트단말장치(604)와 관련된 식별정보를 네트워크(605)를 통해 관리자서버(601)로 송신하는 것을 용이하게 한다. 특히, 식별정보는 클라이언트단말장치에 고유한 기기ID, 예컨대 플레이어 ID를 포함한다. 식별정보는 또한 매체ID를 포함하며, 매체ID는 소스암호화 컴퓨터프로그램을 저장하는 클라이언트단말장치(604)에 의해 사용되는 메모리타입을 표시한다.Preferably, the
클라이언트단말장치(604)는 하기에 설명될 다른 정보와 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 기록하는 제1기록디바이스, 예컨대 하드디스크드라이브(607), 메모리카드(608) 등, 및 기기ID를 기록하는 제2기록디바이스, 예컨대 ROM을 포함한다. 클라이언트단말장치(604)의 네트워크인터페이스는 (ROM으로부터 취득된) 기기ID를 네트워크(605)를 통해 관리자서버(601)로 송신한다(S28단계). 매체ID는 또한 클라이언트단말장치(604)에서 관리자서버(601)로 송신된다.The
도 15를 참조하면, 관리자서버(601)는 네트워크(605)를 통해 클라이언트단말장치(604)로부터 식별정보, 예컨대 기기ID(및 가능하면 매체ID)를 취득한다(S30). 이때 관리자서버(601)는 네트워크(605)와의 통신을 용이하게 하는 네트워크인터페이스를 포함하므로, 네트워크(605)를 통해 클라이언트단말장치(604)로부터 식별정보를 취득할 수 있다. S32단계에서, 관리자서버(601)는 클라이언트단말장치(604)로부터 취득한 기기ID에 대응하는 또 다른 ID, 예컨대 가상ID를 할당한다. 가상ID는 복수의 선재(先在)하는 ID로부터 선택되는 것이 바람직하다. 가상ID는 기기ID 또는 피연산함수에서 행해지는 수식연산으로부터 도출되거나 또는 임의의 공지된 또는 후술될 개량된 기술을 이용하여 생성될 수 있다.Referring to Fig. 15, the
S34단계에서, 관리자서버(601)는 클라이언트단말장치(604)로부터 취득된 기기ID(예컨대, 제2기록디바이스(ROM) 내에 저장된 기기ID)와 일치하는 기존의 기기ID를 찾기 위하여 고객데이터베이스(606)를 탐색한다. 도 16을 참조하면, 고객데이터베이스(606)는 등록정보를 저장하며, 등록정보는 각각 클라이언트단말장치(604)에 대응한다. 클라이언트단말장치(604)의 식별정보 중 일부는 적어도 등록정보, 예컨대 기기ID에 포함된다. 도 16에 도시된 바와 같이, 복수의 기기ID는 고객데이터베이스(606)에 미리 저장되어 있다. 기기ID는 각각 클라이언트단말장치(604)에 대응하며 각각의 클라이언트단말장치(604)에 고유하다. 관리자서버(601)는 네트워크(605)를 통해 클라이언트단말장치(604)로부터 취득된 기기ID와 일치하는 등록정보(예컨대, 기기ID)를 찾기 위해 고객데이터베이스(606)를 탐색하는 데이터프로세서를 포함한다. 이를 위하여 데이터 처리용 하드웨어를 사용한다. In step S34, the
도 15로 돌아가, S36단계에서 가상ID는 고객데이터베이스(606) 내에 저장된 기기ID와 관련된다. 즉, 가상ID는 관리자서버(601)로 기기ID를 송신하는 특정 클라이언트단말장치(604)에 관련된다. 이러한 상관관계는 저장된 기기ID에 대응되는 방법으로 가상ID를 고객데이터베이스(606) 내에 기록함으로써 실현된다. Returning to FIG. 15, in step S36, the virtual ID is associated with the device ID stored in the
상기한 바와 같이, 클라이언트단말장치(604)에서 관리자서버(601)로 네트워크(605)를 통한 식별정보의 송신동작(도 14의 28)은 매체ID(또는 미디어ID)의 송신동작을 포함한다. 매체ID는 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 저장하는 클라이언트단말장치(604)에 의해 사용되는 기록디바이스의 타입에 대응된다. 예컨대, 매체ID는 클라이언트단말장치(604)가 하드디스크드라이브(607) 내부, 메모리카드(608) 내부, 또는 기타 기록매체 내부에 소스암호화된 컴퓨터 프로그램 또는 소스암호화된 매개변수집합을 저장한 사실을 표시한다. 매체ID 취득을 수신한 후, 관리자서버(601)는 가상ID를 기록된 기기ID 및 취득된 매체ID와 연관시킨다. 따라서, 매체ID는 고객데이터베이스(606) 내에 상기 기록된 기기ID에 대응하는 장소에 기록된다. As described above, the operation of transmitting identification information (28 in FIG. 14) from the
도 17 및 18을 참조하면, 관리자서버(601)는 암호화된 복호화키 및 암호화된 가상ID를 생산한다. 복호화키는 클라이언트단말장치(604) 상의 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 복호화하는데 사용된다. 관리자서버(601)는 암호화서버(603)에 의해 생성된 소스암호화 컴퓨터프로그램을 복호화하는데 사용되는 임의의 수의 복호화키에 접근할 수 있다 (도11-12). 복호화키는 암호화서버(603) 및/또는 제3자서버(602)에 의해 관리자서버(601)로 제공된다. 복호 화키는 네트워크(605) 또는 다른 네트워크를 통해 관리자서버(601)로 송신되거나 기록매체를 통해 수동으로 제공될 수 있다.17 and 18, the
S40단계에서, 관리자서버(601)는 클라이언트단말장치(604)에 관련된 가상ID를 이용하여 복호화키를 암호화한다. 또한 관리자서버(601)는 클라이언트단말장치(604)에 관련된 기기ID를 이용하여 가상ID를 암호화한다. 기기ID는 각각 고객데이터베이스(606)로부터 취득된다(S42).In step S40, the
관리자서버(601)의 네트워크인터페이스는 네트워크(605)를 통하여 암호화된 복호화키 및 암호화된 가상ID를 클라이언트단말장치(601)로 송신하는 것을 용이하게 한다(S44). S46단계에서, 클라이언트단말장치(604)는 네트워크(605)를 통해 암호화된 복호화키 및 암호화된 가상ID를 취득하고 암호화된 복호화키 및 암호화된 가상ID를 제1기록디바이스(예컨대, 하드디스크드라이브(607), 메모리카드(608) 등) 내에 저장한다. The network interface of the
암호화된 복호화키는 인가된 클라이언트단말장치, 예컨대 유효한 기기ID를 제공하고 복호화키를 암호용 가상ID와 관련된 기기ID를 등록한 클라이언트 단말장치로만 제공된다. 또한, 암호화된 복호화키의 임의의 방해, 예컨대 네트워크를 통한 저작권 침해행위 또는 비인가복제는 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 복호화하는데 필요한 정보(예컨대, 유효한 복호화키)를 제공하지 못한다. 사실, 그러한 복호화키는 해당 가상ID로 암호화된다. 유사하게, 등록처리가 완료되고 클라이언트단말장치(604)가 인가된 후에만, 암호화된 가상ID는 클라이언트단말장치(604)로 제공된다. 가상ID는 관리자서버(601)에서 클라이언트단말장 치(604)로 암호화된 방식(예컨대, 클라이언트단말장치(604)의 기기ID를 이용한 암호화)으로 송신되므로, 암호화된 가상ID의 비인가취득은 암호화된 복호화키를 복호화하는데 필요한 정보를 생산하지 못한다. The encrypted decryption key is provided only to an authorized client terminal device, for example, a client terminal device that provides a valid device ID and registers the decryption key with the device ID associated with the cryptographic virtual ID. In addition, any tampering with an encrypted decryption key, such as piracy or unauthorized copying over a network, does not provide the information (eg, a valid decryption key) necessary to decrypt the source encryption computer program or the source encryption parameter set. In fact, such a decryption key is encrypted with that virtual ID. Similarly, the encrypted virtual ID is provided to the
도 19 및 20을 참조하면, 클라이언트단말장치(604) 내의 소스암호화 컴퓨터 프로그램 및/또는 소스암호화 매개변수집합을 로딩/설치하기 위한 공정이 실행된다. 도 19에서 클라이언트단말장치(604)와 제1기록디바이스, 예컨대 하드디스크드라이브(607), 메모리카드(608) 등이 별개로 도시되어 있지만, 모든 구성요소들은 일체로 형성되거나 또는 일부만 일체로 형성될 수 있다. 이 단계에서, 클라이언트단말장치(604)는 제2기록디바이스, 예컨대 ROM에 기록된 기기ID를 포함하고, 제1기록디바이스(608)는 기기ID, 암호화된 가상ID, 암호화된 복호화키, 및 소스암호화된 컴퓨터프로그램을 포함한다.19 and 20, a process for loading / installing a source encryption computer program and / or a source encryption parameter set in the
S50단계에서, 사용자는 클라이언트단말장치(604)에 소스암호화 컴퓨터프로그램을 로딩/설치하도록 지시하거나 소스암호화 매개변수집합을 이용하여 처리능력을 조정하도록 지시한다. 이러한 지시에 응하여, 클라이언트단말장치(604)는 적절한 하드웨어와 소프트웨어 프로세스를 이용하여 제 1기록디바이스(607)의 기기ID 및 제 2기록디바이스, 예컨대 ROM의 기기ID를 판독한다(S52단계). S54단계에서, 기기ID가 일치하는지 결정한다. 일치하지 않을 경우, 처리공정이 종료되거나 및/또는 다른 처리공정이 개시된다. 일치할 경우, 기기ID (바람직하게는 ROM에 기억된 기기ID)를 이용하여 암호화된 가상ID를 복호화하는 S56단계를 진행한다. 가상ID가 생성되면, 암호화된 복호화키는 가상ID를 이용하여 복호화된다(S58단계). 다음, 소스암 호화 컴퓨터프로그램 또는 소스암호화 매개변수집합은 복호화키를 이용하여 복호화된다 (S60). S62단계에서, 컴퓨터프로그램 또는 매개변수집합은 S56단계에서 취득된 가상ID를 이용하여 재암호화될 수 있으므로 클라이언트 암호화된 컴퓨터프로그램 또는 클라이언트 암호화된 매개변수 집합을 얻을 수 있다. 클라이언트 암호화된 컴퓨터프로그램 또는 클라이언트암호화된 매개변수집합은 제 1기록디바이스(607,608) 내에 저장된다(S64단계). 이때 암호화된 복호화키, 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합은 제1기록디바이스(607,608) 내에 저장될 필요가 없다. In step S50, the user instructs the
클라이언트단말장치(604)는 상기한 암호화기능 및 복호화기능을 실행하기 위하여 복호화디바이스 및 암호화디바이스를 포함한다. 복호화디바이스 및 암호화디바이스는 일체로 형성될 수 있으며 혹은 간결하게 복호화디바이스로 언급될 수 있다. 본 발명에 따라 암호화 및 복호화 기능을 실행하는 임의의 공지된 또는 후술될 개량된 하드웨어 및/또는 소프트웨어가 사용될 수 있다. 예컨대, 복호화라이브러리, 암호화라이브러리 등이 사용될 수 있다.The
비인가 최종사용자는 다른 클라이언트단말장치(604)에서 비인가복제물을 실행할 수 없으므로 클라이언트 암호화된 컴퓨터프로그램 및/또는 클라이언트암호화된 매개변수집합은 안전하다고 할 수 있다. 실제로, 클라이언트 암호화된 컴퓨터프로그램 및/또는 클라이언트 암호화된 매개변수집합은 우선 복호화되어야 한다. 클라이언트암호화된 컴퓨터프로그램 및/또는 클라이언트암호화된 매개변수집합은 관리자서버(601)에 컴퓨터 프로그램을 등록시킨 클라이언트 단말장치 이외의 다른 클 라이언트 단말장치(604)에서는 실행될 수 없다.Since an unauthorized end user cannot execute an unauthorized copy on another
도 21 및 22를 참조하면, 컴퓨터 프로그램이 클라이언트 단말장치(604)에 의해 실행되는 공정에 관한 것이다. 이때 클라이언트 단말장치(604)는 제2기록디바이스, 예컨대 기기ID를 포함하는 ROM과 기기ID, 암호화된 가상ID 및 클라이언트암호화된 컴퓨터 프로그램을 포함하는 제1기록디바이스(607,608)를 포함한다.21 and 22, a process in which a computer program is executed by the
S70단계에서, 사용자는 클라이언트단말장치(604)에 컴퓨터 프로그램을 실행하도록 지시한다. 적절한 컴퓨터 프로그램의 통제 하에 작동되는 클라이언트단말장치는 그 지시에 응하여 제1기록디바이스(607,608)의 기기ID 및 제2기록디바이스(ROM)의 기기ID를 판독한다(S72). S74단계에서, 기기ID가 상호 일치하는지 결정한다. 일치할 경우, 클라이언트단말장치(604)의 복호화디바이스가 기기ID (바람직하게 ROM 내에 기억된 기기ID)를 이용하여 암호화된 가상ID를 복호화하는 S76단계를 진행한다. S78단계에서, 클라이언트단말장치(604)의 복호화디바이스는 S76단계에서 취득된 가상ID를 이용하여 클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트 암호화된 매개변수집합을 복호화한다. 이때 클라이언트 단말장치(604)는 RAM에 존재하는 컴퓨터 프로그램을 실행하거나 처리조정부의 처리능력을 조정한다.In step S70, the user instructs the
클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트암호화된 매개변수집합은 클라이언트 암호화된 컴퓨터 프로그램 또는 클라이언트 암호화된 매개변수집합을 복호화하는데 사용되는 가상ID와 관련된 클라이언트단말장치(604)를 이용해야만 복호화될 수 있다. 따라서, 클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트 암호화된 매개변수집합의 비인가복제물이 비인가 최종사용자에게 제공될 경우, 비 인가 최종 사용자가 컴퓨터 프로그램을 실행하려고 하거나 매개변수집합을 사용하려고 하는 장치는 클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트 암호화된 매개변수 집합을 복호화할 수 없다. 제1기록디바이스(607,608)가 비인가 최종사용자에게 제공될 경우(예컨대, 제1기록디바이스가 다른 클라이언트 단말장치(604)에 접속된 경우), ROM에 기억된 임의의 기기ID가 제1기록디바이스(607,608)에 포함된 기기ID와 일치하지 않으므로 암호화된 가상ID는 복호화될 수 없다. 따라서, 클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트암호화된 매개변수집합은 복호화될 수 없다. 컴퓨터 프로그램 또는 클라이언트암호화된 매개변수집합의 안전한 배포 덕분에 비인가복제물의 사용이 불가능하며 특정 클라이언트단말장치만이 컴퓨터 프로그램을 실행 및/또는 처리능력을 조정할 수 있다.The client encrypted computer program or client encrypted parameter set can only be decrypted using the
복호화키가 네트워크(605)를 통해 클라이언트단말장치(604)로 제공되는 실시예를 보여주고 있지만, 기록매체(예컨대, CD-ROM 등)를 통해 수동으로 제공될 수도 있다. 그에 관한 내용은 도 23 및 24를 참조하여 설명하겠다. 도 23에 도시된 바와 같이, 클라이언트 단말장치(604)는 기록매체(069A)를 통해 암호화된 제1복호화키를 취득한다. 제1복호화키는 클라이언트 단말장치(604)상의 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 복호화하는데 사용된다. 관리자서버(601)는 암호화된 제2복호화키 및 암호화된 가상ID를 생성한다. 제2복호화키는 암호화된 제1복호화키를 복호화하는데 사용된다. 관리자서버(601)는 임의의 수의 제2복호화키에 접근하여 제2복호화키를 이용하여 암호화된 제1복호화키를 복호화한다. 제2복호화키는 암호화서버(603) 및/또는 제3자서버(602)에 의해 관리자서버(601)에 제공된 다. 제2복호화키는 네트워크(605)를 통해 관리자 서버(601)로 송신되거나 기록매체를 통해 수동으로 제공된다.Although an embodiment in which the decryption key is provided to the
S40A단계에서, 관리자서버(601)는 클라이언트단말장치(604)와 관련된 가상ID를 이용하여 제2복호화키를 암호화한다. 관리자서버(601)는 클라이언트단말장치(604)와 관련된 기기ID를 이용하여 가상ID를 암호화하며, 기기ID는 각각 고객데이터베이스(606)로부터 취득된다 (S42단계). 관리자 서버(601)의 네트워크인터페이스는 네트워크(605)를 통해 암호화된 제2복호화키 및 암호화된 가상ID를 클라이언트단말장치(604)로 송신하는 것을 용이하게 한다(S44A단계). S46A단계에서, 클라이언트단말장치(604)는 네트워크(605)를 통해 암호화된 제2복호화키 및 암호화된 가상ID를 취득하고 암호화된 제2복호화키 및 암호화된 가상ID를 제1기록디바이스(예컨대, 하드디스크드라이브(607), 메모리카드(608)등) 내에 저장한다.In step S40A, the
암호화된 제2복호화키는 인가된 클라이언트단말장치, 예컨대 유효기기ID를 제공하며 제2복호화키를 암호화하는데 사용되는 가상ID와 관련된 기기ID를 등록시키는 클라이언트단말장치(604)로만 제공된다. 암호화된 제2복호화키의 임의의 방해, 예컨대 네트워크의 저작권 침해행위 또는 비인가복제는 암호화된 제1복호화키를 복호화하는데 필요한 정보(예컨대 유효한 제2복호화키)를 제공할 수 없다. 사실 제2복호화키는 고유한 가상ID로 암호화된다. 유사하게, 암호화된 가상ID는 등록처리가 완료되어 클라이언트단말장치(604)가 인가된 후에만, 클라이언트단말장치(604)로 제공된다. 이와 같이, 가상ID가 관리자서버(601)에서 클라이언트단말장치(604)로 암호화방식(예컨대, 클라이언트단말장치(604)의 기기ID를 사용한 암호 화)으로 송신되므로 암호화된 가상ID의 비인가취득은 암호화된 제2복호화키를 복호화하는데 필요한 정보를 생산할 수 없다.The encrypted second decryption key is provided only to the
도 25 및 26을 참조하면, 클라이언트단말장치(604) 내의 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 로딩/설치하는 공정이 진행된다. 도 25에 도시된 바와 같이, 클라이언트단말장치(604)는 제2기록디바이스(ROM)에 기록된 기기ID를 포함하며 제1기록디바이스(607,608)는 기기ID, 암호화된 가상ID, 암호화된 제2복호화키, 암호화된 제1복호화키, 소스암호화 컴퓨터 프로그램 및/또는 소스암호화된 매개변수집합을 포함한다. 25 and 26, a process of loading / installing a source encryption computer program or a source encryption parameter set in the
S50단계에서, 사용자는 장차 사용될 소스암호화 컴퓨터 프로그램 및/또는 소스암호화 매개변수집합을 로딩/설치하도록 클라이언트단말장치(604)에 지시한다. 이에 응하여, 클라이언트단말장치(604)는 적절한 하드웨어 및 소프트웨어를 사용하여 제1기록디바이스(607,608)의 기기ID 및 제2기록디바이스, 예컨대 ROM의 기기ID를 판독한다(S52단계). S54단계에서 이러한 기기ID가 일치하는지 결정한다. 일치하지 않을 경우, 처리 종료 및/또는 다른 처리를 개시한다. 일치할 경우, 기기ID(바람직하게 ROM에 기록된 기기ID)를 이용하여 암호화된 가상ID를 복호화하는 S56단계를 진행한다. 가상ID가 생성되면 가상ID를 이용하여 암호화된 제2복호화키를 복호화하며 제2복호화키를 이용하여 암호화된 제1복호화키를 복호화한다(S58A단계). 다음, 제1복호화키를 이용하여 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 복호화한다(S60A). S62단계에서, 컴퓨터 프로그램 또는 매개변수집합은 S65단계에서 얻어진 가상ID를 이용하여 재암호화되어 클라이언트암호화된 컴퓨터 프로그램을 생성한다. 클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트암호화된 매개변수집합은 제1기록디바이스(607,608) 내에 저장된다(S64단계). 이때 암호화된 제1복호화키, 암호화된 제2복호화키, 소스암호화 컴퓨터 프로그램 또는 소스암호화된 매개변수집합은 제1기록디바이스(607,608)에 저장될 필요가 없다.In step S50, the user instructs the
클라이언트암호화된 컴퓨터 프로그램 또는 클라이언트암호화된 매개변수집합이 생성되어 제1기록디바이스(607,608)에 저장되면, 도 21및 22에 나타난 공정으로 컴퓨터 프로그램을 실행한다.Once the client encrypted computer program or client encrypted parameter set is generated and stored in the
도 27을 참조하면, 처리조정부(118)가 컴퓨터 프로그램 또는 매개변수집합을 안전한 방식으로 다운로드할 수 있는 시스템의 다른 예를 보여주고 있다. 안전한 방식으로 다운로드함으로써 비인가 프로그램의 복제물을 방지할 수 있으며 사용할 수 없게 만든다. 그러한 시스템은 발명의 명칭이'콘텐츠의 안전한 배포 방법 및 장치'인 미국출원번호 제10/316,309(2002년 12월 1일 출원)에 개시되어 있다.Referring to FIG. 27, there is shown another example of a system in which the
바람직하게, 시스템(710)은 제3자서버(701), 암호화서버(702), 배포서버(703), 관리자서버(704), 처리조정부(118) 등의 복수의 클라이언트단말장치(705), 및 인터넷 등의 네트워크(706)를 포함한다. 시스템(710)은 복수의 제3자서버(701), 복수의 암호화서버(702), 복수의 배포서버(703) 및/또는 복수의 관리자서버(704)를 포함한다. 간단명료한 설명을 위해, 각각의 서버에서 하나씩만을 예로 들어 설명하겠다. 제3자서버(701), 암호화서버(702), 배포서버(703) 및 관리자서버(704)는 엔티티 또는 사람에 의해 유지, 관리 및/또는 그에 관련된다. 서버와 엔티티 간의 상호관계에 대한 설명은 하기에 이어진다.Preferably, the
제3자서버(701)는 도 11의 소프트프로그램 개발자 같은 엔티티에 의해 유지, 관리 및/또는 그에 관련된다. The
암호화서버(702)는 관리자 권한의 기능을 가진 엔티티에 의해 유지, 관리 및/또는 그에 관련된다. 엔티티는 관리자서버(704)와 관련된 엔티티와 동일한 것이 바람직하나, 상이할 수 있다. 암호화서버(702)는 서버와 관련된 기능을 실행하는 임의의 공지된 하드웨어를 이용할 수 있다.The
배포서버(703)는 네트워크(706)를 통해 소프트웨어 프로그램 또는 매개변수 집합을 클라이언트단말장치(705)로 배포하는 엔티티에 의해 유지, 관리 및/또는 그에 관련된다. 배포서버(703)는 고객데이터베이스(707), 예컨대 하기에 설명될 데이터베이스(386)에 접속된다. 배포서버(703) 및 고객 데이터베이스(707)는 네트워크서버기능 및 데이터베이스기능을 실행하는데 적절한 공지된 하드웨어를 이용하여 실장된다.The
관리자서버(704), 예컨대 서버(384)는 관리자 권한의 기능을 실행하는 엔티티에 의해 유지관리 및/또는 그에 관련된다. 관리자서버(704)는 네트워크서버기능 및 데이터베이스기능을 실행하는데 적절한 공지된 하드웨어를 이용하여 실장된다.
제3자서버(701), 암호화서버(702), 배포서버(703) 및 관리자서버(704)에 의해 실행되는 기능들은 각 서버들을 유지, 관리 및/또는 그에 관련된 하나 이상의 서버 및/또는 하나 이상의 엔티티에 분산된다. 실제로는, 서버마다 각각의 엔티티가 필요하지 않다. 예컨대 암호화서버(703)와 관리자서버(704)는 하나의 엔티티에 의해 유지, 관리될 수 있다. 그런 경우라 하더라도, 분산은 도27에 도시된 분산과 동일하다.The functions executed by the
일반적으로 클라이언트단말장치(705)는 하나 이상의 처리조정부(118)를 포함하며 하드디스크드라이브(708) 등의 임의의 공지된 하드디스크드라이브 하드웨어 및 소니메모리스틱 등의 메모리카드와 동작가능하게 접속한다. 또는, 클라이언트단말장치는 광학디바이스, 예컨대 CD드라이브, DVD드라이브, 또는 Blu-ray디스크 드라이브와 접속한다. 하드디스크드라이브(708), 메모리카드(709) 및/또는 (클라이언트단말장치(705)에 탈부착가능하게 접속된) 광학디바이스가 클라이언트단말장치(705)에 별개로 도시되어 있지만 클라이언트단말장치(705) 내에 일체로 형성될 수도 있다. 클라이언트단말장치(705)는 임의의 공지된 하드웨어, 예컨대 PC, 본 출원인의 플레이스테이션 등을 사용하여 실장된다.Generally, the
클라이언트단말당치(705)는 도 11의 클라이언트단말장치(705)에 설명된 방식으로 네트워크(706)를 통해 다운로드하여 소스암호화 프로그램 및/또는 소스암호화 매개변수집합을 취득한다. The
도 28을 참조하면, 암호화서버(702) 및 제3자서버(701)에 의해 실행되는 공정으로 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합이 생성되는 방법의 일예가 도시되어 있다. 본 실시예에서 제3자서버(701)는 소프트웨어 개발자와 관련된다. 소프트웨어 개발자는 본인 또는 다른 엔티티와 병용하여 네트워크(706)를 통해 암호화서버(702)로 송신되는 컴퓨터 프로그램 또는 매개변수집합을 취득한다. 컴퓨터 프로그램 또는 매개변수집합은 기록매체를 통해 수동으로 암호화서버(702)에 제공될 수도 있다.Referring to FIG. 28, an example of how a source encryption computer program or a source encryption parameter set is generated by a process executed by the
암호화서버(702)는 프로그램 및/또는 매개변수 집합을 암호화하며 암호화된 프로그램 또는 암호화된 매개변수집합을 제3자서버(701)로 보낸다. 암호화처리는 종래의 암호화기술, 예컨대 공개열쇠암호방식, 대칭형암호방식 등을 이용하여 암호화된 프로그램 또는 암호화된 매개변수 집합을 생성한다. 예컨대, 암호화서버(702)는 암호화된 시스템프로그램, 소스암호화 시스템 프로그램이나 암호화된 애플리케이션(소스암호화 애플리케이션)을 돌려보내거나 또는 소스암호화된 매개변수집합을 제3자서버(701)로 돌려보낸다. 암호화서버(702)는 암호화된 프로그램이나 암호화된 매개변수집합을 복호화할 수 있는 복호화키를 제3자서버(701)로 제공한다. 바람직하게, 복호화키는 비활성상태, 예컨대 소스암호화 컴퓨터 프로그램이나 소스암호화 매개변수 집합을 복호화하는데 사용되지 않는 방식으로 배포서버(703)로 제공된다. 예컨대, 최초에 복호화키는 비활성화상태에서 암호화서버(702)와 같은 엔티티에 의해 암호화된다.The
도 29를 참조하면, 배포서버(703) 및 관리자서버(704) 사이에 실행되는 공정단계를 진행한다. 배포서버(703)는 네트워크(706)를 통해 관리자서버(704)와의 통신링크를 확립한다. 관리자서버(704)는 키배포프로그램(711), 키관리데이터(12) 및 키등록프로그램(713)을 네트워크(706)를 통해 배포서버(713)로 송신한다. 배포서버(703)는 키배포프로그램(711)을 실행하여 최종사용자에게 복호화키를 배포한다. 키관리데이터는 배포서버(703)에 고유한 배포ID를 포함하는 정보를 안전하게 수집한다. 비활성복호화키를 활성복호화키, 예컨대 소스암호화 컴퓨터 프로그램을 복호화할 수 있는 키로 변환하기 위하여 키등록프로그램(713)이 배포서버(703)에 의해 실행된다. Referring to FIG. 29, a process step executed between the
도 30을 참조하면, 배포서버(703)와 관리자서버(704) 사이에 실행되는 공정단계를 진행한다. 일반적으로 배포서버(703)는 네트워크(706)를 통해 관리자서버(704)에 활성화요청을 하고 그에 대한 응답으로 관리자서버(704)로부터 활성허가정보를 취득한다. S1단계에서, 배포서버(703)는 네트워크(706)를 통해 관리자서버(704)에 접속된다. S2단계에서 배포서버(703)는 (내부에 배포ID를 포함하는) 키관리데이터를 관리자서버(704)로 송신한다.Referring to FIG. 30, a process step executed between the
S3단계에서, 관리자서버(704)는 적절한 인증처리를 거쳐 배포서버(703)를 확인한다. 예컨대, 관리자서버(704)는 인증을 위하여 배포서버(703)로 하여금 사용자ID, 비밀번호 또는 증명할 수 있는 정보 등의 제공을 요청한다. 그러나, 배포서버(703)를 인증하기 위하여 관리자서버(704)는 키관리데이터(712)로부터 배포ID를 추출하는 것이 바람직하다. S4단계에서, 인증의 성공여부를 결정한다. 인증이 실패하면 활성처리가 허가되지 않고 공정이 종료되는 S5단계로 진행된다. 성공이면, 관리자서버(704)에서 배포서버(703)로 네트워크(706)를 통해 활성허가정보가 전송되는 S6단계로 진행된다. In step S3, the
S7단계에서, 배포서버(703)는 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합과 관련된 복호화키를 활성화한다. 상세하게, 배포서버(703)는 키등록프로그램(713)을 실행할 때 입력을 위해 활성허가정보를 요구하는 것이 바람직하다. 활성허가정보에 응하여 키등록프로그램(713)은 복호화키를 활성화하고 활성화된 복호화키를 이용하여 소스암호화 컴퓨터 프로그램을 복호화한다. 예컨대, 활성 허가정보는 최초에 암호화된 복호화키를 복호화하는데 적절한 복호화키를 포함한다. 이럴 경우, 키등록프로그램(713)은 복호화기능을 구비하고 있으므로 활성허가정보를 이용하여 최초에 암호화된 복호화키를 복호화할 수 있다.In step S7, the
복호화키의 활성화 여부에 상관없이 배포서버(703)는 복호화키를 고객데이터베이스(707) 내에 저장한다. 이때 배포서버(703)는 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합뿐만 아니라 상기 프로그램 및 매개변수집합을 복호화하는 복호화키도 포함하거나 또는 그에 접근한다.Regardless of whether the decryption key is activated, the
도 31을 참조하면, 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 처리하기 위한 공정이 진행된다. 소스암호화 컴퓨터 프로그램을 실행하거나 또는 소스암호화 매개변수집합을 이용하여 처리조정부의 처리능력을 조정하기 위하여, 클라이언트단말장치(705)는 등록처리를 실행해야 한다. 이러한 처리는 네트워크(706)상의 관리자서버(704)를 이용하여 설명된다.Referring to Figure 31, a process for processing a source encryption computer program or a source encryption parameter set proceeds. In order to execute the source encryption computer program or to adjust the processing capability of the processing adjustment unit by using the source encryption parameter set, the
도 32를 참조하면, 처리의 각 단계들이 진행된다. S20, S22, S24 및 S26단계는 도 16에 도시된 단계와 유사하다.Referring to Fig. 32, each step of the process proceeds. Steps S20, S22, S24 and S26 are similar to those shown in FIG.
S30단계에서, 관리자서버(704)는 등록데이터를 생성하고 생성된 등록데이터를 네트워크(706)를 통해 클라이언트단말장치(705)에 송신한다. 예컨대, 등록데이터는 기기ID 및 배포ID로 구성된다. 기기ID 및 배포ID는 등록데이터의 적절한 분석에 의해 나중에 정해진다. 클라이언트단말장치는 등록데이터를 취득하면 제1기록디바이스, 예컨대 하드디스크드라이브 및/또는 메모리카드(709)에 등록데이터를 저장한다. In operation S30, the
도 33을 참조하면, 서버(384)등의 관리자서버(704)는 데이터베이스(386)등의 데이터베이스(707A)에 접속된다. 데이터베이스(707A)는 상기 등록처리 단계에서 취득된 임의의 기기ID 및/또는 배포ID를 포함한다. 바람직하게, 기기ID 및 배포ID는 유용한 히스토리데이터와 그 분석결과를 얻을수 있도록 서로 결합하여 저장된다. 예컨대, 분석결과로부터 특정 클라이언트단말장치(705)가 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 특정 배포서버(703)로부터 취득했다는 사실을 판단할 수 있다. 기기ID, 배포ID 및/또는 그들의 상관관계는 배포서버(703)로부터 취득된 데이터를 병용함으로써 배포서버 측의 임의의 의무처리(예컨대 계약처리)가 행해지고 있는지 증명한다. Referring to Fig. 33,
도 34 및 35를 참조하면, 컴퓨터 프로그램 또는 매개변수 집합을 등록하고 최종사용자가 컴퓨터 프로그램 또는 매개변수집합을 실행하거나 처리를 조정하도록 하는 단계를 진행한다. 사용자는 소스암호화 컴퓨터 프로그램을 복호화하는데 적절한 복호화키를 취득하고자 한다는 것을 클라이언트단말장치(705)에 알린다. S21단계에서, 클라이언트단말장치(705)는 네트워크(706)를 통해 배포서버(703)와의 통신링크를 확립한다. 그리고 클라이언트단말장치(705)는 등록데이터(바람직하게 관리자서버(704)로부터 취득된 등록데이터)를 배포서버(703)에 송신한다(S22단계).Referring to Figures 34 and 35, steps are taken to register a computer program or parameter set and allow an end user to execute the computer program or parameter set or coordinate processing. The user informs the
S23단계에서, 배포서버(703)는 네트워크(706)를 통해 클라이언트단말장치(704)로부터 기기ID(및 가능하면 배포ID)를 포함하는 등록데이터를 취득한다. 이때 배포서버(703)는 네트워크(706)와의 통신을 용이하게 하는 네트워크인터페이스를 포함하며, 네트워크(706)를 통해 클라이언트단말장치(705)로부터 등록데이터를 취득한다. S23단계에서, 관리자서버(704)는 클라이언트단말장치(705)로부터 수신된 기기ID에 대응하는 가상ID를 할당한다. 가상ID는 이전에 존재하는 ID중에서 선택된다. 가상ID는 기기ID, 배포ID 및/또는 다른 피연산함수에 실행되는 수식연산을 통해 도출되거나 임의의 공지된 또는 후술될 개량된 기술을 사용하여 생성된다.In step S23, the
배포서버(703)는 클라이언트단말장치(705)로부터 취득된 기기ID(예컨대, 제2기록디바이스(ROM)에 저장된 기기ID)와 일치하는 기기ID를 찾기 위하여 고객데이터베이스(707)를 탐색한다. 도36을 참조하면, 고객데이터베이스(707)는 클라이언트단말장치(705)에 대응하는 기기ID를 저장한다. 도 36의 좌측 열에 표시된 고객데이터베이스(707)에는 이미 복수의 기기ID가 저장되어 있다. 기기ID는 클라이언트단말장치(705)에 각각 대응되며 각각의 클라이언트단말장치(705)에 고유하다. 관리자서버(704)는 데이터프로세서를 포함하며, 상기 데이터프로세서는 배포서버(703)가 네트워크(706)를 통해 클라이언트단말장치(705)로부터 취득된 기기ID와 일치하는 등록정보(예컨대 기기ID)를 찾기 위해 고객데이터베이스(707)를 탐색하는데 사용된다. 이를 위하여 임의의 공지된 또는 후술될 개량된 데이터처리용 하드웨어를 사용할 수 있다.The
도 35로 돌아가서, S23단계에서, 가상ID는 고객 데이터베이스(707)에 저장된 기기ID와 관련된다. 즉, 가상ID는 배포서버(703)로 기기ID를 송신한 특정 클라이언트단말장치(705)와 관련있다. 이러한 관계는 저장된 기기ID에 대응하도록 가상ID를 고객데이터베이스(707) 내에 기억시킴으로써 가능하다.Returning to Fig. 35, in step S23, the virtual ID is associated with the device ID stored in the
네트워크(706)를 통해 클라이언트단말장치(705)에서 배포서버(703)로 등록데 이터를 송신하는 동작(도35의 22)은 배포ID의 송신동작을 포함한다. 배포ID는 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합이 취득되는 배포서버(703)에 대응한다. 또는 등록데이터 내에 포함된 배포ID는 기기ID와 관련하여 고객데이터베이스(707)에 저장된다. The operation of transmitting registration data from the
도 35에 도시된 바와 같이, 배포서버(703)는 암호화된 복호화키 및 암호화된 가상ID를 생성한다. 복호화키는 클라이언트단말장치(705) 상의 소스암호화 컴퓨터프로그램 또는 소스암호화 매개변수집합을 복호화하는데 사용된다. 배포서버(703)는 암호화서버(도 27-28의 702)에 의해 생성된 소스암호화 컴퓨터 프로그램을 복호화하는데 사용되는 임의의 수의 복호화키에 접근한다. 복호화키는 암호화서버(702) 및/또는 적절한 관리자에 의해 배포서버(703)로 제공된다. 또한 복호화키는 네트워크(706) 또는 다른 네트워크를 통해 배포서버(703)로 송신되거나 기록매체를 이용해 수동으로 제공될 수 있다.As shown in FIG. 35, the
S24단계에서, 배포서버(703)는 클라이언트단말장치(705)에 관련된 가상ID를 이용하여 복호화키를 암호화한다. 또한 배포서버(703)는 클라이언트단말장치(705)에 관련된 기기ID를 이용하여 가상ID를 암호화한다. 클라이언트단말장치(705)의 기기ID는 고객데이터베이스(707)로부터 취득된다.In step S24, the
배포서버(703)의 네트워크인터페이스는 네트워크(706)를 통해 암호화된 복호화키 및 암호화된 가상ID를 클라이언트단말장치(705)로 송신하는 작동(S25단계)을 용이하게 한다. S26단계에서, 클라이언트단말장치(705)는 네트워크(706)를 통해 암호화된 복호화키 및 암호화된 가상ID를 취득하며 암호화된 복호화키 및 암호화된 가상ID를 제1기록디바이스(예컨대, 하드디스크드라이브(708), 메모리카드(709) 등)에 저장한다. 27단계에서, 배포서버(703)는 복호화키가 클라이언트단말장치(705)로 송신되었음을 히스토리데이터로 기록한다. 이러한 정보는 추후 네트워크(706)를 통해 관리자서버(704)로 제공된다. 배포서버(703)는 히스토리데이터에 포함된 데이터에 접근할 수 없다. 이 데이터는 금액청구, 의무처리 등의 목적으로 사용된다.The network interface of the
암호화된 복호화키는 인가된 클라이언트단말장치(705), 예컨대 유효한 기기ID를 제공하고 복호화키를 암호화하는데 사용되는 가상ID와 관련된 기기ID를 등록한 클라이언트단말장치로만 제공된다. 암호화된 복호화키의 방해, 예컨대 네트워크의 저작권 침해나 비인가복제는 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수 집합을 복호화하는데 필요한 정보(유용한 복호화키)를 제공할 수 없다. 사실, 그러한 복호화키는 대응하는 가상ID에 고유하게 암호화된다. 유사하게, 암호화된 가상ID는 등록처리가 완료되고 클라이언트단말장치가 인가된 후에만 클라이언트단말장치(705)로 제공된다. 가상ID는 배포서버(703)에서 클라이언트단말장치(705)로 암호화된 방식(예컨대 클라이언트단말장치(705)의 기기ID를 이용한 암호화방식)으로 송신되므로, 암호화된 가상ID의 비인가취득은 암호화된 복호화키를 복호화하는데 필요한 정보를 제공할 수 없다.The encrypted decryption key is provided only to an authorized
도 19 및 20을 참조하면, 소스암호화 컴퓨터 프로그램 또는 소스암호화 매개변수집합을 클라이언트단말장치(705) 내에 로딩/설치하는 공정이 진행된다.19 and 20, a process of loading / installing a source encryption computer program or a source encryption parameter set in the
도 21 및 22를 참조하면, 컴퓨터 프로그램 또는 매개변수집합이 클라이언트단말장치(705)에 의해 실행되는 공정이 진행된다.21 and 22, a process is executed in which a computer program or parameter set is executed by the
도 10을 참조하면, 처리조정부(118)의 처리특성을 변경하는 단계가 매우 많으므로 일부 단계는 생략되어 설명된다. 실시예에 개시된 기술 외에도 본 발명의 정신을 벗어나지 않는 범위 내에서 다양한 접근과 시도가 가능하다. 본 발명의 실시예에 따라 적어도 하나 이상의 하위처리장치(208))의 처리특성을 조정함으로써 하나 이상의 하위처리장치(208)가 소프트웨어 프로그램을 적절하게 실행한다. 반면 하나 이상의 다른 하위처리장치(208)의 처리특성은 조정되지 않으므로 고도의 처리특성이 가능하며 다른 업무를 수행할 수 있다. 특정 매개변수, 예컨대 하나 이상의 하위처리장치(208)의 클록주파수는 조정되지만 하나 이상의 다른 하위처리장치(208)의 클록주파수는 조정되지 않는다.Referring to FIG. 10, there are many steps for changing the processing characteristics of the
도 37을 참조하면, 다른 하위처리장치의 하나 이상의 클록주파수는 변경하지 않고 몇몇의 클록주파수(예컨대 몇몇의 하위처리장치)를 변경함으로써 프로세서요소(200A)의 처리능력을 변경한다. 처리장치(208A-D)는 각각 공지된 위상고정루프기술을 사용하는 클록회로를 포함한다. 특히, 하위처리장치(208A)는 위상고정루프회로(PLL1)를 포함하며, 하위처리장치(208B-D)는 각각 위상고정루프회로(PLL2, PLL3, PLL4)를 포함한다. 위상고정루프회로의 설정주파수는 비교적 광범위하며, 서로 다른 클록주파수는 각각에 대응하는 하위처리장치(208)를 작동시킨다. 위상고정루프회로는 클록주파수를 1MHz와 4GHz 사이로 설정하는 것이 바람직하다. Referring to FIG. 37, the processing capacity of the
프로세서요소(200A)는 시스템 제어부(280)를 포함하며, 시스템 제어부(280)는 소프트웨어 제어부, 하드웨어 제어부 또는 그 조합을 포함한다. 시스템 제어부(280)는 원하는 클록주파수를 표시하는 매개변수를 변환테이블(550)로부터 취득 하며 취득한 매개변수를 하위처리장치(208A)에 관련된 하나 이상의 위상고정루프회로로의 명령신호로 변환한다. 시스템 제어부(280)는 하위처리장치(280)에 의해 인식된 신호를 출력하고 하위처리장치(208)에 대응하는 위상고정루프회로의 주파수는 변경하는 반면, 하나 이상의 다른 하위처리장치(208)의 위상고정루프회로의 주파수는 변경하지 않는 것이 바람직하다. 이것을 기능적으로 실현하기 위하여 하위처리장치(208)는 각각 자신의 클록메쉬, 예컨대 H-트리 분배네트워크와 같은 클록주파수분배네트워크가 필요하다. 처리장치(204)는 시스템 제어부(280)로부터 출력되는 제어신호에 따라 변경되는 위상고정루프회로(PLL6)를 포함한다. 버스(212)는 시스템 제어부(280)로부터 출력되는 제어신호에 따라 변경되는 관련 위상고정루프회로(PLL5)를 포함한다. 시스템 제어부(280)의 제어신호는 변환테이블(550)의 매개변수에 의해 영향을 받으며, 프로세서요소(200A)의 위상고정루프회로의 일부 또는 전부는 상기 제어신호에 따라 조작된다는 장점이 있다. The
도 38을 참조하면, 도 37에 도시된 기능과 실질적으로 동일한 기능을 실현하는 다른 예가 설명된다. 프로세서요소(200B)는 복수의 클록회로(284)(CLK1, CLK2, CLK3....CLKN)를 포함하며 클록회로(284)는 하위처리장치(208), 처리장치(204) 및 버스(212)에 공통적이다. 클록회로의 출력은 각각 하위처리장치(208), 처리장치(204) 및 버스(212)로 입력된다. 구성요소들은 각각 멀티플렉서(286) 또는 유사하게 기능하는 다른 회로를 포함한다. 멀티플렉서(286)는 클록회로(284)로부터 출력되는 위상이 다른 클록신호를 각각 취득하며, 제어 리지스터(282)로부터 출력되는 제어신호에 대응하는 클록신호들 중 하나를 출력한다. 제어 리지스터는 변환테 이블(550)의 매개변수로부터 그 내용을 직접 취득하거나 또는 매개변수값을 조작한 결과로써 그 내용을 취득한다. 이러한 구조에서 하위처리장치(208), 처리장치(204) 및 버스(212)는 각각 어느 한 구성요소의 클록주파수를 하나 이상의 다른 구성요소의 클록주파수와 상이하게 하기 위하여 별도의 클록메시를 요구한다.Referring to FIG. 38, another example of realizing a function substantially the same as that shown in FIG. 37 will be described.
도 39를 참조하면, 각각의 클록회로(284)는 위상고정루프회로 및 다양한 마스크신호, 예컨대 1/3주파수클록신호를 생성하는 제1마스크신호(MASK1), 1/2주파수클록신호를 생성하는 제2마스크신호(MASK2) 등을 이용하여 실현된다. 본 발명의 실시예에 따라, 제어회로(미도시)는 마스크신호를 생성한다. 제어 리지스터(282)와 멀티플렉서(286)를 조합하여 사용함으로써 일정한 마스크집합에 의해 생성된 클록신호를 취득한다. 클록신호들 중 어느 하나는 제어 리지스터(282)에 따라 선택된다.Referring to FIG. 39, each
상기한 바와 같이, 프로세서요소(도 2의 200)의 버스사용률은 본 발명에 따라 조작되는 처리조정부(118)의 처리능력과 관련된 실시예에 공통적이다. 도 40을 참조하면, 프로세서요소(200C)는 특히 처리장치(204)에 관하여 버스이용률의 조정을 가능하게 한다. 실제로, 프로세서요소(200C)의 효과적인 처리를 위하여 처리장치(204) 및 하위처리장치(208A-D)는 버스(212)에 접근하는 것이 필요하다. 버스(212)로의 접근이 향상되거나 방해되면 프로세서요소(200C)의 처리능력도 그에 따라 증가하거나 감소한다. 본 발명에 따라, 시스템 제어부(280)는 리미터회로(288)를 통해 처리장치(204)가 버스(212)로 접근하는 것을 제한하거나 증가시킨다. 상세하게, 시스템 제어부(280)는 리미터회로(288)와 조합하여 처리장치(204)의 버스(212) 접근을 허용하는 프로세서 사이클의 특정한 주기 및/또는 프로세서 사이클의 비율을 조정한다. 예컨대, 제한된 처리사이클을 초과하여 처리장치(204)가버스로 접근하는 것을 허용하는 스케쥴(280A)은 시스템 제어부(280)에 의해 확립된다. 따라서, 시스템 제어부(280)와 리미터회로(288)만 없다면, 처리장치(204)는 허용횟수를 넘어서 버스(212)로의 접근을 시도할 것이다. 그로 인해 처리장치(204)와 공유DRAM(214) 간의 처리속도가 증가하거나 감소하며 처리장치(204)와 하나 이상의 하위처리장치(208) 간의 처리도 증가하거나 감소한다. 따라서 본 발명의 실시예에 따라 처리장치(204)에 의한 버스사용율을 예컨대 30%로 제한한다. As mentioned above, the bus utilization rate of the processor element (200 in FIG. 2) is common to the embodiment related to the processing capability of the
리미터회로(288)는 처리장치(204)와 관련된 방식과 유사한 방식으로 하나 이상의 하위처리장치(208)가 버스(212)로 접근하는 것을 향상시키거나 제한한다. 이는 프로세서요소(200C)의 처리능력 조정과 관련된 자유도를 고취시킨다.The
처리조정부(118)의 명령대기시간과 명령처리율 중 적어도 하나를 변경하면 처리조정부(118)의 처리능력이 영향을 받는다. 도 41 및 42를 참조하면, 명령대기시간 및/또는 명령처리율은 처리조정부(118)에 의해 조작된다. 특히, 지연시간, 비동작 등은 명령파이프라인의 하나 이상의 단계에서 삽입되거나 제외된다. 예컨대, 명령파이프라인은 명령페치시퀀스, 명령디코드시퀀스, 명령실행시퀀스 및 라이트백시퀀스를 포함한다. 도 41에 도시된 바와 같이, 비동작, 버블, 지체시간 등을 명령실행시퀀스와 라이트백시퀀스 사이에 삽입 또는 제외시킴으로써 명령실행시퀀스와 라이트백시퀀스 사이의 시간조정이 실현된다. 도 42에 도시된 바와 같이, 라이트백시퀀스를 종료한 후, 시간조정을 삽입하거나 제외하면 명령대기시간에 영향을 주게 된다. 본 발명에 따라, 하나 이상의 하위처리장치(208)는 이러한 기술들을 이용하여 프로세서요소(200)의 처리능력을 조정한다. Changing at least one of the command waiting time and the command processing rate of the
또한, 메모리대기시간 및/또는 메모리사용율을 조작함으로써 처리조정부(118)의 처리능력을 조정한다. 상세하게, 국부기억장치(250)에 대응하는 하위처리장치(208) 또는 공유DRAM(214)에 대응하는 하위처리장치(208)의 메모리지연시간 및/또는 메모리사용율을 조정함으로써 프로세서요소(200)의 원하는 처리능력을 실현한다. 유사하게, 공유DRAM(214)에 대응하는 처리장치(204)의 메모리대기시간 및/또는 메모리사용율을 조정한다. 상세하게, 도 15 및 16에 설명된 방식과 유사한 방식으로 메모리대기시간 및/또는 메모리사용율을 조정한다. 메모리접근의 기본적인 시퀀스는 어드레스의 취득시퀀스, 어드레스 디코딩시퀀스 및 특정한 어드레스에 일치하는 메모리로부터 데이터 취득시퀀스(또는 메모리로 데이터 쓰기시퀀스)를 포함한다. Further, the processing capacity of the
도 43을 참조하면, 렌탈 프로그램 콘텐츠의 배포자로부터 소프트웨어 프로그램과 같은 프로그램콘텐츠의 안전한 배포에 관한 일예를 보여준다. 이러한 배포형태는 미국특허출원 제 10/316,309호 및 제 10/316,675호에 개시되어 있다.Referring to FIG. 43, an example of secure distribution of program content such as a software program from a distributor of rental program content is shown. Such distributions are disclosed in US patent applications 10 / 316,309 and 10 / 316,675.
렌탈프로그램콘텐츠의 배포자는 관리자서버(601,704), 제3자서버(602,701), 배포서버(703) 또는 기타 서버(미도시)로 구성된다. 사용자가 프로그램콘텐츠를 임대하고자 할 경우, 사용자는 먼저 렌탈시스템에 회원가입을 해야 한다. S70단계에서, 사용자는 클라이언트단말장치(604,705)의 활성화 매커니즘을 통해 시스템의 회원에 가입하기 원하는지 표시한다. 예컨대, 클라이언트단말장치(604,705)는 사용자 가 임대한 프로그램콘텐츠를 실행하는 장치와 동일하거나 별개의 장치일 수 있다. 클라이언트단말장치(604,705)는 회원가입처리를 용이하게 하는 컴퓨터 프로그램을 포함하며 이를 실행한다.The distributor of the rental program contents is composed of
S72단계에서, 클라이언트단말장치(604,705)는 네트워크(605,704)를 통해 관리자서버(601,704)와의 통신링크를 확립한다. S74단계에서, 클라이언트단말장치(604,705)에 의해 사용자의 렌탈시스템의 회원가입요청서가 송신된다. 사용자가 현재 사용하고 있는 클라이언트단말장치로만 콘텐츠를 임대하여 실행하고자 할 경우, 클라이언트단말장치(604,705)는 네트워크(605,706)를 통해 기기ID를 관리자서버(601,704)로 송신한다. 또는, 사용자가 다른 장치를 통해 프로그램 콘텐츠를 임대하고 싶을 경우, 클라이언트단말장치(604,705)는 사용자에게 고유한 다른 ID정보를 송신한다. 이에 응하여, 관리자서버(601,704)는 사용자가 프로그램콘텐츠를 임대하고 실행할 때 사용하는 클라이언트단말장치(604,705)에 고유한 전자회원증을 발급한다. 관리자서버(601,704)는 데이터베이스 클라이언트단말장치(604,705)의 기기ID 또는 사용자정보를 데이터베이스결합기술을 이용하여 전자회원증과 결합한다. S80단계에서, 관리자서버(601,704)는 네트워크(605,706)를 통해 전자회원증을 클라이언트단말장치(604,705)로 송신한다. 전자회원증은 렌탈 처리공정에서 사용된다.In step S72, the client terminal device (604, 705) establishes a communication link with the manager server (601, 704) through the network (605, 704). In step S74, the
렌탈시스템의 회원이 되면, 사용자는 프로그램 콘텐츠, 예컨대 애플리케이션 및 시스템 프로그램의 임대를 허가받는다. 바람직하게, 프로그램 콘텐츠는 비디오게임 컴퓨터 프로그램이다. 도 44를 참조하면, 클라이언트단말장치(604,705)에서 동작하는 컴퓨터 소프트웨어는 사용자에게 컴퓨터 프로그램의 임대를 원하는지 표 시하도록 한다. 여기서, 사용자가 프로그램콘텐츠를 임대하고자하는 클라이언트단말장치는 회원등록에 이용되는 장치와 동일하거나 다른 장치일 수 있다. 예컨대, 사용자는 게임콘솔용 소프트웨어 프로그램을 임대하지만, 휴대전화, PDA 또는 기타 장치로부터 회원인증서나 기타 데이터를 송신함으로써 인증을 시작할 수 있다. 회원인증서나 기타 데이터는 데이터를 수동으로 입력하거나, 자기카드 또는 스마트카드를 이용하여 장치에 이미 저장되어 있는 데이터를 읽어들임으로써 장치내로 입력한다.Once a member of the rental system, the user is authorized to rent program content, such as applications and system programs. Preferably, the program content is a video game computer program. Referring to FIG. 44, computer software running on the
사용자의 표시(S82단계)에 응답하여, 클라이언트단말장치(604,705)는 사용자의 임대신청서를 수신하는 배포자(S84단계)와의 통신링크를 확립한다(S84단계). S86단계에서, 배포자는 클라이언트단말장치(604,705)와 사용자가 회원가입시 사용한 장치가 동일한 경우, 전자회원증을 분석 및/또는 클라이언트단말장치(604,705)의 기기ID를 분석함으로써 클라이언트단말장치(604,705)를 인증한다. 클라이언트단말장치(604,705)는 배포자에게 기기ID 및/또는 전자회원증을 요구하고 배포자는 입증된 정보를 갖는 데이터베이스로 접근한다.In response to the user's indication (step S82), the
사용자가 인가 허용되면, 배포자는 네트워크(605,706)를 통해 클라이언트단말장치(604,705)로 임대에 이용가능한 타이틀 리스트 또는 메뉴를 제공한다(S88단계). 클라이언트단말장치(604,705)에서 실행되는 컴퓨터소프트웨어는 사용자에게 타이틀 리스트 또는 메뉴를 쉽게 보여주며, 사용자는 타이틀을 선택하고 임대시간을 정한다(S90단계). 사용자의 선택 및 정해진 임대시간은 네트워크(605,076)를 통해 배포자에게 송신된다.If the user is authorized, the distributor provides a list or menu of titles available for lease to the
S92단계에서, 배포자는 사용자에게 컴퓨터 프로그램의 임대비용 지불을 요구한다. 이는 임의의 공지된 기술, 예컨대 클라이언트단말장치(604,705) 또는 기타 장치를 이용하여 청구서를 통해 신용카드번호 또는 요구불예금계좌번호를 송신함으로써 이루어진다. 결제가 되면, 배포자는 지정한 타이틀과 임대시간에 대하여 결제가 이루어졌음을 표시하는 전자지불전표를 발급한다(S94단계). S96단계에서, 배포자는 전자지불전표를 클라이언트단말장치(604,705) 또는 기타 장치로 네트워크(605,706)를 통해 송신한다.In step S92, the distributor requests the user to pay the rent of the computer program. This is accomplished by sending a credit card number or a required deposit account number via invoice using any known technique, such as
전자지불전표는 사용자 (또는 전자지불전표를 취득한 클라이언트단말장치(604,705))에게 결제의 대가로 임대권을 제공한다. 예컨대, 임대권리는 지정된 컴퓨터 프로그램, 임대시간, 결제금액 등으로 제한된다. 덧붙여, 전자지불전표는 컴퓨터 프로그램을 복호화할 수 있는 복호화키와 같은 부가정보를 포함한다. 그러나, 이는 예시일 뿐 전자지불전표가 복호화키를 반드시 포함할 필요는 없다. 전자지불전표는 암호화된 형태로 복호화키를 포함한다. 예컨대, 암호화 형태로는 기기ID 또는 전자회원증의 일부인 다른 정보(예컨대 가상ID)를 이용하여 암호화하는 복호화키를 포함한다. 이때, 사용자는 임대권리를 취득할 수 있지만 컴퓨터 프로그램 또는 암호화된 상태의 컴퓨터 프로그램을 취득할 수 없다.The electronic payment slip provides a lease right to the user (or
클라이언트단말장치(604,705) 또는 기타 장치는 소정 시간동안의 임대권에 대해 결제가 완료되었으며 사용자의 전자회원증을 보관하고 있음을 나타내는 전자지불전표를 가진다. 도 45를 참조하면, 클라이언트단말장치(604,705) 또는 기타 장치는 네트워크(605,706)를 통해 관리자서버(601,704)와의 통신링크를 확립한다(S98 단계). S100단계에서, 관리자서버(601,704)는 기기ID 및/또는 전자회원증을 통해 클라이언트단말장치(604,705) 또는 기타 장치를 인증한다. 이는 적절한 데이터베이스, 예컨대 고객데이터베이스(606,707)에 접근함으로써 이루어진다. S102단계에서, 클라이언트단말장치(604,705) 또는 기타 장치는 전자지불전표를 네트워크(605,706)를 통해 관리자서버(601,704)로 송신한다. 이에 응답하여 관라자서버(601,704)는 전자임대표를 발급(S104단계)하고 그 표를 네트워크(605,706)를 통해 클라이언트단말장치(604,705) 또는 기타 장치로 송신한다(S106단계).The
전자임대표는 사용자(또는 클라이언트단말장치(604,705))에게 전자지불전표에 표시된 임대권리와 동일하거나 더 큰 임대권을 제공한다. 예컨대, 전자임대표는 컴퓨터 프로그램 타이틀, 임대시간, 송금액을 나타내며, 부가정보, 예컨대 (복호화키가 전자지불전표에 포함되지 않았다고 가정할 때) 암호화된 컴퓨터 프로그램을 복호화할 수 있는 복호화키를 포함한다. 이는 예시일 뿐, 전자임대표가 복호화키를 반드시 포함하는 것은 아니다. 전자임대표는 암호화된 형태로 복호화키를 포함한다. 암호화된 형태는, 예컨대 기기ID 또는 전자회원증의 일부인 다른 정보, 예컨대 가상ID를 이용하여 암호화하는 복호화키를 포함한다. 이때, 사용자는 임대권리를 취득할 수 있지만 컴퓨터 프로그램 또는 암호화된 상태의 컴퓨터 프로그램을 얻을 수 없다.The electronic lease provides the user (or
도 46을 참조하면, 클라이언트단말장치(604,705)는 네트워크(605,706)를 통해 배포자와의 통신링크를 확립한다(S108). 이에 응답하여, 배포자는 기기ID 및/또는 상기 전자회원증을 분석함으로써 클라이언트단말장치(604,705)를 인증한다(S110 단계). 그리고, 클라이언트단말장치(604,705) 또는 기타 장치는 네트워크(605,706)를 통해 전자임대표를 배포자에게 송신한다(S112단계). 클라이언트단말장치(604,705) 또는 기타 장치가 필요한 단계를 모두 마쳤으므로 클라이언트단말장치(604,705)는 임대하려는 컴퓨터 프로그램의 암호화된 버전의 취득을 인가받았음을 배포자에게 알려준다(S114단계). 이때, 클라이언트단말장치(604,705) 또는 기타장치는 기기ID, 전자지불전표, 전자임대표, 암호화된 복호화키, 및 암호화된 컴퓨터 프로그램을 가지는 것이 바람직하다.Referring to FIG. 46, the
사용자는 전술한 실시예의 공정을 이용하여 컴퓨터 프로그램을 로딩, 설치 및 실행할 뿐만 아니라 클라이언트단말장치의 처리능력을 조정한다. 따라서 렌탈 시스템은 네트워크(605,706)를 통해 클라이언트단말장치(604,705)를 이용하여 렌탈 프로그램 콘텐츠를 안전하게 배포한다.The user not only loads, installs and executes a computer program, but also adjusts the processing capability of the client terminal device using the process of the above-described embodiment. Accordingly, the rental system securely distributes the rental program contents using the
따라서, 본 발명은 사용자가 특정 소프트웨어 프로그램 또는 특정 버전의 프로그램을 실행할 권리를 구매할 경우 임의의 특정 장치에 상관없이 실행할 수 있다. 예컨대, 사용자는 사용자의 콘솔이나 다른 사람의 콘솔 또는 게임센터와 같은 공공장소에 설치된 콘솔에서 특정 게임프로그램 또는 기타 소프트웨어 프로그램을 실행할 수 있는 권리를 구매할 수 있다.Thus, the present invention can be executed regardless of any particular device if the user purchases the right to execute a particular software program or a specific version of the program. For example, a user may purchase the right to run a particular game program or other software program on a user's console or a console installed in a public place such as another person's console or game center.
사용자는 휴대용 소프트웨어 매체, 예컨대 디스크 또는 기록디바이스에 저장된 게임 프로그램이나 기타 소프트웨어 프로그램의 버전의 사본을 가지고, 상기 기록매체로부터 사용자나, 다른 사람 또는 공공장소에 있는 콘솔에 복제할 수 있다. 또는 사용자는 상기 버전의 게임프로그램 또는 기타 소프트웨어 프로그램을 실행할 권리를 소유할 수 있다. 어느 경우든, 사용자는 사용자ID 또는 기타 인증정보, 예컨대 전자회원증(가상ID) 등을 가진다.The user may have a copy of a version of a game program or other software program stored on a portable software medium, such as a disk or recording device, and may copy it from the recording medium to the user, or to a console in another person or public place. Alternatively, the user may have the right to run this version of the game program or other software program. In either case, the user has a user ID or other authentication information such as an electronic membership card (virtual ID).
사용자가 본인의 콘솔이나, 다른 사람의 콘솔 또는 게임센터의 콘솔 등의 장치에 게임프로그램 또는 기타 소프트웨어 프로그램을 실행하고자 할 때, 프로그램의 사본이 이미 콘솔에 저장되어 있는 경우, 콘솔에 프로그램을 실행 및/또는 콘솔상의 프로그램의 적절한 실행을 가능하게 하는 소프트웨어 및/또는 데이터모듈을 취득하려면 사용자인증정보가 필요하다. 게임프로그램 또는 기타 소프트웨어 프로그램이 사용자의 콘솔이나 다른 사람의 콘솔 또는 게임센터의 콘솔에 저장되어 있지 않은 경우, 구매한 버전의 프로그램을 콘솔에 다운로딩 및/또는 콘솔에 적합한 소프트웨어 버전을 취득하는데 필요한 소프트웨어 및/또는 데이터모듈을 얻는데 사용자인증정보가 필요하다.When a user wants to run a game program or other software program on his or her device, such as someone else's console or a console in a game center, if a copy of the program is already stored on the console, User authentication information is required to acquire software and / or data modules that enable proper execution of programs on the console. If a game program or other software program is not stored on your console or someone else's console or console of the game center, the software required to download the purchased version of the program to the console and / or obtain the appropriate software version for the console. And / or user authentication information is required to obtain the data module.
도 43-46을 참조하면, 사용자의 휴대전화, PDA, 또는 기타 장치로부터 인증정보를 송신함으로써 사용자인증공정이 실행된다. 수동으로 데이터를 입력하거나, 자기카드 또는 스마트카드를 사용하거나, 또는 콘솔이 사용자의 콘솔에 이미 있는 경우에 사용자의 콘솔에 저장된 데이터를 읽음으로써 콘솔 내로 입력하여 회원인증이나 기타 데이터를 송신한다.43-46, a user authentication process is executed by sending authentication information from a user's cellular phone, PDA, or other device. Enter the data manually, use a magnetic or smart card, or read the data stored in the user's console when the console is already in the user's console to send membership authentication or other data.
도 11-27을 참조하면, 사용자인증정보를 하나 이상의 관리자서버(601,704), 제3자서버(602,701), 배포서버(703), 또는 기타 서버(미도시)로 송신한다. 또한 사용자가 소유한 게임프로그램 또는 기타 소프트웨어 프로그램과, 게임프로그램 또는 기타 소프트웨어 프로그램 콘텐츠를 동작시키는데 필요한 소프트웨어 및/또는 데이 터모듈을 하나 이상의 서버를 통해 도 5-36에 설명된 방식으로 다운로드한다.11-27, user authentication information is transmitted to one or
이렇게 함으로써, 게임프로그램 또는 기타 소프트웨어 프로그램을 실행할 수 있는 권리를 가진 사용자는 콘솔에 적합한 버전의 소프트웨어를 사용하여 본인이나 다른 사람 또는 공공장소의 콘솔에 프로그램을 실행할 수 있다.By doing so, a user who has the right to run a game program or other software program can run the program on the console of himself or another person or a public place using the appropriate version of the software for the console.
이상, 본 발명의 원리를 예시하기 위한 바람직한 실시예에 대하여 도시하고 설명하였으나, 본 발명은 그와 같이 도시되고 설명된 그대로의 구성 및 작용으로 한정되는 것이 아니다. 오히려, 첨부된 특허 청구 범위의 사상 및 범주를 일탈함이 없이 본 발명에 대한 다양한 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경과 수정 및 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다. As mentioned above, although the preferred embodiment for illustrating the principle of this invention was shown and demonstrated, this invention is not limited to the structure and operation as it was shown and described. Rather, those skilled in the art will appreciate that various changes and modifications can be made to the present invention without departing from the spirit and scope of the appended claims. Accordingly, all such suitable changes, modifications, and equivalents should be considered to be within the scope of the present invention.
본 발명은 복수의 마이크로프로세서를 갖는 처리장치에 적용되어 소프트웨어 프로그램 유지와 관련된 문제를 해결하는데 사용된다. The present invention is applied to a processing apparatus having a plurality of microprocessors and used to solve a problem related to software program maintenance.
Claims (57)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61140604P | 2004-09-20 | 2004-09-20 | |
US60/611,406 | 2004-09-20 | ||
PCT/JP2005/017557 WO2006033423A1 (en) | 2004-09-20 | 2005-09-16 | Methods and apparatus for emulating software applications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070007775A KR20070007775A (en) | 2007-01-16 |
KR100933389B1 true KR100933389B1 (en) | 2009-12-22 |
Family
ID=35448087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067014395A KR100933389B1 (en) | 2004-09-20 | 2005-09-16 | Method and apparatus for emulating a software application |
Country Status (7)
Country | Link |
---|---|
US (1) | US20060107122A1 (en) |
EP (1) | EP1800214A1 (en) |
JP (1) | JP4334521B2 (en) |
KR (1) | KR100933389B1 (en) |
CN (1) | CN1914600A (en) |
TW (1) | TWI293157B (en) |
WO (1) | WO2006033423A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685593B2 (en) * | 2005-05-12 | 2010-03-23 | Microsoft Corporation | Systems and methods for supporting multiple gaming console emulation environments |
EP2013723B1 (en) * | 2006-05-03 | 2019-06-12 | Sony Interactive Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US20080170699A1 (en) * | 2007-01-12 | 2008-07-17 | Motorola, Inc. | Method and device for managing a wireless resource |
JP5005811B2 (en) * | 2007-07-24 | 2012-08-22 | エヌエックスピー ビー ヴィ | Method, system and trusted service manager for securely transmitting an application to a mobile phone |
US8364656B2 (en) * | 2008-10-31 | 2013-01-29 | Cadence Design Systems, Inc. | Method and system for implementing multiuser cached parameterized cells |
US8958550B2 (en) * | 2011-09-13 | 2015-02-17 | Combined Conditional Access Development & Support. LLC (CCAD) | Encryption operation with real data rounds, dummy data rounds, and delay periods |
TWI448968B (en) * | 2012-07-30 | 2014-08-11 | Faraday Tech Corp | Apparatus of system level simulation and emulation, and associated method |
KR101961318B1 (en) | 2012-09-07 | 2019-07-17 | 삼성전자주식회사 | Recovery code managing method for reducing occupancy time in processor and memory system thereof |
US10235219B2 (en) | 2015-07-27 | 2019-03-19 | Sony Interactive Entertainment America Llc | Backward compatibility by algorithm matching, disabling features, or throttling performance |
US10303488B2 (en) * | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
DE102016105844A1 (en) * | 2016-03-31 | 2017-10-05 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for testing a control program of a control device in a simulation environment on a computer |
KR102671611B1 (en) * | 2019-11-29 | 2024-06-03 | 한국전자통신연구원 | Apparatus and method for transmitting fuzzing data for one-way protocol software fuzzing |
WO2022108497A1 (en) * | 2020-11-20 | 2022-05-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for efficient input/output transfer in network devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0519695A2 (en) * | 1991-06-17 | 1992-12-23 | Sun Microsystems, Inc. | Method and apparatus for allowing computer circuitry to function with updated versions of computer software |
KR19990082617A (en) * | 1996-02-14 | 1999-11-25 | 파워티브이, 인코포레이티드 | Multicast downloading system and method of software and data module |
KR20030015204A (en) * | 2000-03-03 | 2003-02-20 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | Compatible entertainment device and computer system |
KR20030071752A (en) * | 2000-08-15 | 2003-09-06 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | Emulation apparatus and parts, emulation method, recording medium and program |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4688169A (en) * | 1985-05-30 | 1987-08-18 | Joshi Bhagirath S | Computer software security system |
US5046090A (en) * | 1990-03-29 | 1991-09-03 | Gte Laboratories Incorporated | Recorded medium for video control system |
US5805551A (en) * | 1994-04-18 | 1998-09-08 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for preventing illegal copy or illegal installation of information of optical recording medium |
US5598470A (en) * | 1994-04-25 | 1997-01-28 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block |
JP3507594B2 (en) * | 1995-07-31 | 2004-03-15 | 株式会社東芝 | Computer |
US5812883A (en) * | 1995-11-22 | 1998-09-22 | Mitsubishi Chemical America, Inc. | System for reading and storing formatting information after formatting a first storage medium and using the stored formatting information to format a second storage medium |
US6006190A (en) * | 1997-04-28 | 1999-12-21 | Tartaroukos Llc | Computer implemented method and a computer system for enforcing software licenses |
US20010010046A1 (en) * | 1997-09-11 | 2001-07-26 | Muyres Matthew R. | Client content management and distribution system |
US5982892A (en) * | 1997-12-22 | 1999-11-09 | Hicks; Christian Bielefeldt | System and method for remote authorization for unlocking electronic data |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US7171662B1 (en) * | 1998-03-18 | 2007-01-30 | Microsoft Corporation | System and method for software licensing |
JP3239842B2 (en) * | 1998-05-08 | 2001-12-17 | 日本電気株式会社 | Software unauthorized use prevention system |
WO2000005716A1 (en) * | 1998-07-22 | 2000-02-03 | Matsushita Electric Industrial Co., Ltd. | Digital data recording device and method for protecting copyright and easily reproducing encrypted digital data and computer readable recording medium recording program |
JP3763702B2 (en) * | 1999-05-27 | 2006-04-05 | 富士通株式会社 | Data operation method |
US6971022B1 (en) * | 1999-06-15 | 2005-11-29 | Matsushita Electric Industrial Co., Ltd. | Cryptographic apparatus for performing cryptography on a specified area of content data |
US7100195B1 (en) * | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
US6427132B1 (en) * | 1999-08-31 | 2002-07-30 | Accenture Llp | System, method and article of manufacture for demonstrating E-commerce capabilities via a simulation on a network |
JP3508680B2 (en) * | 2000-02-24 | 2004-03-22 | 日本電気株式会社 | Content illegal copy prevention method and system |
TW550477B (en) * | 2000-03-01 | 2003-09-01 | Passgate Corp | Method, system and computer readable medium for Web site account and e-commerce management from a central location |
US6668331B1 (en) * | 2000-03-24 | 2003-12-23 | Advantest Corp. | Apparatus and method for successively generating an event to establish a total delay time that is greater than can be expressed by specified data bits in an event memory |
US20020032584A1 (en) * | 2000-04-10 | 2002-03-14 | Jonathan Doctor | Health care payment compliance management |
US6779066B2 (en) * | 2000-05-01 | 2004-08-17 | Matsushita Electric Industrial Co., Ltd. | Module having application-specific program stored therein |
JP2002073421A (en) * | 2000-08-31 | 2002-03-12 | Matsushita Electric Ind Co Ltd | Equipment for issuing license, equipment for reproducing contents, method for issuing license and method for reproducing contents |
US6732106B2 (en) * | 2000-12-08 | 2004-05-04 | Matsushita Electric Industrial Co., Ltd. | Digital data distribution system |
US20020077988A1 (en) * | 2000-12-19 | 2002-06-20 | Sasaki Gary D. | Distributing digital content |
US6993664B2 (en) * | 2001-03-27 | 2006-01-31 | Microsoft Corporation | Method and system for licensing a software product |
US7483433B2 (en) * | 2001-09-17 | 2009-01-27 | Foundry Networks, Inc. | System and method for router data distribution |
CN100592682C (en) * | 2001-12-13 | 2010-02-24 | 索尼计算机娱乐公司 | Method and device for safely assigning content of program |
WO2003055132A1 (en) * | 2001-12-21 | 2003-07-03 | Sony Computer Entertainment Inc. | Methods and apparatus for secure distribution of program content |
EP1505797B1 (en) * | 2003-08-04 | 2005-05-11 | Alcatel | A method, a communication network and a computer software product for distributing software packages or updates |
-
2005
- 2005-09-16 WO PCT/JP2005/017557 patent/WO2006033423A1/en active Application Filing
- 2005-09-16 JP JP2005271225A patent/JP4334521B2/en not_active Expired - Fee Related
- 2005-09-16 CN CNA2005800038205A patent/CN1914600A/en active Pending
- 2005-09-16 EP EP05785641A patent/EP1800214A1/en not_active Withdrawn
- 2005-09-16 KR KR1020067014395A patent/KR100933389B1/en not_active IP Right Cessation
- 2005-09-20 US US11/230,748 patent/US20060107122A1/en not_active Abandoned
- 2005-09-20 TW TW094132548A patent/TWI293157B/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0519695A2 (en) * | 1991-06-17 | 1992-12-23 | Sun Microsystems, Inc. | Method and apparatus for allowing computer circuitry to function with updated versions of computer software |
KR19990082617A (en) * | 1996-02-14 | 1999-11-25 | 파워티브이, 인코포레이티드 | Multicast downloading system and method of software and data module |
KR20030015204A (en) * | 2000-03-03 | 2003-02-20 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | Compatible entertainment device and computer system |
KR20030071752A (en) * | 2000-08-15 | 2003-09-06 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | Emulation apparatus and parts, emulation method, recording medium and program |
Also Published As
Publication number | Publication date |
---|---|
WO2006033423A1 (en) | 2006-03-30 |
CN1914600A (en) | 2007-02-14 |
KR20070007775A (en) | 2007-01-16 |
EP1800214A1 (en) | 2007-06-27 |
JP4334521B2 (en) | 2009-09-30 |
TW200622898A (en) | 2006-07-01 |
TWI293157B (en) | 2008-02-01 |
US20060107122A1 (en) | 2006-05-18 |
JP2006092542A (en) | 2006-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100933389B1 (en) | Method and apparatus for emulating a software application | |
JP4578366B2 (en) | Method and apparatus for distributing software applications | |
KR100924043B1 (en) | Methods and apparatus for secure data processing and transmission | |
JP4912406B2 (en) | Transfer of digital license from the first platform to the second platform | |
US7574747B2 (en) | Proximity detection employed in connection with rights management system or the like | |
JP4974534B2 (en) | Computing device and method for obtaining a license for a digital application | |
US7958371B2 (en) | Methods and apparatus for secure operating system distribution in a multiprocessor system | |
JP2006222951A (en) | Flexible licensing architecture in content rights management system | |
JP2007524896A (en) | Customized execution environment and operating system capable of supporting the environment | |
IL188622A (en) | Digital application operating according to aggregation of plurality of licenses | |
US8205001B1 (en) | Digital rights management integrated service solution | |
US20060069653A1 (en) | First computer process and second computer process proxy-executing code on behalf of first process | |
Anderson et al. | The worldwide computer | |
US7752291B2 (en) | Server borrowing apparatus allocating server to user group and computer product therefor | |
US7788496B2 (en) | First computer process and second computer process proxy-executing code on behalf thereof | |
Sreeramaneni et al. | Intelligent distributed multimedia secure system towards trusted cloud computing paradigm | |
Tosson | DRUS: A New Proposed Interoperable DRM Hardware Software Solution System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121121 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |