KR20000076408A - 컴퓨터 메모리 구성 - Google Patents

컴퓨터 메모리 구성 Download PDF

Info

Publication number
KR20000076408A
KR20000076408A KR1019997008512A KR19997008512A KR20000076408A KR 20000076408 A KR20000076408 A KR 20000076408A KR 1019997008512 A KR1019997008512 A KR 1019997008512A KR 19997008512 A KR19997008512 A KR 19997008512A KR 20000076408 A KR20000076408 A KR 20000076408A
Authority
KR
South Korea
Prior art keywords
buffer
pool
storing
buffer zone
address
Prior art date
Application number
KR1019997008512A
Other languages
English (en)
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
Priority claimed from PCT/EP1997/002112 external-priority patent/WO1998043248A1/en
Application filed by 삐에르 레꾸르, 까날 (쏘시에떼 아노님) filed Critical 삐에르 레꾸르
Publication of KR20000076408A publication Critical patent/KR20000076408A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2543Billing, e.g. for subscription services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42692Internal components of the client ; Characteristics thereof for reading from or writing on a volatile storage medium, e.g. Random Access Memory [RAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47805Electronic banking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Quality & Reliability (AREA)
  • Virology (AREA)
  • Computer Graphics (AREA)
  • Biomedical Technology (AREA)
  • Discrete Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Abstract

컴퓨터 시스템의 메모리에는, 다수의 버퍼 존들이 버퍼 관리 시스템에 의해 규정된다. 명령은 공공의 버퍼 존에 버퍼의 풀의 수 NP를, 그리고 각 풀에 대하여 각 풀내 버퍼 수의 풀 크기 PS 및 그 풀내 버퍼들의 크기 BS를 규정한다. 버퍼 관리 시스템은 각 버퍼 존에 대하여 버퍼 크기를 저장하고 그 풀의 크기를 누적 및 저장하기 위하여 초기화된다. 버퍼를 어드레스하기 위하여, 버퍼 관리 시스템은 저장된 정보를 이용하여, 바람직한 풀 및 버퍼 수로부터 버퍼의 스타트 어드레스를 결정한다. 버퍼 관리 시스템은 또한 각 버퍼의 처음에 헤더를 규정한다. 한계밖의 조건에 대한 체킹이 또한 제공될 수 있다. 각각의 다른 클라이언트에 의해 할당된 다양한 전용 버퍼 존들은 유사하게 규정될 수 있다.

Description

컴퓨터 메모리 구성{COMPUTER MEMORY ORGANIZATION}
“컴퓨터”란 용어는, 가령 디지털 텔레비젼용 수신기/디코와 같이, 처리 및 조종이 시스템의 주요 목적인지 또는 좀더 특정화된 특수화된 어떤 기능에 대하여 종속적 또는 부수적이든지 간에, 데이터의 처리 및 조종을 수행하는 시스템을 포함하는 총괄적인 의미로 이용된다는 것은 말할 나위도 없을 것이다. 그러나, 상기의 시스템 또는 그러한 타입의 시스템은 한정되는 것이 아니라 다양한 컴퓨터 시스템에 더 일반적으로 적용가능하다는 것은 말할 나위도 없을 것이다. 본 원에서 사용되는 바와 같이, “디지털 텔레비젼 시스템”은 예를 들어 모든 위성, 지상, 케이블 및 다른 시스템을 포함한다.
한정하려는 것은 아니지만 특히 위성 텔레비젼 시스템에서, 텔레비젼 신호를 주로 방송하고자 하는 디지털 전송 시스템의 출현은 상기 시스템을 다른 목적에 이용할 수 있는 가능성을 주었다. 이들 중 하나가 컴퓨터 파일 또는 소프트웨어를 최종 사용자에게 다운로딩할 수 있게 하는 것이다. 본 원에서 사용되는 바와 같이, “디지털 텔레비젼 시스템”이란 용어는 예를 들어 시청각 또는 멀티미디어 디지털 데이터를 전송 또는 방송하는 모든 전송 시스템을 포함한다. 본 발명이 특히 방송 디지털 텔레비젼 시스템에 적용가능하기는 하지만, 본 발명은 또한 멀티미디어 인터넷 애플리케이션들을 위한 고정 원격통신 네트워크 등에 적용가능할 수도 있다.
본 발명은 수신된 신호들이 수신기/디코더로, 그곳에서 부터 텔레비젼 세트로 전달되는 방송 디지털 텔레비젼 시스템에서 특정한 애플리케이션을 발견한다. 본 원에서 사용되는 “수신기/디코더”란 용어는, 엔코드된 또는 엔코드되지 않은 신호들, 예를 들어 텔레비젼 및/또는 라디오 신호들을 수신하기 위한 수신기를 의미할 수도 있다. 이 용어는 또한 수신된 신호들을 디코드하기 위한 디코더를 의미할 수도 있다. 이러한 수신기/디코더의 실시예들은 예를 들어 “셋탑 박스”에서 수신된 신호들을 디코딩하기 위하여 수신기와 함께 통합된 디코더, 또는 물리적으로 떨어진 수신기와 통합하여 작용하는 디코더를 포함할 수도 있다.
수신기/디코더는 압축된 MPEG-타입 신호를 텔레비젼 세트용 텔레비젼 신호로 디코드한다. 수신기/디코더는 수신기/디코더내의 인터페이스를 통하여 원격 제어기 핸드셋에 의해 제어된다. 수신기/디코더는 유입되는 비트 스트림을 처리하는 데에 이용되며, 시스템으로 하여금 다양한 제어 및 다른 기능들을 수행하게 하는 다양한 애플리케이션 모듈들을 포함하는 컴퓨터 시스템을 포함한다.
이러한 수신기/디코더는, 가령 사용자가 어떤 서비스들을 사용하게 되어 있는 지를 확인하기 위하여 사용자가 권한 카드를 통과시키는 카드 리더, 휴대용 TV 수신기 제어 원드, TV 디스플레이 유닛, 및 사용자가 홈 뱅킹 기능을 수행할 수 있도록 뱅크 카드와 함게 사용되는 제 2 카드 리더와 같이, 수신기/디코더에 결합된 다양한 디바이스들을 가질 수도 있다. 이는 또한, 예를 들어 인터넷을 액세스하고 홈 뱅킹 업무를 하기 위한 모뎀, 홈 컴퓨터 등과 같이 수신기/디코더에 결합된 다양한 포트들을 가질 수도 있다.
상기 설명한 인터액티비티(interactivity)를 제공하는 한 방법은 텔레비젼 신호가 수신되는 수신기/디코더 위에서 애플리케이션을 가동하는 것이다. 다양한 애플리케이션들이 명백한 방법으로 다양한 물리적인 디바이스들과 통신할 수 있게 하는 것이 바람직하다. 우리의 동시 계류중인 출원들 PCT/EP97/02115 및 PCT/EP97/02116은 하나 또는 그 이상의 애플리케이션들이 수신기/디코더에 의해 다운로드될 수 있으며, 각 디바이스에 대한 디바이스 드라이버 및 전체 디바이스 매니저에 의하여 수신기/디코더 내의, 가령 병렬 및 직렬 인터페이스와 스마트카드 리더와 같은 물리적인 디바이스들과 통신하는 장치를 설명한다.
수신기/디코더에, 가령 모뎀, 직렬 채널, 병렬 채널, MPEG(압축된 그리고 코드화된 비디오 신호) 채널, 스와이프(swipe) 카드 리더 등과 같은 여러가지의 다른 신호 채널들과 인터페이스하는 성능을 제공하는 것이 제시되었다. 수신기/디코더는 런 타임 엔진을 포함하는 가상 머신을 포함한다. 이 가상 머신은 다바이스 및 디바이스 드라이버에 의하여 다양한 채널들의 물리적인 인터페이스에 번갈아 결합되는 다비이스 매니저에 결합된다.
컴퓨터 시스템에서, 가령 디지털 테레비젼 또는 라디오용 수신기/디코더와 같이 좀 더 큰 시스템에 통합되는 특정한 시스템들의 메모리의 양은 종종 제한된다. 이는 시스템에 의하여 요구되는 다양한 기능들에 의한 메모리 공간의 이용이 최소화될 수 있도록 메모리가 구성되어야 함을 의미한다. 또한, 메모리 중의 적어도 몇 부분들을 액세스하는 데에 걸리는 시간을 최소화하는 것이 필요할 수도 있다.
본 발명은 특히 메모리내 버퍼의 제공 및 구성에 관련된다.
버퍼들을 제공하기 위한 종래의 기술은 필요한 버퍼들을 할당하는 동적 시스템에 의하여 이루어진다. 그러나, 본 발명의 내용에서, 이러한 표준 시스템은 어떠한 단점들을 갖는다. 이는 메모리의 단편화(fragmentation)를 일으키며, 그 속도는 오버헤드 동작의 요구에 의해 제한된다. 또한, 만일 버퍼의 확장이 요구된다면, 확장을 위한 공간을 생성하기 위하여 메모리 블록들의 이동을 요구할 수도 있다.
본 발명은 컴퓨터에 관한 것으로, 특히 버퍼링 목적을 위한 메모리 영역의 분할에 관한 것이다.
도 1은 수신기/디코더 인터페이스의 구성도이다.
도 2는 수신기/디코더의 기능적인 블록도이다.
도 3은 수신기/디코더의 다른 메모리 유닛들과 RAM 메모리의 관계를 나타낸 단순화된 구성도이다.
도 4는 RAM 메모리의 일부분의 구성도이다.
도 5는 세트_버퍼_아웃라인 명령의 구조를 도시한다.
도 6은 메모리 관리 유닛의 구성도이다.
도 7은 RAM 메모리의 구성의 변형된 형태의 구성도이다.
도 8은 도 7의 메모리 구성을 위한 메모리 관리 유닛의 간략화된 구성도이다.
도 9a 내지 도 9c는 버퍼의 사용이 다른 클라이언트 및 디바이스에 관계되는 방법을 도시한다.
따라서, 본 발명은 컴퓨터 시스템의 메모리 내의 버퍼 존에 버퍼들을 규정하고 어드레싱하기 위한 버퍼 관리 시스템을 제공하며, 이는:
다수의 풀(pool)의 크기를 저장하기 위한 풀 크기 저장 수단;
각 풀에 대하여 버퍼의 크기를 저장하기 위한 버퍼 크기 저장 수단; 및
바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하기 위한 계산 수단을 포함한다.
본 발명은 또한 컴퓨터 시스템의 메모리 내의 다수의 버퍼 존 내에 버퍼들을 규정하고 어드레싱하기 위한 버퍼 관리 시스템을 제공하며, 이는 각 버퍼 존에 대하여,
다수의 풀 크기를 저장하기 위한 풀 크기 저장 수단;
각 풀에 대하여 버퍼의 크기를 저장하기 위한 버퍼 크기 저장 수단; 및
바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하기 위한 계산 수단을 포함한다.
효율성 및 단순한 관리를 위하여, 모든 버퍼 존은 별개의 고정 크기를 갖는 버퍼들로 분배되며, 동일한 크기의 버퍼들은 버퍼 풀 내에 그룹을 이룬다. 버퍼 관리 시스템은 필요한 애플리케이션들에 버퍼들을 할당할 수 있으며, 각각 메모리를 필요로 하는 애플리케이션들간의 충돌을 피할 수 있게 한다.
바람직하게는, 누적된 형태의 풀 크기를 결정하고 이들을 그 형태로 풀 크기 저장 수단에 저장하기 위한 수단이 더 포함된다. 지정된 영역은 각 풀의 처음에 규정될 수도 있으며, 누적된 풀 크기를 직접 선택하거나 계산 수단의 출력을 선택하기 위한 수단이 제공된다. 바람직한 풀의 수, 바람직한 버퍼의 수, 및 바람직한 바이트는 제한 구역 밖의 값에 대해서도 체크될 수도 있다.
바람직하게는, 다른 버퍼 존의 오버랩을 검출하기 위한 수단이 포함된다.
시스템은 또한 버퍼 존의 스타트 어드레스를 저장하기 위한 수단과, 버퍼 존의 엔드 어드레스를 저장하기 위한 수단; 및 저장 수단으로부터 각 버퍼 존의 스타트 어드레스 및 엔드 어드레스를 수신하기 위한 수단 및 버퍼 존의 스타트 어드레스가 이전 버퍼 존의 엔드 어드레스보다 큰지를 결정하기 위한 수단을 포함하는 오버랩 검출 수단을 포함할 수도 있다.
본 발명은 또한 상기 설명된 버퍼 관리 시스템을 포함하는 수신기/디코더까지 다룬다.
수신기/디코더는 다수의 애플리케이션들을 저장하기 위한 수단을 포함할 수도 있으며, 상기 시스템은 하나의 애플리케이션으로의 할당을 위하여 버퍼 존 내에 버퍼들을 규정 및 어드레스하도록, 그리고 다른 애플리케이션으로의 할당을 위하여 다른 버퍼 존 내에 버퍼들을 규정 및 어드레스하도록 배열된다.
또한, 본 발명은 컴퓨터 시스템의 메모리 내의 버퍼 존에 버퍼들을 규정 규정 및 어드레싱하는 방법이 제공되며, 이 방법은:
다수의 풀 크기를 저장하는 단계;
각 풀에 대하여 버퍼 크기를 저장하는 단계; 및
바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하는 단계를 포함한다.
본 발명은 또한 컴퓨터 시스템의 메모리내의 다수의 버퍼 존에 버퍼들을 규정 및 어드레싱하는 방법을 다루며, 이 방법은 각 버퍼 존에 대하여,
다수의 풀 크기를 저장하는 단계;
각 풀에 대하여 버퍼 크기를 저장하는 단계; 및
바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하는 단계를 포함한다.
이 방법은 또한 각 버퍼 존에 대하여:
누적된 형태의 풀 크기를 결정하는 단계; 및
그 형태로 풀 크기를 저장하는 단계를 더 포함할 수도 있다.
이 방법은 또한 각 버퍼 존에 대하여 각 풀의 처음에 지정된 영역을 규정하는 단계를 더 포함할 수도 있다.
이 방법은 또한 각 버퍼 존에 대하여 누적된 풀 크기를 바로 선택하거나 버퍼 풀들의 어드레스를 선택하는 단계를 더 포함할 수도 있다.
본 발명은 또한 각 버퍼 존에 대하여 바람직한 풀의 수, 바람직한 버퍼 수, 및 바람직한 바이트의 값들을 제한 구역 밖에서 체크하는 단계를 더 포함할 수도 있다.
본 발명은 또한 다른 버퍼 존들의 오버랩을 검출하는 단계를 더 포함할 수 있다. 만일 그렇다면, 이 방법은:
버퍼 존들의 스타트 어드레스를 저장하는 단계;
버퍼 존들의 엔드 어드레스를 저장하는 단계; 및
버퍼 존의 스타트 어드레스가 이전 버퍼 존의 엔드 어드레스 보다 더 큰지를 결정하는 단계를 더 포함할 수도 있다.
버퍼 관리 시스템의 다양한 기능들은 하드웨어, 예를 들어 전용 집적 회로에서 실행될 수도 있으며; 이는 향상된 동작 속도를 제공할 수도 있다. 그러나, 바람직하게는 적어도 얼마의 기능들은, 바람직하게는 애플리케이션들을 가동시키는 처리 수단에 의해 가동되는 소프트웨어에 의해 실행되며; 이는 더 큰 유연성을 가능하게 하며, 더 적은 요소들을 필요로 하고, 시스템이 더 쉽게 갱신될 수 있게 한다.
이제, 본 발명을 구현하는 컴퓨터 시스템을 포함하는 수신기/디코더에 대하여 도면을 참조하여 예시에 의하여 설명한다.
컴퓨터 시스템의 이해를 돕기 위하여, 디지털 위성 수신기/디코더가 먼저 간략하게 설명된다.
도 1은 실시예를 위한 디바이스 드라이버가 설치되는 디지털 대화형 텔레비젼 시스템에서 사용하기 위한 수신기/디코더(2020) 또는 셋-탑-박스를 개략적으로 도시한다. 적절한 디지털 대화형 텔레비젼 시스템의 세부 사항은 동시-계류중인 출원들 PCT/EP97/02106-02117에 개시되어 있으며, 이들은 본 원의 참조로서 인용된다. 참조의 용이를 위하여, 상기 언급된 명세서에서 더 상세하게 설명된 부분들은 일반적으로 이들 명세서에서 사용된 참조 번호로 나타낸다.
상기 언급한 명세서에서 더 상세하게 설명되는 바와 같이, 도 1 및 도 2를 참조하면, 수신기/디코더(2020)는 몇 개의 포트들; 상세하게 설명하면 MPEG 신호 흐름을 위한 튜너(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 및 2개의 카드 리더(4036)를 포함하는데, 상기 2개의 카드 리더(4036) 중 하나는 시스템의 일부를 형성하는 스마트카드를 위한 것이고, 다른 하나는 (지불, 홈 뱅킹 등을 위하여 이용되는) 뱅크 카드를 위한 것이다. 수신기/디코더(2020)는 또한 텔레비젼 신호 프로듀서로의 모뎀드 백 채널(4002)로의 인터페이스(4034)를 포함하며, 이에 따라 사용자는 선호 등을 텔레비션 신호 (프로그램) 프로듀서에서 다시 표시할 수 있게 된다. 수신기는 또한 런 타임 엔진(4008), 디바이스 매이저(4068) 및 다수의 디바이스(4062) 및 하나 또는 그 이상의 애플리케이션을 가동시키는 디바이스 드라이버(4066)를 포함한다.
본 명세서의 목적을 위하여, 애플리케이션은 바람직하게는 수신기/디코더(2020)의 고레벨의 기능들을 제어하기 위한 일부의 컴퓨터 코드이다. 예를 들어, 최종 사용자가 텔레비젼 세트(2022)의 스크린 위에서 보여지는 버튼 물체 위에 원격 제어기의 초점을 두고 확인 키를 누를 때, 버튼에 관계되는 명령의 시퀀스가 수행된다.
대화형 애플리케이션이 메뉴를 가지고 있으며, 최종 사용자가 요구할 때 명령을 수행하고, 애플리케이션의 목적에 관련된 데이터를 제공한다. 애플리케이션들은 상주 애플리케이션, 즉 수신기/디코더(2020)의 ROM (또는 FLASH 또는 다른 비휘발성 메모리) 내에 저장되거나, 수신기/디코더(2020)의 RAM 또는 FLASH 메모리 내로 방송 및 다운로드될 수도 있다.
애프리케이션들은 수신기/디코더(2020)의 메모리 위치에 저정되며 리소스 파일들로서 표현된다. 리소스 파일들은 그래픽 오브젝트 디스크립션 유닛 파일, 가변 블록 유닛 파일, 명령 시퀀스 파일, 애플리케이션 파일, 및 데이터 파일을 포함하며, 이는 상기 언급한 특허 명세서에 더 상세하게 설명된다.
수신기/디코더는 RAM 용량, FALSH 용량 및 RMO 용량으로 분할되는 메모리를 포함하지만, 이러한 물리적인 구성은 로직 구성과는 별개이다. 메모리는 또한 다양한 인터페이스와 관련된 메모리 용량으로 분할될 수도 있다. 한 관점으로는, 메모리는 하드웨어의 일부로서 간주될 수 있으며, 다른 관점으로는, 메모리는 하드웨어와 떨어져 있는 전체 시스템을 지지 또는 포함하는 것으로서 간주될 수 있다.
컴퓨터 시스템은 가상 머신(4007)의 일부분을 형성하는 런 타임 엔진(4008)에 중심을 두는 것으로 간주될 수 있다. 이는 하기에 설명되는 다양한 중간 로직 유닛에 의하여 수신기/디코더 하드웨어(4061)로 한 쪽(“하이 레벨”쪽) 및 다른 쪽(“로우 레벨”쪽)으로 애플리케이션에 결합된다. 수신기/디코더 하드웨어는 상기 설명된 다양한 포트들{핸드셋(2026)을 위한 인터페이스(2030), MPEG 스트림 인터페이스(4028), 직렬 인터페이스(4030), 병렬 인터페이스(4032), 카드 리더(4036)로의 인터페이스, 모뎀드 백 채널(4002)로의 인터페이스}을 포함하는 것으로서 간주될 수 있다.
도 2를 좀 더 참조하면, 다양한 애플리케이션들(4057)은 가상 머신(4007)에 결합되며; 좀 더 공통적으로 사용되는 얼마간의 애플리케이션들은 4057에서 나타내내 바와 같이, 시스템 내에 다소 영구적으로 상주할 수도 있는 반면, 나머지 것들은 예를 들어 MPEG 데이터 스트림으로부터 또는 요구되는 다른 포트들로부터 시스템 내로 다운로드될 것이다.
런 타임 엔진(4008)에 부가하여 가상 엔진(4007)은 툴박스(4058)를 포함하는 얼마의 상주 라이브러리 기능들(4006)을 포함한다. 라이브러리는 엔진(4008)에 의해 사용되는 C 언어 내에 잡다한 기능들을 포함한다. 이들은, 가령 압축, 데이터 구조의 팽창 또는 비교, 라인 드로잉 등과 같은 데이터 조종을 포함한다. 라이브러리(4006)는 또한, 가령 하드웨어 및 소프트웨어 변형 수 및 이용가능한 RAM 공간등과 같은, 수신기/디코더(2020)내의 펌웨어(4060)에 대한 정보, 및 새로운 디바이스(4062)를 다운로딩할 때 이용되는 기능을 포함한다. 기능들은 라이브러리 내에 다운로드될 수 있어, FLASH 또는 RAM 메모리에 저장된다.
런 타임 엔진(4008)은 포트들 또는 인터페이스들에 교대로 결합되는 디바이스 드라이버(4060)에 결합되는 한 세트의 디바이스(4064)에 결합되는 디바이스 매니저(4068)에 결합된다. 넓은 의미에서, 디바이스 드라이버는 로직 인터페이스를 규정하는 것으로 간주될 수 있으며, 이에 따라 2개의 다른 디바이스 드라이버가 공통의 물리적인 포트에 결합될 수도 있다. 디바이스는 대개 1개 이상의 디바이스 드라이버에 결합될 것이며, 만일 디바이스가 단일 디바이스 드라이버에 결합된다면, 다비이스는 대개 통신을 위하여 필요한 전체 기능을 통합하도록 설계될 것이며, 이에 따라 개별적인 디바이스 드라이버의 필요성을 제거한다. 어떠한 디바이스는 그들 사이에서 통신할 수도 있다.
하기에 설명되는 바와 같이, 변수(variables), 버퍼, 및 한 세트의 이벤트 큐로 통과되는 이벤트에 의하여 디바이스(4064)로부터 런 타임 엔진까지 3가지 형태의 통신이 있다.
수신기/디코더(2020)의 각 기능은 디바이스(4062)로서 표현된다. 디바이스는 국부 또는 원격이 될 수 있다. 국부 디바이스는 스마트카드, SCART 커넥터 신호, 모델, 직렬 및 병렬 인터페이스, MPEG 비디오 및 오디오 플레이어 및 MPEG 섹션 및 테이블 추출기를 포함한다. 원격 위치에서 실행되는 원격 디바이스(4066)는
포트 및 절차가 수신기/디코더 제조업자에 의해 제공 및 설계되는 디바이스 및 디바이스 드라이버라기 보다는 시스템 관계자 또는 설계자에 의해 규정되어야 한다는 점에서 로컬 디바이스와 다르다.
런 타임 엔진(4008)은 마이크로프로세서 및 공통 애프리케이션 프로그래밍 인터페이스의 제어하에서 가동한다. 이들은 모든 수신기/디코더(2020)가 애플리케이션의 관점으로부터 동일하도록 모든 수신기/디코더(2020)에 설치된다.
엔진(4008)은 수신기/디코더(2020) 위에서 애플리케인션(4056)을 가동시킨다. 이는 대화형 애플리케이션(4056)을 실행시키고, 수신기/디코더(2020)의 외부로부터 이벤트를 수신하며, 그래픽 및 텍스트를 디스플레이하고, 서비스를 위한 디바이스를 호출하며, 특정한 계산을 위하여 엔진(4008)에 결합된 라이브러리(4006)의 기능을 이용한다.
런 타임 엔진(4008)은 각 수신기/디코더(2020)에 설치된 실행가능한 코드리며, 애플리케이션을 핵석하고 가동하기 위한 인터프리터(interpreter)를 포함한다. 엔진(4008)은 (가령 MS-DOS와 같은) 단일 태스크 작동 시스템을 포함하는 모든 작동 시스템에 적용가능하다. 엔진(4008)은 (다양한 실행을 하기 위하여, 가령 키 누름과 같은 다양한 이벤트를 취하는) 프로세스 순서결정 유닛(process sequencer unit)에 기초하며, 다른 하드웨어 인터페이스로부터의 이벤트 큐를 관리하기 위한 자체의 스케쥴러를 포함한다. 이는 또한 그래픽 및 텍스트의 디스플레이를 제어한다. 프로세스 순서결정 유닛은 한 세트의 실행-그룹들을 포함한다. 각 이벤트는 프로세스 순서결정 유닛이 이벤트의 특성에 따라서 그의 현재 실행-그룹으로부터 다른 실행-그룹으로 이동하고, 새로운 실행-그룹의 실행들을 수행하게 한다.
엔진(4008)은 애플리케이션(4056)을 수신기/디코더 메모리(2028)내로 로드 및 다운로드하기 위한 코드 로더를 포함하나. 최적의 사용을 보장하기 위하여, 단지 필요한 코드만이 RAM 또는 FLASH 메모리 내로 로드된다. 다운로드된 데이터는 애플리케이션(4056)의 어떠한 변형 또는 어떠한 권한없는 애플리케이션의 실행을 막기 위하여 입증 장치(authentication mechanism)에 의해 확인된다. 엔진(4008)은 또한 감압장치(decompressor)를 포함한다. (중간 코드 형태의) 애플리케이션이 공간을 절약하기 위하여 압축되고 MPEG-2 트랜스포트 스트림으로부터 또는 내장 수신기/디코더 모드에 의하여 빠르게 다운로딩될 때, 코드는 그것이 RAM 내로 로딩되기 전에 압축되어야 한다. 엔진(4008)은 또한 다양한 가변 값들을 갱신하기 위하여 애플리케이션을 해석하고 상태 변화를 결정하는 인터프리터, 및 에러 체커를 포함한다.
어떠한 디바이스(4062)의 서비스를 이용하기 전에, (가령, 애플리케이션 명령 시퀀스와 같은) 프로그램은 “클라이언트”, 즉 디바이이스(4066) 또는 디바이스 매니저(4068)로의 로직 액세스 방법으로서 나타난다. 매니저는 클라이언트에게 디바이스로의 모든 액세스에 참조되는 클라이언트 번호를 준다. 디바이스(4066)는몇 개의 클라이언트를 가지며, 각 디바이스(4066)에 대한 클라이언트의 번호는 디바이스(4066)의 타입에 따라 지정된다. 클라이언트는 절차 “디바이스: 오픈 채널”에 의해 디바이스(4066)으로 유입된다. 이 절차는 클라이언트에게 클라이언트 번호를 할당한다. 클라이언트는 절차 “디바이스: 클로즈 채널”에 의해 디바이스 매니저(4068) 클라이언트 리스트로부터 나올 수 있다.
디바이스 매니저(4068)에 의해 제공된 디바이스(4062)로의 액세스는 동기적 또는 비동기적이 될 수 있다. 동기 액세스를 위하여, 절차 “디바이스: 호출”이 사용된다. 이는 즉시 사용가능한 데이터를 액세스하는 수단이며 바람직한 응답을 기다릴 필요가 없는 기능이다. 비동기적인 액세스를 위하여, 절차 “디바이스: I/O”이 사용된다. 이는, 예를 들어 멀티플렉스를 찾고 MPEG 스트림으로부터 테이블을 되돌리는 스캐닝 튜너 주파수와 같은 응답을 기다릴 필요가 있는 데이터를 액세스하는 수단이다. 요청된 결과가 유효할 때, 이벤트는 그의 도달을 신호로 나타내기 위하여 엔진의 큐에 넣어진다. 또 다른 절차 “디바이스: 이벤트”는 기대하지 않은 이벤트를 관리하는 수단을 제공한다.
상기 주목한 바와 같이, 런 타임 엔진의 메인 루프는 다수의 프로세스 순서결정 유닛에 결합되며, 메인 루프가 적절한 이벤트를 만났을 때, 프로세스 순서결정 유닛 중의 하나에 제어신호(control)가 일시적으로 전달된다.
따라서, 컴퓨터 시스템은 애플리케이션이 다수의 디바이스들과 통신을 할 수 있게 하는 상당한 유연성을 갖는 플랫폼을 제공한다.
도 3을 참조하면, 수신기/디코더는 FLASH 메모리(4024)에 또한 결합되는 마이크로프로세서(20)에 결합되는 RAM 메모리(4022), EEPROM 메모리(4024'), 및 버스를 통하여 ROM 메모리(4026)를 포함한다. RAM 메모리(4022)는 또한 DMA(직접 메모리 액세스) 유닛(22)에 결합되는데, DMA 유닛(22)을 통하여 (예를 들어 MPEG 데이터스트림으로부터의) 데이터가 RAM 메모리 내에 바로 들어올 수 있게 된다.
RAM 메모리(4022)는 256Kbyte 길이를 가지며, 3개의 영역: 컴퓨터 시스템의 제조업자에 의한 사용을 위하여 지정된 영역(24), 가상 머신(VM)(4007)에 의한 사용을 위하여 지정된 영역(25), 및 가령, 버퍼들, 애플리케이션(30, 30', 30")들과 같은 다양한 정보를 포함하는 데에 이용되는 사용자 영역(26)으로 분할된다. 컴퓨터 시스템은 시스템을 실행하기 위하여 하드웨어를 설계하는 데에 있어서 제조업자에게 상당한 자유를 주는 기능 설명서에 의하여 규정되며; 메모리 영역(24)은 사실상 기능 설명서 및 하드웨어에 의해 지정된 기능들 간의 인터페이스로서 이용된다. VM(4007) 및 마이크로프로세서(20)는 함께 런 타임 엔진(RTE)(4008)으로서 간주된다. 여러가지의 다른 애플리케이션들은 다른 시간에 메모리내에 로드될 수도 있다.
VM(4007)과 애플리케이션들 간에, 그리고 다른 애플리케이션들 그들 자신들 간의 통신이 필요하다. 이러한 통신은 주로, VM 및 다양한 애플리케이션들에 공통인 버퍼 수단에 의해 제어된다.
컴퓨터 시스템에서, 다수의 버퍼 존들은 사용자 영역(26)내의 버퍼 영역(32)에 규정된다. 각 버퍼 존은, 그 버퍼 존의 개별적인 버퍼들로의 분할을 또한 규정하는 명령에 의해 규정된다. 명령은 버퍼 존 내에 다수의 풀들을 규정하며; 각 풀에 대하여 풀 내의 버퍼들의 크기 및 풀 내의 버퍼들의 수가 주어진다.
명령 “세트_아웃라인_버퍼들”은 “공공의”버퍼 존을 분할한다. 공공의 버퍼존 내의 버퍼들은 모든 클라이언트에 의해 할당되며 제거될 수 있다. 명령 “디바이스_오픈 채널_파티션”은 효율적인 메모리 이용을 위하여 한 클라이언트에 대한 “전용(private)”존을 분할한다. 전용 버퍼 존내의 버퍼들은 단지 그 분할을 행한 클라이언트에 의해서만 할당될 수 있으나, 모든 클라이언트에 의하여 제거될 수 있다. 단지 하나의 전용 버퍼 존만이 규정될 수 있는 반면, 다수의 전용 버퍼 존들은 동시에 존재할 수도 있다. 각 클라이언트가 기껏해야 단지 하나의 전용 버퍼 존에서 분할을 할 수 있는 것이 바람직하다.
공공의 버퍼 존은 그것이 생성된 후 클라이언트에 의해 변경될 수 없지만, 전용 버퍼 존은 그에 관계되는 클라이언트의 요구시 생성 및 제거될 수도 있다. 클라이언트가 전용 버퍼 존을 분할했을 때, 버퍼는 공공의 버퍼 존으로부터가 아닌 그 전용 버퍼 존으로부터의 클라이언트에 대하여 할당되며; 유사하게, 버퍼가 할당된 후에 록되거나 할당해제(de-allocate)가 되도록 클라이언트가 요구할 때, 전용 버퍼 존 내의 버퍼는 각각 록 또는 할당해제가 된다.
도 5는 공공의 버퍼 존에 대한 세트_버퍼_아웃라인의 로직 포맷을 도시한다. 이는 풀의 번호(NP)를 규정하는 초기 기재사항(15), 및 각 풀에 대하여 하나씩 한 세트의 기재사항(16, 16')을 포함하며, 각 풀의 기재사항은 풀의 풀 크기 PS(즉, 풀 내 버퍼들의 수)를 규정하는 첫 번째 하위-기재사항(17) 및 버퍼들의 버퍼 크기 BS(즉, 버퍼내 바이트들이 수)를 규정하는 두 번째 하위-기재사항(18)으로 구성된다.
편리를 위하여, 이들 및 하기에 사용되는 다른 파라미터들은 다음과 같다:
NP: 풀의 번호
풀 마다,
PS: 풀 크기(풀 내 버퍼들의 수)
BS: 버퍼 크기
PN: 풀의 수
BN: (풀내) 버퍼 수
ByN: (버퍼내) 바이트 수
사용자 메모리 영역(26)에서, 버퍼들의 풀은 도 4에 도시한 바와 같이 영역의 처음부터 연속적으로 배열된다. 실질적인 레이아웃은 3개의 풀에 대한 것으로, 풀 1은 5개의 버퍼로이루어지며, 풀 2는 6개의 버퍼로 이루어지고, 풀 3은 1개의 버퍼로 이루어진다. 또한, 각 버퍼는 그의 처음에 16 바이트의 헤더를 포함한다는 것을 주목하자. 이 헤더는 사용자가 버퍼 플래그 등으로서 사용하기에 유용한 12-바이트 섹션, 및 가상 머신(4007)의 사용을 위하여 지정된 4-바이트 섹션내에 흩뜨려진다.
런 타임 엔진(4008)은 버스(21)와 RAM 메모리(4022)의 버퍼 매니저의 사용자 영역(26)간의 어드레싱 패스(27) 형성하는 것으로서 간주될 수 있는 버퍼 매니저를 실행시킨다. 도 6은 공공의 버퍼 존을 위한 버퍼 매니저의 로직 구성을 도시한다. 이는 먼저, 마이크로프로세서(20)의 제어 하에 셋_버퍼_아웃라인 명령에 의하여 초기화되며; 이후 모든 바람직한 버퍼를 어드레스하는 데에 이용된다.
도 6에 관련하여, 각 풀에 대한 하위-기재사항 PS 및 BS는 교번적으로 곱셈기(35)에 공급되어, 그들의 적 PS*BS를 형성한다. 누산기(36)는 {하드-와이어 값 발생기(42)로부터 RAM(4022)의 사용자 영역(26)의 스타트 어드레스를 나타내는} 64k의 값으로 초기화되며, 각각의 적내에 16을 부가하는 가산기(37)에 의해 적 PS*BS의 연속값을 공급받으며; 여기서 16은 각 풀의 스타트에서 지정된 섹션의 크기를 나타낸다. 따라서, 누산기(36)는 연속적인 버퍼 풀의 각 스타트어드레스를 연속적으로 포함한다. 이들 풀의 스타트 어드레스는 누적 어드레스 레지스터(cumulative address register)(38)에 공급되어 시퀀스로 저장된다. 또한, 초기화되는 동안, 풀의 번호 NP는 다수의 풀 레지스터(39)에 저장되며, 풀의 크기는 풀 크기 레지스터(40)에 저장되며, 버퍼 크기 BS는 버퍼 크기 레지스터(41)내의 동일한 시퀀스에 저장된다.
초기화에 이어서, 버퍼가 어드레스될 수 있다. 버퍼를 어드레스하기 위하여, 바람직한 버퍼는 바람직한 풀에 대한 풀의 수 PN, 그 풀 내의 바람직한 버퍼에 대한 버퍼 수 BN, 및 그 버퍼 내의 바람직한 바이트에 대한 바이트 수 ByN에 의하여 규정된다.
풀의 수 PN은 누적 레지스터(38) 및 버퍼 크기 레지스터(40)로부터 그 풀에 대한 적절한 기재사항을 선택하는 데에 이용된다. 고정된 크기인 버퍼 크기 BS는 곱셈기(45)로 공급되며, 이곳에서 버퍼 수 BN 만큼 곱해진다. 결과적인 적은 이 적에 16을 더하는 증분기(46)에 공급된다. 누적 레지스터(38)의 출력은 가산기(47)로 공급되어, 바이트 수 ByN 만큼 더해진다. 증분기(46)의 출력은 가산기(48)로 공급되어, 가산기(47)의 출력과 더해진다. 가산기(48)의 출력은 바람직한 어드레스; 즉 바람직한 풀의 바람직한 버퍼의 바람직한 바이트의 어드레스에 따라서 멀티플렉서(49)를 통과한다.
버퍼 매니저는 또한 에러 체크 회로를 포함한다. 선택된 풀의 수가 풀들의 수 보다 크지 않은 지를 체크하기 위하여, 즉 선택된 풀이 버퍼 존 내에 있는 지를 체크하기 위하여, 풀의 수 PN은 레지스터(39)로부터 풀의 번호 NP가 공급되는 비교기(53)로 공급된다. 선택된 버퍼 수가 선택된 풀내의 버퍼들의 수보다 크지 않은 지를 체크하기 위하여, 즉 선택된 버퍼가 선택된 풀내에 있는 지를 체크하기 위하여, 버퍼 수 BN이 비교기(54)에 공급되며, 비교기(54)에는 또한 풀 크기 레지스터(40)내의 선택된 기재사항의 출력이 공급된다. 바람직한 버퍼 수가 버퍼 길이 보다 크지 않은 지를 체크하기 위하여, 즉 선택된 바이트가 선택된 버퍼 내에 있는 지를 체크하기 위하여, 선택된 바이트 수가 비교기(55)에 공급되며, 비교기(55)에는 또한 선택된 풀 내의 버퍼들의 크기가 공급된다. 이들 비교기들은 모두, 어떠한 체크가 잘못되는 경우 에러 신호 ERR를 생성하는 공통 출력을 갖는다.
지금까지의 설명은 (공공의 버퍼 존 내의) 버퍼가 어드레스된다고 가정하였다. 그러나, 버퍼의 16-바이트 헤더를 어드레스하는 것이 바람직할 수도 있다. 이들 2개의 옵션간의 선택은 신호 N/C에 의해 제어되는데, 이 신호 N/C는 정상 버퍼 액세스 사이를 선택하고, 편의를 위하여 버퍼 제어 동작으로 불려질 수도 있는 것을 선택한다. 정상 액세스를 위해서는, 버퍼들이 선택되고; 버퍼의 헤더는 제어 동작을 위해서만 선택된다.
N/C 신호는 멀티플렉서(49)에 공급된다. 정상 버퍼 액세스에 대하여, 이 신호는 상기 설명한 바와 같이 가산기(48)의 출력을 선택한다. 그러나, 버퍼의 헤더에서의 제어 동작에 대하여, 멀티플렉서는 대신 가산기(47)의 출력을 직접 선택한다. 누적 레지스터(38)로부터의 이러한 패스는 증분기(46)를 통과하지 않기 때문에, 이는 그 헤더 다음에 오는 버퍼가 아니라 헤더 내의 바람직한 바이트를 선택하게 한다.
버퍼에서의 제어 동작에 대하여, 비교기(55)는 디스에이블 되어야 할 필요가 있다. 따라서, 이 비교기는 정상 버퍼 액세스에 대해서는 신호 N/C에 의해 인에이블되며 제어 동작에 대해서는 디스에이블된다. 다른 비교기(56)는 또한 바이트 수 ByN 및 헤더내의 바이트의 수, 즉 16을 공급받으며, 시스템 액세스를 위하여 신호 N/C에 의해 인에이블된다. 이 비교기는 바람직한 바이트 수가 16보다 크지 않은 지를 체크한다. 즉, 선택된 바이트가 선택된 버퍼의 스타트에서 지정된 영역 내에 있는 지를 체크한다. 명백하게는, 이러한 체크는 사용자가 버퍼 플래그 등으로서 사용하기에 유효한 12-바이트 섹션으로의 어드레스, 및 RTE의 사용을 위하여 지정된 4-바이트 섹션 사이를 구별하도록 개량될 수 있다.
바람직하다면, 셋_버퍼_아웃라인 명령은 또한, 도 5에 도시한 바와 같이, 사용자 메모리 영역(26)의 끝을 규정하는 사용자 메모리 끝 파라미터(14)를 포함할 수도 있다.
명령내의 마지막 기재사항은 적절한 레지스터에 저장될 수 있으며, 버퍼 영역이 사용자 메모리 영역(26)의 끝을 넘어 확장되지 않았는 지를 체크하는 데에 이용될 수 있다. (이는, 애플리케이션(30, 30', 30")들 등을 위한 공간이 남겨지기 때문에, 일반적으로 매우 있음직 하지 않다. 그러나, 이는, 만일 버퍼 존이 상기 설명된 바와 같이 그의 처음이 아니라 사용자 영역의 중간 어딘가에 위치될 수 있도록 시스템이 설계된다면, 발생할 수도 있다.)
원칙적으로, 세트_버퍼_아웃라인 명령은 언제라도 공공의 버퍼 존을 초기화하는 데에 이용될 수 있다. 그러나, 재-초기화되는 버퍼 존은 실질적으로 이미 버퍼내에 있는 모든(또는 거의 모든) 정보의 손실을 야기할 것이며, 이에 따라 세트_버퍼_아웃라인 명령은 대개 시스템 초기화에 대해서만 실행될 것이다.
지금까지 설명된 시스템에서, 버퍼 영역(32)은 도 4에 도시한 바와 같은 공공의 버퍼 세트를 포함한다. 도 7 및 도 8은 수신기/디코더내에서 전용 버퍼 존들이 어떻게 실행되는 지를 보여준다. 상기 나타낸 바와 같이, 공공의 버퍼 존은 다수의 전용 버퍼 존(60, 60', 60")들 등에 의해 추가된다. 각 전용 버퍼 존은 클라이언트에게 할당되며; 그 클라이언트는 전용 버퍼 존을 형성하며, 만일 바람직하다면, 이를 삭제한다. 따라서, 전용 버퍼 존은 어떤 점으로는 그것을 생생한 클라이언트의 재산이다. 그러나, 다른 클라이언트들도 전용 버퍼 존을 소유하는 클라이언트로(부터) 정보를 전송하기 위하여 전용 버퍼 존을 액세스할 수 있다.
버퍼 관리 시스템은 전용 버퍼 존이 사용자 메모리 영역(26)에 자유롭게 위치될 수 있게 할 수도 있다. 그러나, 이들은 모두 바람직하게는 도 7에 도시된 바와 같이 클라이언트들을 포함하는 메모리 영역으로부터 떨어진 메모리 영역(32A) 내에 포함된다. 이는 메모리 영역 사용의 잠재적인 충돌을 검출하는 것을 단순화시킨다.
전용 버퍼 존(60, 60', 60")들 등은 공공의 버퍼 존과 동일한 구조를 가지며, 도 5에 도시된 세트_버퍼_아웃라인 명령과 유사한 디바이스_오픈_채널_파티션 명령에 의해 규정된다. 디바이스_오픈_채널_파티션 명령은 2개의 부가 필드를 포함하는데, 제 1 부가 필드는 명령을 발생시키는 클라이언트의 식별자를 포함하고, 제 2 부가 필드는 버퍼 존의 메모리 어드레스를 포함한다. (도 4의 14에서 나타낸 바와 같이) 메모리 엔드 필드를 생략하는 것이 편리하다.
도 8은 전용 버퍼 존들에 대한 버퍼 매니저(27)의 로직 구성을 도시한다. 도 6의 회로는 블록(65)로서 도시된다. 또한, 애플리케이션들 각각에 대하여 하나씩, 한 세트의 다른 블록들(66)이 있다. 이들 각각의 블록들은 실질적으로 블록(654)과 동일하며; 각 블록들(66)에서는, 레지스터(42A)가 해당하는 애플리케이션에 대한 전용 버퍼 존의 초기 어드레스를 저장하는 데에 이용된다. (상기 언급한 바와 같이, 디바이스_오픈_채널_파티션 명령 포맷은 버퍼의 초기 어드레스에 대한 필드를 포함한다.) 블록(65, 66)들은 모두 멀티플렉서(67)에 신호를 공급하며, 멀티플렉서(67)는 공공의 버퍼 존, 또는 전용 버퍼 존들 중에서 바람직한 하나를 선택하는 데에 이용된다.
유닛(65, 66)으로부터의 에러 신호는 모두 함께 결합된다. 그러나, 또한 다른 버퍼 존들 간의 충돌을 검출하기 위한 에러 유닛(68)이 제공된다.
버퍼 존들의 스타트 어드레스는 레지스터(42) 및 레지스터(42A)로부터 바로 사용가능하다. 엔드 어드레스에 대하여, 도 6의 회로 및 그의 초기화는 다소 변형된다. 누적 어드레스 레지스터(38)는 버퍼 존 내에 다양한 풀들의 스타트 어드레스를 포함한다. 이 레지스터는 38A에 도시된 바와 같이 1군데 만큼 확장된다. 또한, 초기화 절차는 마지막 풀의 크기 및 그의 버퍼 크기를 곱함으로써 버퍼 존의 마지막 풀의 스타트 어드레스를 발생시킨 후에 계속되며, 그 적(product)은 누산기(36)에 누산되며 그 결과가 레지스터 확장부(38A)로 전달된다. 따라서, 레지스터 확장부(38A)는 버퍼 존의 엔드 어드레스를 포함한다.
에러 유닛(68)에는 각 버퍼 존의 스타트 및 엔드 어드레스가 공급되고, 어떠한 오버랩이 있는 지를 결정하기 위하여 이들을 처리한다. 이는, 예를 들어 버퍼 스타트 어드레스를 시퀀스로 배열하고, 각 스타트 어드레스가 이전의 버퍼 존의 엔드 어드레스보다 더 큰지를 체크함으로써 이루어질 수 있다. 이 유닛은 또한, 프래쉬(fresh) 버퍼 존이 발생될 때, 바람직한 새로운 존 보다 약간 더 큰 2개의 존재하는 버퍼 존들간의 갭을 찾으면서 적절한 메모리 영역을 찾기 위하여 사용될 수 있다.
여기에는 실질적으로 작은 모순이 있다. 레지스터 확장부(38A) 내의 어드레스는 실질적으로 진짜 버퍼 엔드 어드레스가 아니라 버퍼 존들의 엔드 바로 다음의 어드레스이다. 그러나, 이러한 모순은 사소한 것이며, 예를 들어 유닛(65, 66) 및 에러 유닛(68) 간에 1비트 만큼 엔드 어드레스를 감소시킴으로써 해결될 수 있다.
도 9a 내지 9c는 버퍼의 사용이 다른 클라이언트들 및 디바이스들에 관계된 방법을 도시한다. 도 9a는 초기 상황을 도시하는데, 여기에서 매니저는 5개의 버퍼(BF1 내지 BF5)를 할당하기 위하여 다양한 과정 (명령들)을 사용하였다.
언록된 버퍼(BF1)는 할당 명령(ALLOC)에 의해 클라이언트(CL1)에 의하여 할당(형성)되었다.
버퍼(BF2)는 또한 클라이언트(CL1)에 의해 할당되었다. 이 버퍼는 현재 명령(I/O)을 통하여 아직 종료되지 않은 I/O 동작을 위하여 장치(DV1)에 의하여 사용중이다.
버퍼(BF3)는 클라이언트(CL1)에 의하여 록되어 있다. 이 버퍼의 초기 할당은 알수 없으며; 이는 클라이언트(CL1), 어떠한 다른 클라이언트, 클라이언트(CL1)에 의해 어드레스된 디바이스, 또는 어떠한 다른 클라이언트에 의해 어드레스된 디바이스에 의해 할당되었을 수도 있다.
버퍼(BF4)는 클라이언트(CL1)에 어드레스된 예기치않은 이벤트에 관계된 디바이스(DV1)에 의해 할당되었다. 이 이벤트는 아직 전송되지 않았다.
버퍼(BF5)는 디바이스(DV2)와 함께 실행되는 동기 액세스를 위하여 클라이언트(CL1)에 의해 할당되었다. 이 버퍼는 또한 디바이스에 의해 할당될 수 있다. 애플리케이션의 실행은 단지 이러한 동작 후에만 계속될 수 있다.
도 9B는 버퍼(BF5)에 관련된 동기 액세스가 버퍼(BF1)에 관계된 I/O 비동기 액세스의 끝의 바로 전에 일어난 후, 클라이언트(CL1)가 디바이스 1에 대한 리스트를 제거한 후의 상황을 도시한다.
버퍼(BF1, BF2)는 모두 계속하여 존재하며; 이들 중 어떤 것도 디바이스(DV1)에 링크되지 않는다.
버퍼(BF3)는 그것이 록되었기 때문에 계속하여 존재한다. 그러나, 클라이언트(CL1) 또는 다른 클라이언트는 그것을 할당해제할 수 있다.
버퍼(BF4)는 클라이언트(CL1)에 어드레스된 디바이스(DV1)에 의해 할당되었으며, 따라서, 할당해제가 되었다. 즉, 존재하는 것을 중지하였다. 이는 기대치않은 이벤트가 아직 전송되지 않을 경우(즉, 애플리케이션 엔진의 큐에 넣어지지 않을 경우)라도 참이며; 이는 또한 이 버퍼가 디바이스(DV1)로부터의 LOCK 명령에 의해 록되지 않았다면, 이벤트가 전송되는 지에 상관없이 참이다.
버퍼(BF5)는 그의 이용을 따르는 클라이언트(CL1)에 의해 할당해제되지 않는다.
도 9C는 클라이언트(CL1)가 디바이스: 클로즈 채널 명령에 의해 디바이스 매니저의 리스트 자체를 제거한 후의 상태이다.
버퍼(BF1, BF2 및 BF5)는 메모리를 지우기 위하여 디바이스 매니저에 의해 할당해제(제거)된다.
버퍼(BF3)는 록되었기 때문에 할당해제되지 않는다. 이는 다른 클라이언트에 의해 할당해제가 될 것이다.
상기 설명한 다양한 기능들의 실행에 대한 정확한 세부사항, 및 하드웨어 및 소프트웨어간의 분배는 실행자에 대한 선택의 문제이며 상세하게 설명하지는 않는다. 그러나, 필요한 동작을 수행할 수 있는 전용 집적 회로는 상업적으로 이용할 수 있거나 쉽게 설계될 수 있으며, 이들은 하드웨어 가속기에 대한 기초로서 이용될 수 있거나, 더 바람직하게는 필요한 다양한 동작들을 수행하기 위하여 전용 하드웨어 가속기를 제조하도록 변형될 수 있으며, 이로써 소프트웨어를 런시키는 데에 필요한 처리 전력을 줄일 수 있다. 그러나, 필요한 동작들은, 만일 충분한 처리 전력이 유용하다면 소프트웨어에서 실행될 수도 있다.
모듈 및 다른 구성요소들이 각 구성요소에 의해 제공되는 특징 및 기능의 관점에서 선택적이며 바람직한 특징과 함께 설명되었다. 주어진 정보 및 제공된 명세서로, 이들 특징의 실질적인 실행은 당업자에게 수월할 것이며, 정확한 세부사항은 수행자에게 남겨진다. 예시로서, 특정한 모듈은, 바람직하게는 C 프로그래밍 언어로 쓰여지고, 바람직하게는 애플리케이션을 가동하는 데에 이용되는 프로세서로 가동되는 소프트웨어에서 실행될 수 있다. 하지만, 얼마의 구성요소들은 개별적인 프로세서로 가동될 수도 있으며, 얼마의 또는 모든 구성요소들은 전용 하드웨어에 의해 실행될 수도 있다.
상기의 모듈 및 구성요소들은 단지 예시적이며, 본 발명은 다양한 방법들로 실행될 수도 있다. 특히 얼마의 구성요소들은 유사한 기능을 수행하는 다른 것들과 결합되거나, 얼마의 구성요소들은 단순화된 실행시 생략될 수도 있다. 각 기능들의 하드웨어 및 소프트웨어 실행은, 구성요소들 간에 그리고 단일 구성요소내에서 임의로 혼합될 수 있다.
하드웨어, 컴퓨터 소프트웨어 및 이러한 것들에 의해 수행되는 기능들은 전기 및 그와 같은 신호에 입각 또는 이용하여 수행될 수 있음을 쉽게 알 수 있을 것이다. 소프트웨어 실행은 ROM에 저장되거나 FALSH에 패치될 수도 있다.
본 발명의 바람직한 실시예를 요약하기 위하여, 컴퓨터 시스템내의 메모리에, 다수의 버퍼 존들이 버퍼 관리 시스템에 의해 규정된다. 명령은 공공의 버퍼 존에 버퍼들의 풀들의 수 NP를 규정하고, 각 풀에 대하여, 풀내 버퍼 수의 풀 크기 PS 및 그 풀내 버퍼의 크기 BS를 규정한다. 버퍼 관리 시스템은 각 버퍼 존에 대하여 버퍼 크기를 저장하고 풀 크기를 누적 및 저장하기 위하여 초기화된다. 버퍼를 어드레스하기 위하여, 버퍼 관리 시스템은 저장된 정보를 이용하여, 바람직한 풀 및 버퍼 수로부터 버퍼의 스타트 어드레스를 결정한다. 버퍼 관리 시스템은 또한 각 버퍼의 처음에 헤더를 규정한다. 한계밖의 조건에 대한 체킹이 또한 제공될 수 있다. 각각의 다른 클라이언트에 의해 할당된 다양한 전용 버퍼 존들은 유사하게 규정될 수 있다.
상기에서 본 발명은 단지 예시로서 설명되었으며, 본 발명의 범위 내에서 세부사항에 대한 변형이 이루어질 수 있음은 명백할 것이다. 상세한 설명, 및 (적절한 곳에서) 개시된 각 특성, 청구항 및 도면은 독립적으로, 또는 모든 적절한 결합으로 제공될 수도 있다.

Claims (20)

  1. 컴퓨터 시스템의 메모리 내의 버퍼 존에 버퍼들을 규정하고 어드레싱하기 위한 버퍼 관리 시스템으로서,
    다수의 풀의 크기를 저장하기 위한 풀 크기 저장 수단;
    상기 각 풀에 대하여 버퍼의 크기를 저장하기 위한 버퍼 크기 저장 수단; 및
    바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하기 위한 계산 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  2. 컴퓨터 시스템의 메모리 내의 다수의 버퍼 존 내에 버퍼들을 규정하고 어드레싱하기 위한 버퍼 관리 시스템으로서,
    다수의 풀 크기를 저장하기 위한 풀 크기 저장 수단;
    상기 각 풀에 대하여 버퍼의 크기를 저장하기 위한 버퍼 크기 저장 수단; 및
    바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하기 위한 계산 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  3. 제 2 항에 있어서, 다른 버퍼 존들의 오버랩을 검출하기 위한 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  4. 제 3 항에 있어서, 상기 버퍼 존의 스타트 어드레스를 저장하기 위한 수단과, 버퍼 존의 엔드 어드레스를 저장하기 위한 수단; 및 저장 수단으로부터 각 버퍼 존의 스타트 어드레스 및 엔드 어드레스를 수신하기 위한 수단 및 버퍼 존의 스타트 어드레스가 이전 버퍼 존의 엔드 어드레스보다 더 큰지를 결정하기 위한 수단을 포함하는 오버랩 검출 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  5. 선행하는 모든 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 누적된 형태의 풀 크기를 결정하고 이들을 그 형태로 풀 크기 저장 수단에 저장하기 위한 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  6. 선행하는 모든 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 각 풀의 처음에 지정된 영역을 규정하는 것을 특징으로 하는 버퍼 관리 시스템.
  7. 제 5 항 및 제 6 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 누적된 풀 크기를 직접 선택하거나 계산 수단의 출력을 선택하는 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  8. 선행하는 모든 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 바람직한 풀의 수, 바람직한 버퍼의 수, 및 바람직한 바이트는 제한 구역 밖의 값에 대하여 체크하는 수단을 포함하는 것을 특징으로 하는 버퍼 관리 시스템.
  9. 이전의 모든 항에 따른 버퍼 관리 시스템을 포함하는 수신기/디코더.
  10. 제 9 항에 있어서, 다수의 애플리케이션들을 저장하기 위한 수단을 포함하며, 상기 시스템은 하나의 애플리케이션으로의 할당을 위하여 버퍼 존 내에 버퍼들을 규정 및 어드레스하도록, 그리고 다른 애플리케이션으로의 할당을 위하여 다른 버퍼 존 내에 버퍼들을 규정 및 어드레스하도록 배열되는 것을 특징으로 하는 수신기/디코더.
  11. 컴퓨터 시스템의 메모리 내의 버퍼 존에 버퍼들을 규정 규정 및 어드레싱하는 방법으로서,
    다수의 풀 크기를 저장하는 단계;
    각 풀에 대하여 버퍼 크기를 저장하는 단계; 및
    바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 컴퓨터 시스템의 메모리내의 다수의 버퍼 존에 버퍼들을 규정 및 어드레싱하는 방법으로서, 각 버퍼 존에 대하여:
    다수의 풀 크기를 저장하는 단계;
    각 풀에 대하여 버퍼 크기를 저장하는 단계; 및
    바람직한 풀 내의 바람직한 버퍼의 어드레스를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서, 다른 버퍼 존들의 오버랩을 검출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    버퍼 존들의 스타트 어드레스를 저장하는 단계;
    버퍼 존들의 엔드 어드레스를 저장하는 단계; 및
    버퍼 존의 스타트 어드레스가 이전 버퍼 존의 엔드 어드레스 보다 더 큰지를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제 11 항 내지 제 14 항에 있어서, 상기 또는 각 버퍼 존에 대하여:
    누적된 형태의 풀 크기를 결정하는 단계; 및
    풀 크기를 그 형태로 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제 11 항 내지 제 15 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 각 풀의 처음에 지정된 영역을 규정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제 15 항 및 제 16 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 누적된 풀 크기를 바로 선택하거나 버퍼 풀들의 어드레스를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 11 항 내지 제 17 항에 있어서, 상기 또는 각 버퍼 존에 대하여, 바람직한 풀의 수, 바람직한 버퍼의 수, 및 바람직한 바이트의 제한구역 밖의 값에 대하여 체크하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 첨부된 도면에 관련하여 본 원에서 설명되고, 첨부된 도면에 도시된 실질적인 버퍼 관리 시스템.
  20. 첨부된 도면에 관련하여 본 원에서 설명되고, 첨부된 도면에 도시된 실질적인 컴퓨터 시스템의 메모리내 버퍼 존의 버퍼를 규정하고 어드레싱하는 방법.
KR1019997008512A 1997-03-21 1998-03-19 컴퓨터 메모리 구성 KR20000076408A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP97400650 1997-03-21
EP97400650.4 1997-03-21
WOPCT/EP97/02112 1997-04-25
PCT/EP1997/002112 WO1998043248A1 (en) 1997-03-21 1997-04-25 Computer memory organization
EP97121741.9 1997-12-10
EP97121741A EP0872798A1 (en) 1997-03-21 1997-12-10 Computer memory organization

Publications (1)

Publication Number Publication Date
KR20000076408A true KR20000076408A (ko) 2000-12-26

Family

ID=27222853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997008512A KR20000076408A (ko) 1997-03-21 1998-03-19 컴퓨터 메모리 구성

Country Status (16)

Country Link
EP (2) EP0872798A1 (ko)
JP (1) JP2001518217A (ko)
KR (1) KR20000076408A (ko)
CN (1) CN1255212A (ko)
AU (1) AU740887B2 (ko)
BR (1) BR9808288A (ko)
CA (1) CA2284146A1 (ko)
HU (1) HUP0002917A3 (ko)
ID (1) ID23427A (ko)
IL (1) IL131943A0 (ko)
NO (1) NO994542L (ko)
NZ (1) NZ500208A (ko)
PL (1) PL335766A1 (ko)
TR (1) TR199902269T2 (ko)
WO (1) WO1998043167A1 (ko)
ZA (1) ZA982384B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073218A1 (en) * 1998-12-23 2002-06-13 Bill J. Aspromonte Stream device management system for multimedia clients in a broadcast network architecture
US6567557B1 (en) 1999-12-10 2003-05-20 Stmicroelectronics, Inc. Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences
EP1276331A3 (en) * 1999-04-01 2005-06-01 Ravisent Technologies, Inc. Method for preventing dual-step half-pixel motion compensation accumulation errors in prediction-rich MPEG-2 sequences
US7168069B1 (en) 2000-07-12 2007-01-23 Stmicroelectronics, Inc. Dynamic generation of multimedia code for image processing
US7174429B2 (en) * 2001-12-28 2007-02-06 Intel Corporation Method for extending the local memory address space of a processor
US6931497B2 (en) * 2003-01-09 2005-08-16 Emulex Design & Manufacturing Corporation Shared memory management utilizing a free list of buffer indices
JP2005050286A (ja) 2003-07-31 2005-02-24 Fujitsu Ltd ネットワークノードマシンおよび情報ネットワークシステム
US7143263B2 (en) * 2003-10-16 2006-11-28 International Business Machines Corporation System and method of adaptively reconfiguring buffers
CN1304951C (zh) * 2004-05-28 2007-03-14 中兴通讯股份有限公司 一种数字信号处理通讯应用系统内存保护方法
CN101321250B (zh) * 2008-07-03 2010-06-02 四川长虹电器股份有限公司 一种电视机重要数据存储方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3596257A (en) * 1969-09-17 1971-07-27 Burroughs Corp Method and apparatus for allocating small memory spaces to a computer program
EP0559939A1 (de) * 1992-03-11 1993-09-15 Siemens Nixdorf Informationssysteme Aktiengesellschaft Schaltungsanordnung zur Überwachung von Zugriffen auf einen vorgegebenen Speicherbereich eines Speichers
JP2842738B2 (ja) * 1992-08-25 1999-01-06 富士通株式会社 オンライン処理システム
DE69516674T2 (de) * 1994-12-20 2000-12-28 Koninkl Philips Electronics Nv Verfahren und vorrichtung zur aufzeichnung und wiedergabe von daten in einem speichersystem

Also Published As

Publication number Publication date
IL131943A0 (en) 2001-03-19
JP2001518217A (ja) 2001-10-09
ZA982384B (en) 1998-09-28
HUP0002917A3 (en) 2002-11-28
EP0872798A1 (en) 1998-10-21
CA2284146A1 (en) 1998-10-01
PL335766A1 (en) 2000-05-22
HUP0002917A2 (hu) 2001-01-29
TR199902269T2 (xx) 2000-02-21
EP0968469A1 (en) 2000-01-05
WO1998043167A1 (en) 1998-10-01
NZ500208A (en) 2002-03-01
ID23427A (id) 2000-04-20
AU740887B2 (en) 2001-11-15
BR9808288A (pt) 2000-05-16
CN1255212A (zh) 2000-05-31
NO994542D0 (no) 1999-09-17
NO994542L (no) 1999-11-22
AU7038198A (en) 1998-10-20

Similar Documents

Publication Publication Date Title
US5539920A (en) Method and apparatus for processing an audio video interactive signal
CA2145898C (en) Method for controlling execution of an audio video interactive program
US6966063B1 (en) IEEE set top box device driver
KR20020035558A (ko) 개별 클래스로더 구현을 위한 방법 및 장치
KR20000076408A (ko) 컴퓨터 메모리 구성
US6804820B1 (en) Modem control
JP2002513253A (ja) レシーバ/デコーダおよびビデオデータの処理方法
JP2003504977A (ja) アプリケーションを試験するための装置および方法
KR100604211B1 (ko) 리시버/디코더 및 이를 구비한 방송 시스템
MXPA99008551A (es) Organizacion de memoria de computadora
CZ332099A3 (cs) Organizace počítačové paměti
MXPA00003213A (en) Modem control
MXPA00003387A (en) Multithread data processor
MXPA00009426A (en) Memory management in a receiver/decoder

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid