KR20020015037A - 커널 기능 실현 메카니즘, 그를 갖는 엔터테인먼트 장치,및 그에 의한 주변 장치 제어 방법 - Google Patents

커널 기능 실현 메카니즘, 그를 갖는 엔터테인먼트 장치,및 그에 의한 주변 장치 제어 방법 Download PDF

Info

Publication number
KR20020015037A
KR20020015037A KR1020017013977A KR20017013977A KR20020015037A KR 20020015037 A KR20020015037 A KR 20020015037A KR 1020017013977 A KR1020017013977 A KR 1020017013977A KR 20017013977 A KR20017013977 A KR 20017013977A KR 20020015037 A KR20020015037 A KR 20020015037A
Authority
KR
South Korea
Prior art keywords
kernel
peripheral device
entertainment
program codes
creator
Prior art date
Application number
KR1020017013977A
Other languages
English (en)
Other versions
KR100766670B1 (ko
Inventor
호리카와츠토무
하카마타니다다야스
Original Assignee
구타라기 켄
가부시키가이샤 소니 컴퓨터 엔터테인먼트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구타라기 켄, 가부시키가이샤 소니 컴퓨터 엔터테인먼트 filed Critical 구타라기 켄
Publication of KR20020015037A publication Critical patent/KR20020015037A/ko
Application granted granted Critical
Publication of KR100766670B1 publication Critical patent/KR100766670B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

엔터테인먼트(entertainment) 장치는 커널(kernel) 외부에 주변 장치용 장치 드라이버를 저장하는 저장 유닛을 포함한다. 주변 장치를 작동 가능하게 하기 위해서, CPU는 I/O 프로세서가 원격 절차 호출에 의거하여 상기 장치 드라이버를 실행하도록 한다. 주변 장치와 CPU 사이의 데이터 전송은 상기 장치에서 적어도 흔히 사용되는 통신 프로토콜에 따라 직접 기억에 의해 실행된다.

Description

커널 기능 실현 메카니즘, 그를 갖는 엔터테인먼트 장치, 및 그에 의한 주변 장치 제어 방법{Kernel function realizing mechanism, entertainment apparatus having same, and peripheral device control method by same}
게임 등에 사용되는 엔터테인먼트 전용 컴퓨터로서 실현되는 엔터테인먼트 장치는 제어기와 외부 저장 매체와 같은 서로 접속된 주변 장치들과 공동으로 주어진 엔터테인먼트 처리를 실행한다. 특히, 엔터테인먼트 장치는 제어기와 외부 저장 매체와 같은 주변 장치들로부터의 입력들에 따라 주어진 엔터테인먼트 처리를 실행하고, 그 결과를 텔레비젼 수상기 및 스피커(speaker)와 같은 디스플레이 유닛(display unit)에 출력한다. 그러므로, 엔터테인먼트 장치가 서로 접속된 주변 장치들을 제어하는 방법은 아주 중요하다.
일반적으로, 주변 장치들의 제어는 OS(operating system)의 주 기능인 커널부에 의해 실현된다.
최근에, 주변 장치들에 대한 보편성과 적절성을 강화하기 위하여, 주변 장치들을 제어하는 프로그램 코드들인 장치 드라이버(driver)들이 커널 외부에 놓이는 "마이크로커널(microkernel)"이라 불리는 기술이 이용되어 왔다. 이러한 마이크로커널의 기술은 엔터테인먼트 장치에 적용되는데 적합하므로, 엔터테인먼트 류에 따르는 다양한 주변 장치들을 수용하는 것이 요구된다.
그러나, 높은 보편성에 의해, 마이크로커널은 고 레벨(level)에서 각 주변 장치들과 교류하는데 어려움이 있다. 결과적으로, 엔터테인먼트 장치가 실시간 처리를 요구하는 게임 장치로서 사용될 때, 그러한 처리는 충분하지 못한 경향이 있다.
반면에, 주변 장치들을 제어하는 전용 프로세서(processor)가 커널을 만드는 CPU에 첨가되어 형성되는 그러한 기술이 또한 이용되어 왔다.
엔터테인먼트 장치들은 일반적으로 주 대량 저장 매체들이 없다. 이러한 엔터테인먼트 장치에서, CD-ROM과 같은 제 2저장 매체로부터의 프로그램 코드들의 판독이 필수적이다. 이러한 경우에, CPU에 부과된 부하를 줄이기 위해, 엔터테인먼트 장치는 예를 들어, 프로그램 코드들의 판독, 디코딩(decoding), 및 판독 프로그램 코드들의 전개와 같은 것을 실행하는 I/O(input/output; 입력/출력) 프로세서 등등이 형성된다.
이러한 I/O 프로세서를 갖는 엔터테인먼트 장치에서, I/O 프로세서는 상술한 주변 장치들의 제어 전용 프로세서로서 사용될 수 있다.
이 경우에서, 그러나, 프로그램 코드들을 포함하는 정보와 필요한 데이터의교환은 I/O 프로세서와 CPU 사이에서는 필수적이다. 결과적으로, 엔터테인먼트 장치에서 정보를 복사하고 전송하는 시간의 개수는 증가하는 경향이 있어, 고속 처리를 요구하는 엔터테인먼트 장치에 있어서 바람직하지 않다. 더욱이, CPU가 I/O 프로세서의 처리를 기다리는 시간이 늘어나는 경향이 있어서, 이 또한 고속 처리를 지체시킨다.
본 발명은 CD-ROM 또는 DVD-ROM과 같은 2차 저장 매체에 기록된 디지털 정보에 따른 음향과 영상의 재생을 포함하는 엔터테인먼트(entertainment) 처리를 실행할 수 있는 엔터테인먼트 장치에 관한 것이다. 특히, 엔터테인먼트 장치에 접속된 주변 장치를 제어하는 기법에 관한 것이다.
도 1은 본 발명의 바람직한 실시형태에 따른 엔터테인먼트 장치의 하드웨어 구조를 도시한 다이아그램;
도 2는 본 발명의 바람직한 실시형태에 따른 커널의 구조를 설명하는 다이아그램;
도 3은 작동이 응용에서부터 제어기로 발생될 때 처리 절차를 설명하는 다이아그램;
도 4는 대기 행렬을 통해 데이터 교환에 대한 처리 절차를 설명하는 다이아그램; 및
도 5는 제어기에서 발생된 데이터가 어플리케이션으로 전송될 때 처리 절차를 설명하는 다이아그램; 이다.
그러므로, 본 발명의 목적은 선행 기술에 있는 불편한 점을 하나 이상 제거할 수 있는 개선된 기술을 제공하는 것이다.
본 발명의 한 양상에 따르면, 실행시 주변 장치를 작동하는 프로그램 코드들을 커널 외부에 저장하는 저장 수단들; 주변 장치를 접속시키는 장치 접속 수단들; 및 장치 접속 수단들에 접속되어 작동 가능하게 되는 주변 장치를 사용한 엔터테인먼트 처리를 실행하는 커널 크리에이터(creator);를 포함하는 엔터테인먼트 장치가 형성된다. 여기서, 커널 크리에이터는 주변 장치가 작동되도록 제어 수단들에 의해 원격 절차 호출(remote procedure call)에 의거한 프로그램 코드들을 실행하도록 한다.
원격 절차 호출은 엔터테인먼트 처리 프로그램의 부분의 실행, 즉, 프로그램에 포함된 특정 절차의 실행이 다른 실행 수단들로 위탁되고, 그 실행 결과는 보통의 절차 호출에서와 같은 리턴(return)값으로서 회귀되는 기술이다. 본 발명에서, 주변 장치를 제어하는 프로그램 코드들은 커널 외부에 저장되고, 제어 수단들(예를 들면, CPU에서부터 따로 형성된 주변 장치 제어 전용 프로세서)은 엔터테인먼트 처리 프로그램이 커널 크리에이터에 의해 실행되는 동안 특정 절차를 실행하게 된다. 제어 수단들은 프로그램 코드들을 판독하여, 프로그램 코드들을 실행하고, 주변 장치를 작동하게 한다. 이러한 배열로, 주변 장치의 프로그램 코드들은 커널 외부뿐만이 아니라, 커널에 의해 관리되는 하드웨어 리소스들(hardware resources; 예를 들면, CPU와 메모리)의 외부에 놓일 수 있다. 이것은 하드웨어 리소스들의 작동 효율을 개선하여 전체 장치의 처리 속도를 증가시킬 수 있다. 그러므로, 그러한 장치는 실시간 처리를 순간적으로 요구하는 고속 처리라도 달성할 수 있다.
커널 크리에이터는 원격 절차 호출에 의거하여, 직접 기억(direct memory access)을 통해서 제어 수단들이 저장 수단들로부터 프로그램 코드들을 읽게 하고, 프로그램 코드들의 실행 결과를 전송하게 한다. 직접 기억을 실행하는 것은 다양한 방식으로 채택될 수 있다. 대기 행렬(queue)은 커널 크리에이터와 주변 장치 사이에 형성되고, 제어 수단들은 제 1직접 기억에 의거하여 대기 행렬과 주변 장치 사이에 데이터 교환을 수행하고, 커널 크리에이터와 제 1직접 기억과 비동기인 제 2직접 기억에 의거하여 대기 행렬 사이의 데이터 교환을 수행하는 것이 바람직하다. 이러한 배열에서, 엔터테인먼트 처리가 실행되는 동안조차도 대기 행렬로 정보를 저장하는 것이 가능하다.
더욱이, 직접 기억에 의거한 원격 절차 호출을 실행함으로서, 주변 장치로부터 커널 크리에이터로 정보를 직접 전송하는 것이 가능하다. 이것은 선행 기술에서 그와는 다르게 문제가 되어 왔던 정보를 복사하고 전송하는 시간의 수를 줄일 수 있다.
제 1직접 기억에 의한 데이터 교환과 제 2직접 기억에 의한 데이터 교환은 최소한의 장치에서 흔히 사용되는 통신 프로토콜(protocol)에 따라 실행되도록 배열될 수 있다. 이러한 배열에서, 실시간 처리는 더욱 확실하게 된다. 통신 프로토콜에서처럼, 예를 들어, 이터넷(Ethernet)에서 사용되는 일반 목적 프로토콜이 사용될 수 있다. 따라서, 일종의 주변 장치에 제한을 받지 않는 장치의 제어가 실현될 수 있다. 더욱이, 주변 장치들의 프로그램 코드들의 양립성이 더욱 확실하게 된다.
주변 장치는 장치 접속 수단들과 분리 가능하게 접속되고, 제 2저장 매체를 포함하도록 배열될 수 있다. 여기에서, 프로그램 코드들의 실행에 사용되는 데이터는 제 2저장 매체에 저장되고, 제 2저장 매체에 저장된 데이터는 프로그램 코드들의 실행에 직접 기억을 통한 커널 크리에이터로 전송된다.
본 발명의 다른 양상에 따르면, 접속되어 있는 주변 장치를 제어하는 엔터테인먼트 장치 내부에 커널 기능 실현 메카니즘이 형성된다. 상기 엔터테인먼트 장치는 프로그램 코드들의 실행을 통해 작동될 수 있는 주변 장치를 사용한 엔터테인먼트 처리 실행용 커널 크리에이터를 포함한다. 여기서, 프로그램 코드들은 커널 외부에 저장되고, 커털 크리에이터는 주변 장치가 작동되도록 제어 수단들이 원격 절차 호출에 의거한 프로그램 코드들을 실행하게 한다.
주변 장치로부터 커널 크리에이터로 어드레스(address)된 최소한 데이터 전송은 직접 기억에 의해 실행되도록 배열될 수 있다.
데이터 전송은 장치에 보통 사용되는 통신 프로토콜에 따라 실행되도록 배열될 수 있다.
본 발명의 또 다른 양상에 따르면, 엔터테인먼트 장치와 접속되어 있는 주변 장치를 제어하는 제어 방법을 형성하는 것이다. 상기 엔터테인먼트 장치는 접속되어 있는 프로그램 코드들의 실행을 통해 작동되는 것이 가능한 주변 장치를 사용한 엔터테인먼트 처리 실행용 커널 크리에이터를 포함한다. 여기서, 프로그램 코드들은 커널 외부에 저장되고, 커널 크리에이터는 주변 장치가 작동되도록 컨트롤 수단들이 원격 절차 호출에 의거한 프로그램 코드들을 실행하게 한다.
적어도 주변 장치로부터 커널 크리에이터로 어드레스된 데이터 전송은 직접 기억에 의해 실행되도록 배열될 수 있다.
데이터 전송은 장치에 보통 사용된 통신 프로토콜에 따라 실행되도록 배열될 수 있다.
본 발명의 또 다른 양상에 따르면, 커널 외부에 저장된 프로그램 코드들을 실행하는 제어 수단들과 프로그램 코드들의 실행을 통해 작동될 수 있는 주변 장치를 접속시키는 장치 접속 수단들을 포함하는 엔터테인먼트 장치에는, 주변 장치가 작동될 수 있도록 제어 수단들이 원격 절차 호출에 의거한 프로그램 코드들을 실행하게 하게 하고, 작동될 수 있는 주변 장치를 사용하는 엔터테인먼트 처리를 실행하게 하는 커널 크리에이터를 포함하는 반도체 장치가 형성된다.
본 발명의 또 다른 양상에 따르면, 커널 외부에 저장된 프로그램 코드들을 실행하는 제어 수단들과 프로그램 코드들의 실행을 통해 작동될 수 있는 주변 장치를 접속하는 장치 접속 수단들을 포함하는 엔터테인먼트 장치로서의 컴퓨터를 작동하는 컴퓨터 프로그램이 형성되고, 이러한 컴퓨터 프로그램은 엔터테인먼트 장치가 주변 장치가 작동될 수 있도록 제어 수단들이 원격 절차 호출에 의거하는 프로그램 코드들을 실행하게 하는 단계와, 작동되는 주변 장치를 사용한 엔터테인먼트 처리를 실행하게 하는 단계를 실행하게 한다.
본 발명은 첨부된 도면들과 같이 하여, 아래 주어진 상세한 설명으로부터 보다 더 이해될 것이다.
본 발명에 따른 엔터테인먼트 장치의 바람직한 실시형태를 아래 첨부된 도면들을 참조하여 설명하겠다.
<엔터테인먼트 장치의 구조>
도 1은 본 발명에 따른 엔터테인먼트 장치의 구조를 도시한다.
엔터테인먼트 장치는 예를 들어 게임 장치로서 사용될 수 있는 일종의 컴퓨터이다. 엔터테인먼트 장치는 메인 버스(main bus; MB)와 대기 행렬(1)에 형성된 중앙 버스(center bus; CB)를 통하여 접속된 서브 버스(sub-bus; SB)를 포함한다. 엔터테인먼트 장치는 메인 버스(MB)와 서브 버스(SB)에 접속된 다양한 기능 실현 요소들을 더 포함한다.
메인 버스(MB)는 CPU(2), 메모리(3), 영상 프로세서(4), 및 제 2DMAC(direct memory access controller; 5)와 접속된다. 서브 버스(SB)는 디스크 드라이브(disk drive; 6), I/O 프로세서(7), 음향 프로세서(8), 보안 모듈(security module; 9), 제 1DMAC(10), 제어기(11), 메모리 카드(12), 및 ROM(13)과 접속된다.
CPU(2)는 마이크로프로세서(microprocessor)를 포함하는 반도체 장치이다. 마이크로프로세서는 엔터테인먼트 장치의 전 작동을 제어하고, 게임 처리의 실행에 필요한 다양한 데이터에 의거한 음향 및 영상 재현을 포함하는 엔터테인먼트 처리의 예로서 게임 처리의 실행을 가능하게 한다. 더욱이, 엔터테인먼트 장치를 작동할 때, 마이크로프로세서는 서브 버스(SB)와 접속된 ROM(13)에서부터의 부트(boot) 프로그램을 판독하여 커널을 생성하기 위한 OS를 실행한다.
메모리(3)는 RAM을 포함하고, CPU(2)의 작동 영역을 제공한다. 제 2저장 매체(M)로부터 판독된, 프로그램 코드들과 게임 처리용 데이터와 같은 디지털 정보는 메모리(3)로 기록된다.
이러한 실시형태에서, 프로그램 코드들과 주변 장치들을 제어하는데 필요한 데이터는 메모리(3)에 기록되지 않는데, 이것은 나중에 설명하겠다. 다음의 설명에서, 게임 처리 프로그램 코드들과 주변 장치 제어 프로그램 코드들 사이를 구별하는 것이 필요하다면, 전자는 "어플리케이션(application)"이라고 하고, 후자는 "장치 드라이버"라 하겠다.
메모리(3)에 저장된 디지털 정보에 의거하여, 영상 프로세서(4)는 CPU(2)와 함께, 디스플레이 유닛(display unit; 도시되지 않음) 상의 영상들, 즉, 게임 캐릭터(character)들과 다른 것들을 표현하는 폴리곤 데이터(polygon data) 및 폴리곤 데이터의 색 정보를 포함하는 텍스쳐 데이터(texture data)와 같은 영상들을 디스플레이 하는데 필요한 영상 데이터를 생성한다. 상세하게, 영상 프로세서(4)는 메모리(3)에 저장된 디지털 정보 중에서부터 게임 처리를 하는 동안 판독된 데이터의 좌표 변환을 실행하는 기하 처리 유닛, 기하 처리의 내용을 디코딩(decoding)하는 디코더(decoder), 기하 처리를 통해 획득된 그래프 또는 그림 데이터에 의거한 프레임 당 앞의 영상 데이터를 생성하는 랜더링 유닛, 및 디스플레이 유닛에 생성된 영상 데이터를 디스플레이하는 메카니즘을 포함한다.
대기 행렬(1)은 메인 버스(MB)와 서브 버스(SB) 사이에 교환된 정보, 즉, RPC(remote procedure call)에 의거한 I/O 프로세서(7)에 의해 실행된 주변 장치의 제어에 사용되는 다양한 명령들과 데이터를 임시로 저장한다. 이러한 실시형태에서, 대기 행렬(1)은 예를 들어, 메모리(3)와 I/O 프로세서(7) 사이, 메모리(3)와 제어기(11) 또는 메모리 카드(12) 사이, 또는 이러한 장치들과 다른 장치들 사이에서 교환된 정보를 임시로 저장한다.
디스크 드라이버(6)는 그 안의 CD-ROM, DVD-ROM과 같은 제 2저장 매체(M)를 수용하여, 제 2저장 매체(M)로부터의 디지털 정보, 즉, 어플리케이션과 데이터를 판독한다. 어플리케이션은 게임의 진행을 제어하고, 게임의 진행에 따른 음향들과 영상들을 재생하는 프로그램 코드들을 나타내고, 반면에, 데이터는 음향들과 영상들을 재생하는데 사용되는 데이터를 나타낸다. 이 실시형태에서, 어플리케이션과 데이터는 압축되고, 부분적으로 암호화된 후에 제 2저장 매체(M)에 기록된다. 또는, 암호화는 모든 압축된 어플리케이션과 데이터에 적용될 수 있다.
I/O 프로세서(7)는 제 2저장 매체(M)로부터 어플리케이션과 데이터를 판독하기 위하여 디스크 드라이브(6)를 제어하는 반도체 장치이고, 판독된 디지털 정보를 보안 모듈(module; 9)과 함께 디코딩과 확장을 더 실행한다. I/O 프로세서(7)의 이러한 기능들을 실현하는 프로그램(제어 프로그램)은 예를 들어, ROM(13)에 저장되고, I/O 프로세서(7)는 엔터테인먼트 장치의 시작에 따라 상술한 프로그램을 실행한다.
보안 모듈(9)은 엔터테인먼트 장치의 보안을 확보하는 기능의 전용 프로세서와 메모리를 가진 단일 반도체 칩의 형태 내에 있다. 보안 모듈(9)은 I/O 프로세서(7)가 디지털 정보를 디코딩하는데 필요한 디코딩 키들(decoding keys)을 확보한다. I/O 프로세서(7)가 디지털 정보의 디코딩을 실행할 때, 보안 모듈(9)은 필요한 디코딩 키를 I/O 프로세서(7)로 보낸다. 이러한 실시형태에서, 보안 모듈(9)은 암호화된 디지털 정보의 디코딩을 독립적으로 실행하도록 배열된다.
음향 프로세서(8)는 확성기(도시되지 않음)와 접속된다. 음향 프로세서(8)는 I/O 프로세서(7) 또는 제 1DMAC(10)에서부터 보내어지고, 음향 데이터를 생성하기 위해 음향 프로세서(8) 내부에 형성된 음향 메모리(도시되지 않음)에서부터 보내어진 음향 명령에 해당하는 데이터를 판독하여, 생성된 데이터를 확성기로 출력한다. 이러한 응답에서, 확성기는 게임 또는 BGM 음향용의 음향 효과, 또는 음향 프로세서(8)의 제어 하의 영상용 등과 같은 것들을 생산한다.
제어기(11)와 메모리 카드(12)는 엔터테인먼트 장치로 접속된 주변 장치의 예이다. 상세하게, 제어기(11)와 메모리 카드(12)는 각 입력 단자들(도시되지 않음)을 통해 서브 버스(SB)와 접속된다. 각 제어기(11)와 메모리 카드(12)는 해당 장치 드라이버의 실행을 통해 작동하게 된다. 이러한 실시형태에서, 서브 버스(SB)는 앞서 말한 입력 단자와 서브 버스(SB)의 제어 메카니즘(도시되지 않음)과 함께 장치 접속 수단들을 형성한다.
제어기(11)는 게임 플레이어(player)의 의도를 엔터테인먼트 장치로 입력하는 입력 장치이다. 예를 들어, 제어기(11)는 커서(cursor)를 위, 아래, 우측, 좌측 방향으로 이동하려는 요청을 입력하거나 특정 처리의 실행의 요청을 입력하도록 작동된다.
메모리 카드(12)는 주어진 크기의 카드에 넣어진 플래시 메모리(flash ROM)를 포함한다. 어떤 게임이 게임의 진행 동안 기록 가능한 게임 데이터를 생성하는 형태일 때, 게임 플레이어는 메모리 카드(12)를 사용하여 게임의 중단 또는 게임의 종료에 그 게임 데이터를 기록한다. 메모리 카드(12) 또는 메모리 카드(12)에 덧붙여지는 것 대신에, 플래시 메모리가 제어기(11)에 일체화될 수 있다.
제 1DMAC(10)와 제 2DMAC(5)는 I/O 프로세서(7)가 DMA(direct memory access)에 의한 RPC를 행하는 것을 가능하게 하도록 함께 작동한다.
제 1DMAC(10)는 적어도 제어기(11) 및/또는 메모리 카드(12)와 대기 행렬(1) 사이에 교환된 정보의 판독과 기록을 제어한다. 제 2DMAC(5)는 적어도 메모리(3)와 대기 행렬(1) 사이에 교환된 정보의 판독과 기록을 제어한다.
이러한 실시형태에서, 2개의 DMAC들은 버스들의 수와 일치하도록 형성된다. 그러나, 제 1DMAC(10)와 제 2DMAC(5)는 하나의 제어 모듈에 의해서 실현될 수 있다.
<커널 기능 실현 메카니즘>
본 실시형태에서, 실시된 어플리케이션으로부터 제어기(11)로의 모든 요청들은 DMA를 통한 RPC에 의거하여 실행된다. 이러한 목적으로, 제어기(11)를 작동하기 위해 필요한 장치 드라이버는 제 2저장 매체(M), 메모리 카드(12)의 플래시 메모리, 또는 ROM(13)과 같은 커널 외부의 저장 수단들에 저장되고, 어플리케이션의 실행동안 I/O 프로세서(7)에 의해 실행되는 것이 가능하게 한다. 이러한 실시형태에서, 장치 드라이버는 ROM(13)에 저장된다.
도 2는 본 발명에 따른 커널의 구조를 도시한다. 상세하게, 커널은 임무 관리의 기능과 중단 제어를 실행하는 기능이 내부에 형성된다. 이러한 형태의 종래의 엔터테인먼트 장치의 커널(마이크로커널을 배제하고)은 주변 장치들의 장치 드라이버들이 그 내부에 형성된다. 반면에, 본 실시형태에서, 주변 장치들의 장치 드라이버들은 커널 외부의 저장 수단들, 즉, ROM(13)에 저장된다. 제어기(11)와 같은 주변 장치의 제어가 필요하게 될 때, CPU(2)는 I/O 프로세서(7)가 ROM(13)에서부터 해당 장치 드라이버를 판독해서, RPC를 통해 그를 실행한다. 이것은 제어기(11)를 작동 가능하게 한다. 주변 장치가 RPC에 의거하여 제어될 때, 제어의 결과는 소위 리턴 값으로서 커널로 전송된다. 이러한 실시형태에서, 이러한 이전은 DMA에 의해서 실행되므로, 주변 장치의 고속 제어를 달성할 수 있게 한다.
<커널에 의한 주변 장치 제어>
앞서의 커널 기능 실현 메카니즘을 가진 엔터테인먼트에서 주변 장치 제어 방법을 도 3 ~ 도 5를 참조하여 설명하겠다.
지금부터, 커널의 다양한 기능들 중에, 주변 장치의 작동을 제어하는 기능을 설명하겠다. 다음 설명에서, 주변 장치들은 제어기(11)라고 가정한다. 그러나, 다음 설명은 다른 주변 장치들에게도 또한 적용될 수 있다. RPC는 전용 통신 프로토콜을 사용하는 것뿐만 아니라, 엔터테인먼트 장치에서 흔히 사용되는 통신 프로토콜을 사용함으로서 실행된다.
(어플리케이션→제어기(11): 도 3 및 도 4)
도 3에 도시된 것처럼, CPU(2)가 프로그램 코드들에 의거한 어플리케이션과 메모리(3)에 저장된 데이터를 실행하는 동안(단계 S101), 제어기(11)로의 어떤 동작이 요구되면, 어플리케이션은 RPC 요청을 만든다(단계 S102). 예를 들어, 제어기(11)가 이러한 진동 생성 메카니즘에 형성되고, 이러한 진동 제어 메카니즘이 게임의 주어진 장면에서 엔터테인먼트 효과를 높이는데 작동하는 것이 필요하다면, 어플리케이션은 진동 생성 메카니즘을 작동하는데 필요한 정보를 제공한다. 이러한 정보는 메모리(3)에서부터 대기 행렬(1)까지 DMA를 통해 제 2DMAC(5)에 의해 전송되어, 대기 행렬(1)에 임시로 저장된다(단계 S103 및 S104).
도 4에 대해 말하면, I/O 프로세서(7)는 대기 행렬(1)에 저장된 정보에 기초한 ROM(13)으로부터 제어기(11)의 장치 드라이버를 구하여, 그것을 실행한다(단계 S105 및 S106). 따라서, 어플리케이션에서부터의 요구는 CPU(2)를 통해 지나감 없이 제어기(11)로 전송된다(단계 S107).
(제어기(11)→어플리케이션: 도 4 및 도 5)
도 4에서, 제어기(11)에서 발생된 데이터는 제 1DMAC(10)을 경유하여 대기 행렬(1)에 임시로 저장된다(단계 S201 및 S202). 데이터는 예를 들어, 제어기(11)를 사용한 게임 플레이어에 의해 입력된 그러한 데이터나 또는 아날로그와 디지털 입력들이 둘 다 사용될 수 있을 때, 이 둘이 입력된 데이터가 제어기(11)에서 사용되는 그러한 데이터를 포함한다.
도 5를 참조하여, 대기 행렬(1)에 저장된 데이터는 주어진 타이밍(timing)에서 제 2DMAC(5)에 의해 판독되고, 메모리(3)로 전송된다(단계 S203). 제 2DMAC(5)는 데이터가 메모리(3)에 저장된 것을 CPU(2)에게 알린다(단계 S204 및 S205). CPU(2)는 어플리케이션의 순차적 실행을 위한 데이터로서 메모리(3)에 저장된 데이터를 사용한다(단계 S206). 예를 들어, 우측으로 이동하라는 키 입력이 제어기(11)에서 발생하였을 때, 디스플레이 유닛에 디스플레이된 주어진 캐릭터는 우측으로 이동된다.
앞서의 방식에서, 어플리케이션에서부터 제어기(11)로의 요구 전송과 제어기(11)에서부터 어플리케이션으로의 데이터의 전송은 DMA를 사용하여 용이하게 실현될 수 있다. 이 경우에, 요구와 데이터는 CPU(2)에 의해 직접이 아니라도 메모리(3)에 전송되어 저장될 수 있다. RPC는 병렬 프로그래밍과 매우 유사성을 가진 메카니즘이다. 그러므로, CPU(2)는 I/O 프로세서(7)로부터 오랫동안 응답을 기다릴 필요가 없다. 이것은 I/O 프로세서를 가진 많은 시스템에서 문제이었던 정보의 복사와 전송의 시간 수를 줄여서, CPU(2)의 높은 작동 비율을 달성할 수 있다.
상술한대로, 본 발명에 따른 엔터테인먼트 장치에서, 제어기(11)를 사용하여 엔터테인먼트 처리가 실행될 때, 제어기(11)용 장치 드라이버는 RPC를 통해 실행된다. 이것은 커널 외부뿐만이 아니라, 커널에 의해 관리되는 리소스들의 외부(CPU(2)와 메모리(3))도 엔터테인먼트 처리의 실행 효율이 개선되도록 위치하는 것이 가능하게 한다.
더욱이, RPC는 DMA를 통해 실행되므로, 제어기(11)로부터 메모리(3)로의 직접 데이터 전송은 데이터 복사 시간의 수를 줄이고 CPU(2)에서 전송하는 것이 달성될 수 있다.
더욱이, 제어기(11)와 대기 행렬(1) 사이의 데이터 교환과 대기 행렬(1)과 CPU(2; 커널) 사이의 데이터 교환은 상호 비동기인 DMA들을 통해 실행되기 때문에, 어플리케이션으로부터 요구의 발생과 제어기에서 데이터 생성의 발생 사이에 일어나는 어느 정도의 시간 지체가 원인이 되더라도, 데이터 교환은 그 사이에서 안정하게 실행될 수 있다. 더욱이, 데이터 교환이 장치에서 흔히 사용되는 통신 프로토콜에 의거하여 실행되기 때문에, 일종의 장치 드라이버의 상관없는 장치의 제어가 실현될 수 있다.
본 발명이 바람직한 실시형태에 관해서 설명되었을지라도, 본 발명은 이에 제한되는 것은 아니고, 부기된 청구항들에서 정의된 것처럼 본 발명의 원리를 벗어남이 없이 다양한 방식으로 실시될 수 있다.
앞의 서술에서는, 도 1에 도시된 것과 같은 엔터테인먼트 장치에 의해 달성된 특성 있는 커널 기능 실현 메카니즘과 이 커널 기능 실현 메카니즘을 사용한 주변 장치 제어 방법을 설명하였다. 반면, 본 발명은 컴퓨터 프로그램(어플리케이션과 장치 드라이버들)이 OS로 인스톨(install)된 일반 목적의 컴퓨터에서 판독되는 경우에도 앞서의 커널 기능 실현 메카니즘과 주변 장치 제어 방법이 달성되도록 또한 적용될 수 있다. 더욱이, 앞서의 커널 기능 실현 메카니즘과 주변 장치 제어 방법은 OS로 인스톨된 일반 목적의 컴퓨터와 하나 이상의 반도체 장치들과의 일체화가 또한 달성될 수 있다. 반도체 장치는 프로세서를 포함하고, 프로세서로 요구된 기능들을 제공하는 프로그램으로 인스톨된다.

Claims (13)

  1. 실행시에 커널(kernel) 외부에 주변 장치를 작동하게 하는 프로그램 코드들을 저장하는 저장 수단들;
    상기 주변 장치를 접속시키는 장치 접속 수단들; 및
    상기 장치 접속 수단들에 접속되어 작동 가능하게 되는 상기 주변 장치를 이용하는 엔터테인먼트 처리를 실행하는 커널 크리에이터(kernel creator);를 포함하고,
    상기 커널 크리에이터는 제어 수단들이 원격 절차 호출에 의거한 상기 프로그램 코드들을 실행하도록 하여 상기 주변 장치가 작동되도록 하는 것을 특징으로 하는 엔터테인먼트 장치.
  2. 제 1항에 있어서, 상기 커널 크리에이터는, 상기 원격 절차 호출에 의거하여, 상기 제어 수단들이 직접 기억을 통해 상기 저장 수단들로부터 상기 프로그램 코드들을 판독하고 상기 프로그램 코드들의 실행 결과를 전송하도록 하는 것을 특징으로 하는 엔터테인먼트 장치.
  3. 제 2항에 있어서, 상기 커널 크리에이터와 상기 주변 장치 사이에 형성된 대기 행렬(queue)을 더 포함하고,
    상기 제어 수단들은 제 1직접 기억에 의거하여 상기 주변 장치와 대기 행렬사이에 데이터 교환을 실행하고, 상기 제 1직접 기억과 비동기인 제 2직접 기억에 의거하여 상기 커널 크리에이터와 상기 대기 행렬 사이에 데이터 교환을 실행하는 것을 특징으로 하는 엔터테인먼트 장치.
  4. 제 3항에 있어서, 상기 제 1직접 기억에 의한 상기 데이터 교환과 상기 제 2직접 기억에 의한 상기 데이터 교환은 상기 장치에서 보통 사용되는 통신 프로토콜(protocol)에 따라 실행되는 것을 특징으로 하는 엔터테인먼트 장치.
  5. 제 1항에 있어서, 상기 접속 수단들과 분리 가능하게 접속된 상기 주변 장치는 2차 저장 매체를 포함하고,
    상기 프로그램 코드들의 실행에 사용되는 데이터는 상기 2차 저장 매체에 저장되고,
    상기 2차 저장 매체에 저장된 상기 데이터는 상기 프로그램 코드들의 실행 동안 직접 기억을 통해 커널 크리에이터로 전송되는 것을 특징으로 하는 엔터테인먼트 장치.
  6. 엔터테인먼트 장치에 접속되어 있는 주변 장치를 제어하기 위해 상기 엔터테인먼트 장치 내에 형성되는 커널 기능 메카니즘으로서,
    상기 엔터테인먼트 장치는 프로그램 코드들의 실행을 통해 작동 가능하게 되는 주변 장치를 이용하는 엔터테인먼트 처리를 실행하는 커널 크리에이터를 포함하고,
    상기 프로그램 코드들은 커널 외부에 저장되고, 상기 커널 크리에이터는 제어 수단들이 원격 절차 호출에 의거한 상기 프로그램 코드들을 실행하도록 하여 상기 주변 장치가 작동되도록 하는 것을 특징으로 하는 커널 기능 실현 메카니즘.
  7. 제 6항에 있어서, 상기 주변 장치로부터 커널 크리에이터로 어드레스(address)된 최소한의 데이터 전송도 직접 기억에 의해 실행되는 것을 특징으로 하는 커널 기능 실현 메카니즘.
  8. 제 7항에 있어서, 상기 데이터 전송은 상기 엔터테인먼트 장치에서 보통 사용되는 통신 프로토콜에 따라 실행되는 것을 특징으로 하는 커널 기능 실현 메카니즘.
  9. 엔터테인먼트 장치와 접속되어 있는 주변장치 제어 방법으로서,
    상기 엔터테인먼트 장치는 프로그램 실행을 통해 작동 가능하게 되는 주변 장치를 이용한 엔터테인먼트 처리를 실행하는 커널 크리에이터를 포함하고,
    상기 프로그램 코드들은 커널 외부에 저장되고, 상기 커널 크리에이터는 상기 제어 수단들이 원격 절차 호출에 의거한 상기 프로그램 코드들을 실행하도록 하여 상기 주변 장치가 작동되도록 하는 것을 특징으로 하는 주변 장치 제어 방법.
  10. 제 9항에 있어서, 상기 주변 장치로부터 커널 크리에이터로 어드레스된 최소한의 데이터 전송도 직접 기억에 의해 실행되는 것을 특징으로 하는 제어 방법.
  11. 제 10항에 있어서, 상기 데이터 전송은 상기 장치에서 보통 사용되는 통신 프로토콜에 따라 실행되는 것을 특징으로 하는 제어 방법.
  12. 커널 외부에 저장된 프로그램을 실행하는 제어 수단들 및 상기 프로그램 코드들의 실행을 통해 작동 가능하게 되는 주변 장치를 접속시키는 장치 접속 수단들을 포함하는 엔터테인먼트 장치 내부에서, 반도체 장치는
    상기 제어 수단이 원격 절차 호출에 의거한 상기 프로그램 코드들을 실행하게 하여 상기 주변 장치가 작동하도록 하고, 작동 가능하게 된 상기 주변 장치를 사용한 엔터테인먼트 처리를 실행하는 커널 크리에이터를 포함하는 것을 특징으로 하는 반도체 장치.
  13. 커널 외부에 저장된 프로그램 코드들을 실행하는 제어 수단들 및 상기 프로그램 코드들의 실행을 통해 작동 가능하게 된 주변 장치를 접속시키는 장치 접속 수단들을 포함하는 엔터테인먼트 장치로서의 컴퓨터를 작동시키는 컴퓨터 프로그램은,
    상기 제어 수단들이 원격 절차 호출에 의거한 상기 프로그램 코드들을 실행하게 하여 주변 장치가 작동되도록 하는 단계; 및
    작동 가능하게 된 주변 장치를 사용한 엔터테인먼트 처리를 실행하는 단계;를 상기 엔터테인먼트 장치가 실행하게 하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020017013977A 2000-03-02 2001-03-01 엔터테인먼트 장치, 주변 장치 제어 방법 및 컴퓨터 프로그램 기록 매체 KR100766670B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00058044 2000-03-02
JP2000058044 2000-03-02
JP2001052361A JP3696515B2 (ja) 2000-03-02 2001-02-27 カーネル機能実現構造及びそれを備えたエンタテインメント装置、カーネルによる周辺ディバイスの制御方法
JPJP-P-2001-00052361 2001-02-27
PCT/JP2001/001583 WO2001065356A2 (en) 2000-03-02 2001-03-01 Entertainment apparatus, control method and computer program with kernel function realizing mechanism

Publications (2)

Publication Number Publication Date
KR20020015037A true KR20020015037A (ko) 2002-02-27
KR100766670B1 KR100766670B1 (ko) 2007-10-11

Family

ID=26586680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017013977A KR100766670B1 (ko) 2000-03-02 2001-03-01 엔터테인먼트 장치, 주변 장치 제어 방법 및 컴퓨터 프로그램 기록 매체

Country Status (12)

Country Link
US (1) US6754724B2 (ko)
EP (1) EP1342155A2 (ko)
JP (1) JP3696515B2 (ko)
KR (1) KR100766670B1 (ko)
CN (1) CN1316386C (ko)
AU (1) AU3603401A (ko)
BR (1) BR0105552A (ko)
CA (1) CA2370632A1 (ko)
MX (1) MXPA01010827A (ko)
RU (1) RU2001129159A (ko)
TW (1) TW592760B (ko)
WO (1) WO2001065356A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP702498A0 (en) * 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART77)
JP2001318768A (ja) * 2000-03-02 2001-11-16 Sony Computer Entertainment Inc エンタテインメント装置及びその部品、エンタテインメント装置によるディジタル情報のローディング方法、コンピュータプログラム
US7089282B2 (en) * 2002-07-31 2006-08-08 International Business Machines Corporation Distributed protocol processing in a data processing system
JP2004326180A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Ind Co Ltd 集積回路、それを用いた画像入出力装置及び画像入出力方法
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
JP4405277B2 (ja) 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
US20070022225A1 (en) * 2005-07-21 2007-01-25 Mistletoe Technologies, Inc. Memory DMA interface with checksum
CN103036959B (zh) * 2012-12-07 2015-12-02 武汉邮电科学研究院 基于io解耦的分布式部署应用程序的实现方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066566C (en) * 1989-09-08 2001-12-25 David Hitz Multiple facility operating system architecture
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
EP0622731A3 (en) 1993-04-26 1995-02-15 Ibm Boot architecture for micro-core based systems.
US5983012A (en) * 1993-09-28 1999-11-09 Bull Hn Information Systems Inc. Executing programs of a first system on a second system
KR100272095B1 (ko) * 1996-07-30 2000-12-01 윤종용 실시간 운영체제의 커널 자동생성 시스템 및 방법
US6434459B2 (en) * 1996-12-16 2002-08-13 Microsoft Corporation Automobile information system
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US6298370B1 (en) * 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
JP3602293B2 (ja) 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses

Also Published As

Publication number Publication date
WO2001065356A3 (en) 2003-06-26
JP3696515B2 (ja) 2005-09-21
RU2001129159A (ru) 2003-07-20
WO2001065356A2 (en) 2001-09-07
CN1527974A (zh) 2004-09-08
AU3603401A (en) 2001-09-12
US20010054120A1 (en) 2001-12-20
CN1316386C (zh) 2007-05-16
US6754724B2 (en) 2004-06-22
JP2001318873A (ja) 2001-11-16
MXPA01010827A (es) 2002-04-24
BR0105552A (pt) 2002-03-19
TW592760B (en) 2004-06-21
CA2370632A1 (en) 2001-09-07
EP1342155A2 (en) 2003-09-10
KR100766670B1 (ko) 2007-10-11

Similar Documents

Publication Publication Date Title
KR100466903B1 (ko) 정보처리장치및정보처리방법
US5977997A (en) Single chip computer having integrated MPEG and graphical processors
US6219073B1 (en) Apparatus and method for information processing using list with embedded instructions for controlling data transfers between parallel processing units
US6175880B1 (en) Sound board emulation using digital signal processor
JPH1015244A (ja) 多機能の周辺処理サブシステムを備えた高性能/低価格のビデオゲームシステム
JP2008503015A (ja) 複数クライアントによる単一物理デバイスの共有
US20110161675A1 (en) System and method for gpu based encrypted storage access
NZ500071A (en) Electronic game controller with additional data input from portable information terminal
US6606689B1 (en) Method and apparatus for pre-caching data in audio memory
KR100766670B1 (ko) 엔터테인먼트 장치, 주변 장치 제어 방법 및 컴퓨터 프로그램 기록 매체
JP3964142B2 (ja) エミュレート装置及び部品、情報処理装置、エミュレーション方法、記録媒体、プログラム
JP2000066985A (ja) エンタテインメントシステム及びデータ供給方法、データ処理装置及び方法、並びにデータ記憶制御装置及び方法
JP2005107779A (ja) マルチシステム、データ格納部アクセス装置およびデータ格納部アクセス方法
JP2001318768A (ja) エンタテインメント装置及びその部品、エンタテインメント装置によるディジタル情報のローディング方法、コンピュータプログラム
JPH0830550A (ja) インターフェース装置、情報処理装置、情報処理システム及びデータ転送方法
US20020029311A1 (en) Device and method for controlling access to computer peripherals
JPH117504A (ja) メモリカード装置、ビデオゲーム装置
US6412024B1 (en) Sound board emulation using digital signal processor
JP3795580B2 (ja) 描画装置および描画方法
JP2001249804A (ja) 情報処理装置及び記録媒体
JPH08161438A (ja) ビデオゲーム装置
JP4409360B2 (ja) エミュレート装置及び部品、エミュレーション方法、記録媒体、プログラム
Zhang et al. Design of portable media player based on linux and MIPS-core au1200 processor
AU5012001A (en) Information processing apparatus and information processing method
JPH1185672A (ja) データ伝送装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150917

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170920

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 12