KR100613857B1 - Set-top apparatus and method for logically extending memory device using network - Google Patents

Set-top apparatus and method for logically extending memory device using network Download PDF

Info

Publication number
KR100613857B1
KR100613857B1 KR1019990023300A KR19990023300A KR100613857B1 KR 100613857 B1 KR100613857 B1 KR 100613857B1 KR 1019990023300 A KR1019990023300 A KR 1019990023300A KR 19990023300 A KR19990023300 A KR 19990023300A KR 100613857 B1 KR100613857 B1 KR 100613857B1
Authority
KR
South Korea
Prior art keywords
memory
program
central processing
program block
network
Prior art date
Application number
KR1019990023300A
Other languages
Korean (ko)
Other versions
KR20010003135A (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
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1019990023300A priority Critical patent/KR100613857B1/en
Publication of KR20010003135A publication Critical patent/KR20010003135A/en
Application granted granted Critical
Publication of KR100613857B1 publication Critical patent/KR100613857B1/en

Links

Images

Classifications

    • CCHEMISTRY; METALLURGY
    • C21METALLURGY OF IRON
    • C21DMODIFYING THE PHYSICAL STRUCTURE OF FERROUS METALS; GENERAL DEVICES FOR HEAT TREATMENT OF FERROUS OR NON-FERROUS METALS OR ALLOYS; MAKING METAL MALLEABLE, e.g. BY DECARBURISATION OR TEMPERING
    • C21D9/00Heat treatment, e.g. annealing, hardening, quenching or tempering, adapted for particular articles; Furnaces therefor
    • C21D9/52Heat treatment, e.g. annealing, hardening, quenching or tempering, adapted for particular articles; Furnaces therefor for wires; for strips ; for rods of unlimited length
    • C21D9/54Furnaces for treating strips or wire
    • C21D9/56Continuous furnaces for strip or wire
    • C21D9/562Details
    • C21D9/565Sealing arrangements
    • CCHEMISTRY; METALLURGY
    • C21METALLURGY OF IRON
    • C21DMODIFYING THE PHYSICAL STRUCTURE OF FERROUS METALS; GENERAL DEVICES FOR HEAT TREATMENT OF FERROUS OR NON-FERROUS METALS OR ALLOYS; MAKING METAL MALLEABLE, e.g. BY DECARBURISATION OR TEMPERING
    • C21D9/00Heat treatment, e.g. annealing, hardening, quenching or tempering, adapted for particular articles; Furnaces therefor
    • C21D9/52Heat treatment, e.g. annealing, hardening, quenching or tempering, adapted for particular articles; Furnaces therefor for wires; for strips ; for rods of unlimited length
    • C21D9/54Furnaces for treating strips or wire
    • C21D9/56Continuous furnaces for strip or wire
    • C21D9/561Continuous furnaces for strip or wire with a controlled atmosphere or vacuum
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F27FURNACES; KILNS; OVENS; RETORTS
    • F27DDETAILS OR ACCESSORIES OF FURNACES, KILNS, OVENS, OR RETORTS, IN SO FAR AS THEY ARE OF KINDS OCCURRING IN MORE THAN ONE KIND OF FURNACE
    • F27D99/00Subject matter not provided for in other groups of this subclass
    • F27D99/0073Seals
    • F27D2099/0078Means to minimize the leakage of the furnace atmosphere during charging or discharging

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

본 발명은 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치 및 네트워크를 통한 논리적 메모리 확장 방법에 관한 것임.The present invention relates to a set-top device that logically expands memory through a network, and a method of expanding logical memory through a network.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

본 발명은, 셋탑 장치의 상주 메모리 및 전파중계소의 원격 메모리와 셋탑 장치에 있는 중앙처리부 간에 데이터 액세스를 적절히 조절하여 셋탑 장치에게 네트워크 가상 메모리를 제공하도록 하기 위한 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치 및 네트워크를 통한 논리적 메모리 확장 방법을 제공하고자 함.The present invention provides a set-top that logically extends memory through a network to provide network virtual memory to the set-top device by appropriately adjusting data access between the resident memory of the set-top device and the remote memory of the head-end and the central processing unit of the set-top device. To provide a logical memory expansion method through devices and networks.

3. 발명의 해결방법의 요지 3. Summary of Solution to Invention

본 발명은, 네트워크의 셋탑 장치에 있어서, 상기 셋탑 장치가 데이터 전송 링크를 통하여 상기 네트워크를 이용할 수 있도록 하는 네트워크 인터페이스 수단; 상기 셋탑 장치를 제어하고 시청자가 선택한 서비스에 대한 프로그램의 명령들을 수행하기 위한 중앙처리수단; 상기 중앙처리수단에서 최근에 사용한 프로그램 블록과 사용하는 빈도수가 높은 프로그램 블록을 보관하는 메모리; 및 상기 중앙처리수단으로부터의 프로그램 블록 요청을 받아 상기 메모리에 저장되어 있는지를 확인하고, 저장되어 있으면 이를 상기 중앙처리수단으로 전달하며, 저장되어 있지 않으면 상기 네트워크 인터페이스 수단을 통하여 원격 메모리로부터 이를 받아 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 메모리 관리수단을 포함함.The present invention provides a set-top device in a network, comprising: network interface means for enabling the set-top device to use the network via a data transmission link; Central processing means for controlling the set-top device and executing commands of a program for a service selected by a viewer; A memory for storing a program block recently used by the central processing means and a program block with a high frequency of use; And receiving a program block request from the central processing means and confirming that the program block is stored in the memory, and if it is stored, transmitting it to the central processing means. Memory management means for storing in memory and forwarding to said central processing means.

4. 발명의 중요한 용도4. Important uses of the invention

본 발명은 네트워크에 연결된 셋탑 장치 등에 이용됨.The present invention is used in a set-top device connected to a network.

네트워크, 셋탑 장치, 케이블 TV, 확장메모리, 원격메모리Network, Set-top Device, Cable TV, Extended Memory, Remote Memory

Description

네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치 및 네트워크를 통한 논리적 메모리 확장 방법{SET-TOP APPARATUS AND METHOD FOR LOGICALLY EXTENDING MEMORY DEVICE USING NETWORK} SET-TOP APPARATUS AND METHOD FOR LOGICALLY EXTENDING MEMORY DEVICE USING NETWORK}             

도 1 은 본 발명이 적용되는 케이블 텔레비젼(CA-TV) 네트워크의 구성예시도.1 is an exemplary configuration diagram of a cable television (CA-TV) network to which the present invention is applied.

도 2 는 본 발명에 따른 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치의 일실시예 구성도.2 is a diagram illustrating an embodiment of a set-top device logically extending a memory through a network according to the present invention.

도 3 은 본 발명에 이용되는 메모리 주소 변환 과정의 설명예시도.3 is an exemplary view illustrating a memory address translation process used in the present invention.

도 4 는 본 발명에 이용되는 프로그램 블록의 일예시도.
도 5 는 본 발명에 따른 메모리 관리부에서의 데이터 처리 방법에 대한 일실시예 흐름도.
4 is an exemplary view of a program block used in the present invention.
5 is a flowchart illustrating a data processing method in a memory management unit according to the present invention.

도 6 은 본 발명의 다른 실시예에 의한 논리적으로 메모리를 확장하기 위한 프로그램 코드 처리도.
도 7 은 본 발명의 다른 실시예에 따른 링커에서 실행 코드로 된 프로그램 생성 방법에 대한 흐름도.
도 8 은 본 발명의 다른 실시예에 따라 생성된 프로그램 블록의 일예시도.
도 9 는 본 발명의 다른 실시예에 따른 메모리 관리부에서의 데이터 처리 방법에 대한 흐름도.
6 is a program code processing diagram for logically expanding a memory according to another embodiment of the present invention.
7 is a flowchart of a program generation method in executable code in a linker according to another embodiment of the present invention.
8 is an exemplary view of a program block generated according to another embodiment of the present invention.
9 is a flowchart illustrating a data processing method in a memory management unit according to another embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

21 : 중앙처리부 22 : 메모리 관리부21: central processing unit 22: memory management unit

23 : 캐쉬 메모리 24 : 네트워크 인터페이스 모듈23: cache memory 24: network interface module

25 : 데이터 엑세스 패스25: data access pass

본 발명은 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치 및 네트워크를 통한 논리적 메모리 확장 방법에 관한 것으로, 특히 네트워크를 통해 원격의 사용 가능한 메모리를 활용하여 논리적으로 장치의 메모리 용량을 확장하 는 셋탑장치 및 네트워크를 통해 원격의 메모리를 활용함으로써 논리적으로 메모리를 확장하는 기술에 관한 것이다.The present invention relates to a set-top device that logically expands memory through a network and a logical memory expansion method through a network. Particularly, a set-top device that logically expands a memory capacity of a device by utilizing a memory available remotely through a network. And a technique for logically expanding memory by utilizing remote memory over a network.

케이블 텔레비전(CA-TV : CAble TV) 산업은 제공하는 서비스의 종류와 복잡도 측면에서 혁명적인 변화를 맞고 있다. CA-TV 서비스와 대화형 응용 서비스를 지원하기 위한 장비에 대한 고객들의 요구는 계속 증가하고 있으며, 이런 추세는 지속될 것으로 보인다. 대화식이며 고객 중심의 소프트웨어 응용은 일반적으로 실시간 서비스를 요구하며, 이는 셋탑 장치에 용량이 큰 메모리가 장착되는 것을 필요로 한다. 그러나, 종래의 셋탑 장치는 메모리 용량의 제약으로 다양한 서비스를 제공할 수 없는 문제점이 있었다.The cable television (CA-TV) industry is undergoing revolutionary changes in the type and complexity of services it offers. Customer demand for equipment to support CA-TV services and interactive application services continues to grow, and this trend is likely to continue. Interactive and customer-centric software applications typically require real-time services, which require set-top devices to be equipped with large memory. However, the conventional set-top device has a problem in that various services cannot be provided due to limitations in memory capacity.

또한, CA-TV 서비스를 많은 이용자가 이용하도록 하기 위해서는, 그 서비스 이용료 뿐만 아니라 필요한 하드웨어와 소프트웨어가 저가일 필요성이 있으며, 셋탑 장치는 CA-TV 서비스를 제공받는데 있어 중요한 비용요소가 되는데, 셋탑 장치의 메모리는 비교적 고가의 전자 장치로 셋탑 장치의 전체 가격에서 차지하는 비중이 크기 때문에 양질의 CA-TV 서비스를 위해 무조건 메모리 용량을 크게 할 수 없는 문제점이 있다.In addition, in order to make the CA-TV service available to many users, not only the service fee but also the necessary hardware and software need to be low, and the set-top device becomes an important cost factor for receiving the CA-TV service. Memory is a relatively expensive electronic device and has a large portion of the total price of the set-top device. Therefore, there is a problem in that the memory capacity cannot be increased unconditionally for a high quality CA-TV service.

본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 셋탑 장치의 상주 메모리 및 전파중계소의 원격 메모리와 셋탑 장치에 있는 중앙처리부간에 데이터 액세스를 적절히 조절하여 셋탑 장치에게 네트워크 가상 메모리를 제공하도록 하기 위한 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치 및 네트워크를 통한 논리적 메모리 확장 방법을 제공하는데 그 목적이 있다. The present invention has been proposed to solve the above problems, and provides network virtual memory to the set-top device by appropriately adjusting data access between the resident memory of the set-top device and the remote memory of the head-end and the central processing unit of the set-top device. An object of the present invention is to provide a set-top device that logically expands memory through a network and a logical memory expansion method through a network.

상기 목적을 달성하기 위한 본 발명의 장치는, 네트워크의 셋탑 장치에 있어서, 상기 셋탑 장치가 데이터 전송 링크를 통하여 상기 네트워크를 이용할 수 있도록 하는 네트워크 인터페이스 수단; 상기 셋탑 장치를 제어하고 시청자가 선택한 서비스에 대한 프로그램의 명령들을 수행하기 위한 중앙처리수단; 상기 중앙처리수단에서 최근에 사용한 프로그램 블록과 사용하는 빈도수가 높은 프로그램 블록을 보관하는 메모리; 및 상기 중앙처리수단으로부터의 프로그램 블록 요청을 받아 상기 메모리에 저장되어 있는지를 확인하고, 저장되어 있으면 이를 상기 중앙처리수단으로 전달하며, 저장되어 있지 않으면 상기 네트워크 인터페이스 수단을 통하여 원격 메모리로부터 이를 받아 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 메모리 관리수단을 포함하여 이루어진 것을 특징으로 한다.An apparatus of the present invention for achieving the above object comprises: a set top apparatus of a network, comprising: network interface means for enabling the set top apparatus to use the network via a data transmission link; Central processing means for controlling the set-top device and executing commands of a program for a service selected by a viewer; A memory for storing a program block recently used by the central processing means and a program block with a high frequency of use; And receiving a program block request from the central processing means and confirming that the program block is stored in the memory, and if it is stored, transmitting it to the central processing means, and if not, receiving it from the remote memory through the network interface means. And memory management means for storing the data in the memory and transmitting the same to the central processing means.

또한, 본 발명의 방법은, 네트워크에서의 셋탑 장치에 적용되는 논리적 메모리 확장 방법에 있어서, 상기 셋탑 장치의 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 메모리에 저장되어 있는지를 확인하여 있으면 상기 프로그램 블록을 상기 중앙처리수단으로 전달하고, 없으면 원격메모리로부터 전달받아 이를 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제1 전달단계; 및 상기 중앙처리수단에서 처리중인 프로그램 블록이 분기명령어(branch instructions)를 포함하고 있고 상기 메모리에 저장되어 있지 않으면 상기 원격메모리로부터 상기 프로그램 블록을 수신하여 상기 메모리에 저장하는 제1 저장단계를 포함하여 이루어진 것을 특징으로 한다.In addition, the method of the present invention, in the logical memory expansion method applied to the set-top device in the network, if the program block is requested from the central processing means of the set-top device to confirm whether it is stored in the memory if the program block Transmitting to the central processing means, and if not, receiving from the remote memory, storing the same in the memory, and transmitting the received data to the central processing means; And a first storing step of receiving the program block from the remote memory and storing the program block in the memory if the program block being processed in the central processing means includes branch instructions and is not stored in the memory. Characterized in that made.

또한, 본 발명의 다른 방법은, 네트워크에서의 셋탑 장치에 적용되는 논리적 메모리 확장 방법에 있어서, 상기 네트워크를 통하여 서비스하고자 하는 프로그램을 블록으로 분할하고 프로그램의 실행 순서상 충분히 앞선 시간에 실행되도록 블록 패치 명령어를 프로그램 블록에 삽입하여 저장하는 제1 저장단계; 및 상기 셋탑 장치의 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 메모리에 저장되어 있는지를 확인하여, 저장되어 있으면 상기 프로그램 블록을 상기 중앙처리수단으로 전달하고, 저장되어 있지 않으면 원격메모리로부터 전달받아 이를 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제1 전달단계를 포함하여 이루어진 것을 특징으로 한다.In addition, another method of the present invention is a logical memory expansion method applied to a set-top device in a network, the block patch to be divided into blocks to be serviced through the network to be executed at a time sufficiently ahead of the execution order of the program A first storing step of inserting and storing an instruction in a program block; And confirming that the program block is requested from the central processing unit of the set-top device and stored in the memory. If the program block is stored, the program block is transferred to the central processing unit. It characterized in that it comprises a first transfer step of storing in the memory and the transfer to the central processing means.

삭제delete

삭제delete

본 발명은, 네트워크를 통해 연결되어있는 전파중계소(headend)의 사용가능한 메모리를 이용하여 셋탑 장치내의 메모리 영역을 확장한다. 셋탑 장치내의 메모리 관리부(메모리 관리 수단으로서의 메모리 관리부)는 셋탑 장치의 중앙처리부(중앙처리수단으로서의 중앙처리부)가 수행하는 프로그램을 감시하고, 전파중계소로부터 프로그램 블록을 선반입하고, 이 프로그램 블록을 셋탑 장치의 메모리에 저장시킨다. The present invention extends the memory area within a set-top device by utilizing the available memory of headends connected through a network. The memory management unit (memory management unit as the memory management means) in the set-top device monitors the program executed by the central processing unit (the central processing unit as the central processing means) of the set-top device, inserts the program block from the head-end, and sets the program block into the set-top device. Stored in the device's memory.

메모리 관리부는 셋탑 장치에서 한정된 자원인 메모리를 하나의 프로그램 블록을 저장할 수 있는 충분한 크기의 세그먼트 단위로 분리하여 관리한다. 프로그램 블록은 셋탑 장치의 중앙처리부에 의해 필요한 경우 전파중계소로부터 다운로드 되고, 사용되지 않을 프로그램 블록을 저장하고 있는 메모리 세그먼트는 재사용된다. 메모리 관리부는 중앙처리부가 언제든지 수행할 수 있는 실행 코드를 확보하기 위해 충분한 선읽기 기능(read-ahead capability)을 제공한다.The memory manager divides and manages a memory, which is a limited resource in the set-top device, into segments of a sufficient size to store one program block. The program block is downloaded from the head-end by the central processing unit of the set-top device if necessary, and the memory segment storing the program block that is not to be used is reused. The memory manager provides sufficient read-ahead capability to ensure that the central processing unit can execute code at any time.

이때의 네트워크는 쌍방향 통신의 CA-TV 네트워크 뿐만 아니라, 고화질 TV(HDTV : High Definition Television), 위성방송 등 셋탑 장치를 사용하여 연결되는 네트워크를 말한다.In this case, the network refers to a network connected using a set-top device such as high definition television (HDTV) and satellite broadcasting, as well as a two-way communication CA-TV network.

상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 실시예에서는 케이블 텔레비젼(CA-TV) 네트워크를 예로 들어 설명한다.In the embodiment of the present invention, a cable television (CA-TV) network is taken as an example.

도 1 은 본 발명이 적용되는 케이블 텔레비젼(CA-TV) 네트워크의 구성예시도이다.1 is an exemplary configuration diagram of a cable television (CA-TV) network to which the present invention is applied.

도 1에 도시된 바와 같이, CA-TV 네트워크는 텔레비전(11)과, 셋탑 장치(12)와, CA-TV 전송 링크(13) 및 전파중계소(14)로 이루어진다.As shown in FIG. 1, the CA-TV network consists of a television 11, a set top device 12, a CA-TV transmission link 13 and a headend 14.

도면에서는 단순하게 하나의 셋탑 장치(12)를 그렸지만 CA-TV 네트워크는 다수의 셋탑 장치를 포함한다. 셋탑 장치(12)는 큰 대역폭을 제공하는 CA-TV 전송 링크(13)를 통해 전파중계소(14)와 연결된다. In the figure, a single set-top device 12 is simply drawn, but the CA-TV network includes a plurality of set-top devices. The set top device 12 is connected to the headend 14 via a CA-TV transmission link 13 providing a large bandwidth.

일반적인 CA-TV 네트워크에서 그러하듯이, CA-TV 네트워크 운영자는 전파중계소(14)로부터 CA-TV 시청자들에게 여러 종류의 서비스를 제공한다. 이 분야의 종사자들은 잘 알듯이 전파중계소(14)는 방송국(각종 서비스의 제작처)에서 보내주는 각종 비디오와 오디오 프로그램(신호)을 수신하고, 그 프로그램들을 다량의 할당된 방송 채널로 CA-TV 전송 링크(13)를 통해 송신하기 위한 장비를 갖는다. 또한, 전파중계소(14)는 지역적으로 방송 채널을 통하여 프로그램을 공급하는 출발지도 될 수 있다. 더불어, 프로그램 편성표와 다른 필요한 데이터와 같은 시스템 운영자 메시지가 시청자들에게 CA-TV 전송 링크(13)를 통해 송신될 수 있다.
좀 더 효과적으로 하기 위해, 이러한 제어 정보는 제어 데이터 채널(Control Data Channel)이라는 고유 데이터 채널을 통해 전송된다.
As in a typical CA-TV network, a CA-TV network operator provides various types of services from the headend 14 to CA-TV viewers. As those skilled in the art are well aware, the head office 14 receives various video and audio programs (signals) from broadcast stations (producers of various services) and transmits the programs to a large number of assigned broadcast channels. Has equipment for transmitting over the link 13. In addition, the head-end 14 may be a starting point for supplying a program through a broadcast channel locally. In addition, system operator messages, such as program schedules and other necessary data, may be sent to viewers via the CA-TV transmission link 13.
To be more effective, this control information is transmitted over a unique data channel called a Control Data Channel.

전파중계소(14)는 메모리(142)를 장착한 주 컴퓨터(141)를 갖고 있다. 주 컴퓨터(141)는 분산되어 있는 셋탑 장치(12)의 네트워크 환경에서 저장 장치와 프로그램 제작 장치가 된다. 주 컴퓨터(141)는 셋탑 장치(12)가 이용하거나 수행할 각종 응용 서비스에 필요한 컴퓨터 프로그램들을 갖고 있다. The head office 14 has a main computer 141 equipped with a memory 142. The main computer 141 becomes a storage device and a program production device in a network environment of the distributed set-top device 12. The main computer 141 has computer programs necessary for various application services to be used or performed by the set-top device 12.

CA-TV 전송 링크(13)는 광동축혼합(HFC : hybrid fiber coax)망, 에프티티씨(FTTC : fiber to the curb), 비대칭디지털가입자회선(ADSL : Asymmetric Digital Subscriber Line), 비동기 전송모드(ATM : Asynchronous Transfer Mode)망 등을 사용한다. CA-TV transmission link 13 is a hybrid fiber coax (HFC), fiber to the curb (FTTC), an asymmetric digital subscriber line (ADSL), asynchronous transmission mode ( ATM (Asynchronous Transfer Mode) network is used.

도 2 는 본 발명에 따른 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치의 일실시예 구성도이다.2 is a configuration diagram of an embodiment of a set-top device logically expanding a memory through a network according to the present invention.

도 2에 도시된 바와 같이, 본 발명에 따른 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치(12)는 중앙처리수단으로서의 중앙처리부(21)와, 메모리 관리 수단으로서의 메모리 관리부(22)와, 메모리로서의 캐쉬 메모리(23)와, 네트워크 인터페이스 수단으로서의 네트워크 인터페이스 모듈(24) 및 데이터 엑세스 패스(25)로 구성된다. As shown in FIG. 2, the set-top device 12 logically extending the memory through the network according to the present invention includes a central processing unit 21 as a central processing unit, a memory management unit 22 as a memory managing unit, and a memory. Cache memory 23 as a network interface, a network interface module 24 as a network interface means, and a data access path 25. As shown in FIG.

여기서, 네트워크 인터페이스 모듈(24)은 셋탑 장치가 CA-TV 전송 링크(13)를 이용할 수 있게 하는 통신 인터페이스이다. Here, the network interface module 24 is a communication interface that enables the set-top device to use the CA-TV transmission link 13.

중앙처리부(21)는 셋탑 장치(12)를 제어하고 시청자가 선택한 응용 서비스에 대한 컴퓨터 프로그램의 명령어들을 수행한다. 예를 들어, 시청자가 CA-TV 네트워크를 이용하여 홈 뱅킹 거래를 수행한다면, 중앙처리부(21)는 홈 뱅킹 프로그램의 명령어들을 처리하게 된다.The central processing unit 21 controls the set-top device 12 and executes instructions of a computer program for the application service selected by the viewer. For example, if the viewer performs a home banking transaction using the CA-TV network, the central processing unit 21 processes the instructions of the home banking program.

셋탑 장치(12)에서 무한량의 메모리를 사용할 수 있다면, 뱅킹 프로그램의 모든 명령어들은 캐쉬 메모리(23)에 다운로드되며, 중앙처리부(21)는 캐쉬 메모리(23)에서 필요한 명령어를 빠르게 가져올 수 있을 것이다. 그러나, 고가의 메모리는 셋탑 장치(12)에 무한량으로 탑재할 수 없으므로, 본 실시예에서는 셋탑 장치(12)에 장착되는 캐쉬 메모리의 크기로 128킬로바이트(KB) 정도로 생각하기로 한다.If an infinite amount of memory is available in the set-top device 12, all instructions of the banking program are downloaded to the cache memory 23, and the central processing unit 21 may quickly obtain the necessary instructions from the cache memory 23. However, since expensive memories cannot be mounted in the set-top device 12 indefinitely, the size of the cache memory mounted in the set-top device 12 is assumed to be about 128 kilobytes (KB).

CA-TV 네트워크에서 시청자들을 위한 대부분의 응용 서비스는 128킬로바이트 보다 비교적 크다. 따라서, 이러한 응용 서비스는 현재의 대부분의 셋탑 장치(12)에서 수행할 수 없다.Most application services for viewers in CA-TV networks are relatively larger than 128 kilobytes. Thus, such application services cannot be performed in most current set-top devices 12.

중앙처리부(21)는 데이터 액세스 패스(25)를 통하여 메모리 관리부(22)와 맞물려있다. 데이터 액세스 패스(25)는 메모리 관리부(22)가 중앙처리부(21)의 데이터 버스와 직접적으로 인터페이스가 되도록 하는 직렬 버스로 이루어진다. The central processing unit 21 is engaged with the memory management unit 22 via the data access path 25. The data access path 25 consists of a serial bus which allows the memory management unit 22 to interface directly with the data bus of the central processing unit 21.

또한, 중앙처리부(21)는 특정 응용의 명령어들을 처리해 가면서 부가적으로 필요한 데이터들을 데이터 액세스 패스(25)와 메모리 관리부(22)를 경유하여 캐쉬 메모리(23)로부터 가져온다.In addition, the central processing unit 21, while processing instructions of a specific application, additionally obtains necessary data from the cache memory 23 via the data access path 25 and the memory management unit 22.

메모리 관리부(22)는 중앙처리부(21)가 캐쉬 메모리(23)로부터 어떤 프로그램 블록을 가져 올지를 감시하고, 중앙처리부(21)를 위해 메모리 가상 주소 매핑 기능을 수행한다. 중앙처리부(21)는 캐쉬 메모리(23)에 로드된 프로그램 블록에 대한 물리 메모리 주소를 알지 못하기 때문에, 메모리 관리부(22)가 중앙처리부(21)로부터 데이터 액세스 패스(25)를 통해 제시된 논리 메모리 주소를 캐쉬 메모리(23)의 물리 메모리 주소로 변환한다.The memory manager 22 monitors which program block the CPU 21 gets from the cache memory 23 and performs a memory virtual address mapping function for the CPU 21. Since the central processing unit 21 does not know the physical memory address for the program block loaded in the cache memory 23, the logical memory presented by the memory management unit 22 through the data access path 25 from the central processing unit 21. The address is converted into the physical memory address of the cache memory 23.

일련의 프로그램 블록들은 캐쉬 메모리(23)에 있다. 캐쉬 메모리(23)는 크기가 한정되어 있으므로 메모리 관리부(22)는 캐쉬 메모리(23)에 있는 프로그램 블록들을 관리하여 좀 더 급한 프로그램 블록과 가장 오랫동안 사용되지 않고 있는 프로그램 블록을 교체하는 작업을 해야 한다. The series of program blocks is in cache memory 23. Since the cache memory 23 is limited in size, the memory manager 22 manages program blocks in the cache memory 23 to replace a more urgent program block and a program block that has not been used for the longest time. .

캐쉬 메모리(23)는 최근에 사용한 프로그램 블록과 사용하는 빈도수가 높은 프로그램 블록을 보관하며, 연속적인 프로그램 블록 요구에 대해 전파중계소(14)에서 다운로드 받지않고 바로 제공할 수 있도록 한다. The cache memory 23 stores recently used program blocks and frequently used program blocks, and can provide the program blocks immediately without being downloaded from the head-end 14 for successive program block requests.

가장 빈번히 사용되는 프로그램 블록은 우선순위가 가장 높고, 가장 오랫동안 사용되지 않은 프로그램 블록은 우선순위가 가장 낮다. 새로운 프로그램 블록이 캐쉬 메모리(23)에 다운로드해야 하는데 사용가능한 공간이 없으면 캐쉬 메모리(23)에 있는 우선 순위가 가장 낮은 프로그램 블록을 삭제하거나, 덮어쓰게 한다. 캐쉬 메모리(23)로 직접 접근하는 것은 CA-TV 네트워크로 접근할 때 보다 처리 시간이 훨씬 적다는 것은 자명하다.The program block that is used most frequently has the highest priority, and the program block that has not been used for the longest has the lowest priority. If a new program block needs to be downloaded to the cache memory 23 and there is no space available, the program block having the lowest priority in the cache memory 23 is deleted or overwritten. It is obvious that direct access to the cache memory 23 takes much less processing time than access to a CA-TV network.

중앙처리부(21)와 메모리 관리부(22)가 데이터 액세스 패스(25)를 통하여 연결될 때, 중앙처리부(21)와 메모리 관리부(22) 사이에는 두 개의 채널이 존재할 수 있다. 이때 하나는 제어 데이터를 위한 채널이고, 다른 하나는 프로그램 명령어(instruction)와 데이터를 위한 채널이다. When the CPU 21 and the memory manager 22 are connected through the data access path 25, two channels may exist between the CPU 21 and the memory manager 22. At this time, one is a channel for control data, and the other is a channel for program instructions and data.

도 3 은 본 발명에 이용되는 메모리 주소 변환 과정의 설명예시도로서, 논리 메모리 주소를 물리 메모리 주소로 변환하는 과정, 즉 가상 주소 메커니즘은 중앙처리부(21)가 메모리 관리부(22)로 원하는 프로그램 블록의 논리 메모리 주소를 전달하면서 시작된다. 3 is an exemplary view illustrating a memory address translation process used in the present invention. The process of converting a logical memory address into a physical memory address, that is, a virtual address mechanism, is a program block desired by the central processing unit 21 as the memory manager 22. It starts by passing its logical memory address.

삭제delete

도 3 에 도시된 바와 같이, 논리 메모리 주소는 버퍼(31)에 임시로 저장된다. 메모리 관리부(22)는 논리 메모리 주소(321)에 대한 물리 메모리 주소(322)의 메모리 위치 정보 지도(32)를 갖고 있다. As shown in FIG. 3, the logical memory address is temporarily stored in the buffer 31. The memory manager 22 has a memory location information map 32 of the physical memory address 322 with respect to the logical memory address 321.

본 실시예에서 메모리 주소 방식은 32 비트 주소 공간을 갖는다. 이 분야의 숙련된 사람은 본 발명을 시스템의 요구 사항에 따라 64 비트나 그 이상의 주소 공간으로도 적용할 수 있는 것을 알 수 있다.In this embodiment, the memory address scheme has a 32-bit address space. Those skilled in the art will appreciate that the present invention can be applied to address spaces of 64 bits or more, depending on the requirements of the system.

버퍼(31)에서 새로운 논리 메모리 주소를 발견했을 때 메모리 관리부(22)는 메모리 위치 정보 지도(32)를 검색한다. 논리 메모리 주소(321)는 대응하는 물리 메모리 주소(322)를 가지고 있어서 메모리 관리부(22)가 이를 중앙처리부(21)로 전달하게 한다. When a new logical memory address is found in the buffer 31, the memory manager 22 searches the memory location information map 32. The logical memory address 321 has a corresponding physical memory address 322 such that the memory manager 22 transfers it to the central processing unit 21.

첫 번째 예를 들면, 도 3 에서 중앙처리부(21)가 1006 논리 메모리 주소의 프로그램 블록을 요구하면 메모리 관리부(22)는 메모리 위치 정보 지도(32)를 통하여 1006 논리 메모리 주소를 찾는다. 도 3 에서 대응하는 물리 메모리 주소는 24이다. 따라서, 메모리 관리부(22)는 캐쉬 메모리(23)에 24 물리 메모리 주소로 접근하여 1006 논리 메모리 주소의 프로그램 블록을 중앙처리부(21)로 전달한다. For example, in FIG. 3, when the central processing unit 21 requests a program block of a 1006 logical memory address, the memory manager 22 finds the 1006 logical memory address through the memory location information map 32. The corresponding physical memory address in FIG. 3 is 24. Accordingly, the memory manager 22 accesses the cache memory 23 with 24 physical memory addresses and transfers the program block of the 1006 logical memory address to the central processing unit 21.

두 번째 예를 들면, 중앙처리부(21)가 1007 논리 메모리 주소의 프로그램 블록을 요구하면, 메모리 관리부(22)는 메모리 위치 정보 지도(32)를 검색하여 이 프로그램 블록이 캐쉬 메모리(23)에 적재되어 있지 않음을 알게 된다. 메모리 관리부(22)는 즉시 네트워크 인터페이스 모듈(24)을 이용해서 전파중계소(14)로부터 이 프로그램 블록을 가져온다. 1007 프로그램 블록은 캐쉬 메모리(23)에 있는 임의의 물리 메모리 주소에 저장될 것이다. 메모리 위치 정보 지도(32)는 갱신되며 1007 프로그램 블록은 중앙처리부(21)로 전달될 것이다. In the second example, when the central processing unit 21 requests a program block of 1007 logical memory address, the memory manager 22 searches the memory location information map 32 and loads the program block into the cache memory 23. You know that it is not. The memory manager 22 immediately obtains this program block from the head-end 14 using the network interface module 24. The 1007 program block will be stored at any physical memory address in cache memory 23. The memory location information map 32 is updated and the 1007 program block will be transferred to the central processing unit 21.

일단 변환 과정이 수행되면, 메모리 관리부(22)는 중앙처리부(21)가 요구한 프로그램 블록에 대응하는 물리 메모리 주소를 검색하게 된다.Once the conversion process is performed, the memory manager 22 searches for the physical memory address corresponding to the program block requested by the CPU 21.

도 4 및 도 5 는 셋탑 장치에서 네트워크를 통한 논리적 메모리 확장 방법에 대해 설명한 것이다.4 and 5 illustrate a logical memory expansion method through a network in a set-top device.

셋탑 장치(12)내의 메모리 관리부(22)가 중앙처리부(21)에서 실행중인 프로그램 블록에 대해 선읽기 기능(read-ahead capability)을 통하여 앞으로 필요한 프로그램 블록을 미리 캐쉬 메모리(23)에 적재시킴으로써 논리적으로 메모리를 확장하게 된다.The memory manager 22 in the set-top device 12 logically loads the necessary program blocks into the cache memory 23 in advance through a read-ahead capability to the program blocks executed in the central processing unit 21. Expand memory.

도 4 는 본 발명에 이용되는 프로그램 블록의 일예시도이다.4 is an exemplary view of a program block used in the present invention.

가상 주소 관리 기능을 제공하는 것과 함께, 메모리 관리부(22)는 현재 수행 중인 프로그램 블록이 분기 명령어(branch instructions)를 포함하고 있는가를 조사하여 선읽기(read ahead) 기능을 수행한다. In addition to providing a virtual address management function, the memory manager 22 performs a read ahead function by checking whether a program block currently being executed includes branch instructions.

도 4에 도시된 바와 같이, 현재 수행중인 프로그램 블록인 2600은 두 개의 분기 명령어(41, 42)를 포함하고 있다. 메모리 관리부(22)는 이 블록을 조사하여 두 개의 분기 명령어에 의해 각각 2700, 2800 프로그램 블록이 필요하다는 점을 착안하여 중앙처리부(21)가 분기 명령어를 실행하기 전에 2700과 2800 두 개의 블록을 미리 가져와서 캐쉬 메모리(23)에 적재한다. 즉, 두 개의 블록을 선반입(pre-fetch)한다. As shown in FIG. 4, the currently executing program block 2600 includes two branch instructions 41 and 42. The memory manager 22 examines this block and considers that 2700 and 2800 program blocks are required by two branch instructions, so that the 2700 and 2800 blocks are previewed before the CPU 21 executes the branch instruction. It is taken and loaded into the cache memory 23. That is, pre-fetch two blocks.

따라서, 전파중계소(14)로부터 필요한 블록이 다운로드될 때까지 기다릴 필요없이 메모리 관리부(22)는 캐쉬 메모리(23)에서 가져온 블록을 즉시 중앙처리부(21)로 제공할 수 있다. 전파중계소(14)를 거치지 않을수록 프로그램의 처리 속도는 그 만큼 빨라진다.Therefore, the memory management unit 22 can immediately provide the central processing unit 21 with the block taken from the cache memory 23 without having to wait for the required block to be downloaded from the head-end 14. The more the traffic headend 14 does not go through, the faster the processing speed of the program is.

도 5 는 본 발명에 따른 메모리 관리부에서의 데이터 처리 방법에 대한 일실시예 흐름도이다.5 is a flowchart illustrating a data processing method in a memory management unit according to the present invention.

셋탑 장치(12)내의 중앙처리부(21)에서 필요한 블록은 캐쉬 메모리(23)에 적재되어 있을 수도 있고, 그렇지 않을 수도 있다. 그러므로, 메모리 관리부(22)는 프로그램 블록을 캐쉬메모리(23)에서 가져오느냐 전파중계소(14)에서 가져오느냐를 결정한다. The necessary block in the central processing unit 21 in the set-top device 12 may or may not be loaded in the cache memory 23. Therefore, the memory manager 22 determines whether to bring the program block from the cache memory 23 or the head-end 14.

또한, 메모리 관리부(22)는 선읽기 기능(read-ahead capability)을 이용하여 실행중인 프로그램 블록이 다음 동작을 진행하기 수월하도록 분기명령어를 확인하 여 필요한 프로그램 블록을 전파중계소(headend, 14)에서 선반입하여 캐쉬메모리에 적재한다.In addition, the memory manager 22 checks the branch instruction so that the program block being executed can easily proceed to the next operation by using a read-ahead capability, and then the necessary program block is transferred to the head end 14. It is loaded and loaded into the cache memory.

이를 도면에 도시된 흐름과 함께 설명하면 다음과 같다.This will be described with the flow shown in the drawings.

도 5에 도시된 바와 같이, 셋탑 장치(12)내의 메모리 관리부(22)는 중앙처리부(21)로부터 프로그램 블록 요구를 받고(501), 그 블록이 캐쉬 메모리(23)에 적재되어 있는지 판단하여(502) 적재되어 있지 않으면 네트워크 인터페이스 모듈(24)로 명령하여 해당 프로그램 블록을 전파중계소(14)에서 가져오도록 한다(503). 이렇게하여 다운로드된 블록은 캐쉬메모리(23)에 적재되고(504), 중앙처리부(21)로 전달된다(505). As shown in FIG. 5, the memory management unit 22 in the set-top device 12 receives a program block request from the central processing unit 21 (501), and determines whether the block is loaded in the cache memory 23 ( If it is not loaded, the network interface module 24 is instructed to bring the corresponding program block from the head-end 14 (503). The downloaded block is loaded into the cache memory 23 (504), and transferred to the central processing unit 21 (505).

프로그램 블록이 캐쉬 메모리(23)에 적재되어 있는지 판단한 결과, 적재되어 있으면 이를 중앙처리부(21)로 전달한다(505). As a result of determining whether the program block is loaded in the cache memory 23, if it is loaded, the program block is transferred to the central processing unit 21 (505).

메모리 관리부(22)는 현재 사용중인 프로그램 블록을 분석하여(506), 분기 명령어를 포함하고 있는지를 검사한다(507). 검사 결과, 분기 명령어를 포함하고 있지 않으면 종료하고, 포함하고 있으면 분기 명령어에 의해 필요한 프로그램 블록이 캐쉬 메모리에 적재되어 있는지를 확인한다(508). The memory manager 22 analyzes a program block currently being used (506) and checks whether a branch instruction is included (507). As a result of the check, if the branch instruction is not included, the operation is terminated, and if it is included, it is checked whether the program block required by the branch instruction is loaded in the cache memory (508).

프로그램 블록이 캐쉬 메모리에 적재되어 있는지를 확인한 결과, 캐쉬 메모리에 적재되어 있으면 종료하고, 적재되어 있지 않으면 네트워크 인터페이스 모듈(24)로 명령하여 해당 프로그램 블록을 전파중계소(14)에서 가져오도록 한다(509). 이렇게하여 다운로드된 블록은 캐쉬메모리(23)에 적재된다(510).As a result of checking whether the program block is loaded in the cache memory, the program block is terminated if it is loaded in the cache memory, and if it is not loaded, the network interface module 24 is instructed to take the program block from the head-end 14 (509). ). The downloaded block is loaded into the cache memory 23 (510).

도 6 내지 도 9 는 셋탑 장치에서 네트워크를 통한 논리적 메모리 확장 방법에 대한 다른 실시예를 설명한 것이다.6 to 9 illustrate another embodiment of a logical memory expansion method through a network in a set-top device.

상기 도 5를 통한 실시예에서는 논리적인 메모리의 확장을 셋탑 장치내의 메모리 관리부를 통해 현재 수행중인 프로그램 블록의 선읽기 기능을 통하여 처리하였다.In the embodiment of FIG. 5, logical expansion of the memory is processed through a read function of a program block currently being executed by a memory manager in the set-top device.

셋탑 장치에서 네트워크를 통한 논리적인 메모리 확장의 다른 방법은, 케이블 텔레비전 네트워크에서 케이블 텔레비전 서비스 제공자나 전파중계소(headend, 14)가 텔레비전(11)으로 제공하고자 하는 프로그램을 분석하여 블록으로 분할하고, 필요한 블록을 불러오는 패치 명령어를 실행 순서상 충분히 앞선 시간에 실행되도록 프로그램 블록에 삽입함으로써 처리한다.Another method of logical memory expansion over a network in a set-top device is in a cable television network, in which the cable television service provider or headend 14 analyzes the program that it wants to provide to the television 11, divides it into blocks, and This is done by inserting the patch instruction that loads the block into the program block so that it executes ahead of time in the execution order.

이때, 메모리 관리부(22)는 상기한 실시예에서처럼 메모리 재배치 기능은 동일하게 처리하지만, 중앙처리부(300)가 수행할 프로그램 블록을 분석하는 일은 하지 않는다. In this case, the memory manager 22 processes the memory relocation function in the same manner as in the above-described embodiment, but does not analyze the program block to be executed by the CPU 300.

도 6 은 본 발명의 다른 실시예에 의한 논리적으로 메모리를 확장하기 위한 프로그램 코드 처리도이다.6 is a program code processing diagram for logically expanding a memory according to another embodiment of the present invention.

도 6에 도시된 바와 같이, 중앙처리부(21)가 수행할 프로그램은 원시코드로 되어있다. 원시코드의 프로그램이 컴파일러(61)에 의해 컴파일되면 위치 독립 오브젝트 코드(position independent object code)의 프로그램이 생성된다. 링커(62)는 이 오브젝트 코드의 프로그램에 "블록 패치 명령어"를 삽입하여 실행 코드의 프로그램을 만든다. As shown in FIG. 6, the program to be executed by the central processing unit 21 is in source code. When a program of source code is compiled by the compiler 61, a program of position independent object code is generated. The linker 62 inserts a "block patch instruction" into the program of this object code to make a program of executable code.

이러한 블록 패치 명령어들은 중앙처리부(21)에 의해 프로그램 블록이 실행될 때, 중앙처리부(21)로 하여금 명령어를 제어 채널을 통해 메모리 관리부(22)로 직접 보내도록하여 네트워크 인터페이스 모듈(24)을 통해 새로운 프로그램 블록을 가져오도록 한다.These block patch instructions are executed by the central processing unit 21 to cause the central processing unit 21 to send the instructions directly to the memory management unit 22 via the control channel. Get the program block.

도 7 은 본 발명의 다른 실시예에 따른 링커에서 실행 코드로 된 프로그램 생성 방법에 대한 흐름도로서, 상기 도 6의 내용을 구체화하여 실행 코드의 프로그램을 생성하는 절차를 나타낸 것이다.
도 7에 도시된 바와 같이, 원시 코드의 프로그램은 위치 독립 오브젝트 코드의 프로그램으로 생성시키는 컴파일러(61)를 이용하여 컴파일한다.
FIG. 7 is a flowchart illustrating a program generating method of executable code in a linker according to another embodiment of the present invention, and illustrates a procedure of generating a program of executable code by embodying the contents of FIG. 6.
As shown in Fig. 7, the program of the source code is compiled using a compiler 61 which generates a program of the position independent object code.

삭제delete

원시 코드의 프로그램은 일반적으로 'C'와 같은 고 수준 언어로 작성된다. 'C' 원시 코드로 된 프로그램은 중앙처리부(21)가 이해할 수 있고, 실행할 수 있는 오브젝트 코드로 된 프로그램으로 변환된다. Programs in source code are usually written in high-level languages such as 'C'. The program in the 'C' source code is converted into a program in the object code that the central processing unit 21 can understand and execute.

이러한 오브젝트 코드로 된 프로그램은 링커(62)에 의해 내장 함수들을 하나로 모아서 중앙처리부(21)에서 실행될 수 있는 블록화된 실행 프로그램을 생성한다.A program of this object code gathers the built-in functions into one by the linker 62 to generate a blocked execution program that can be executed in the central processing unit 21.

링커는 다음과 같은 작업을 한다.The linker does the following:

우선, 개별적으로 컴파일 된 오브젝트 코드들 사이의 상호참조를 분석하며, 실행 가능한 오브젝트 코드에 분기 명령어들이 있는지 조사하고, 분기 명령어로부터 CA-TV 네트워크에서 다운로드하기에 적절하도록 프로그램을 블록으로 나누는 효과적인 방법을 정한다.First, we will analyze cross-references between individually compiled object codes, examine the existence of branch instructions in the executable object code, and find an effective way to break the program into blocks suitable for download from the CA-TV network. Decide

또한, 네트워크 프로그램 블록 패치 명령어의 라이브러리에 있는 명령어를 실행코드로 된 프로그램에 삽입하여 적절한 시기에 중앙처리부(21)가 메모리 관리 부(22)로 제어 채널을 이용하여 블록 다운로드 명령을 내릴 수 있게 한다. In addition, by inserting a command in the library of the network program block patch command into the program of the executable code, the CPU 21 can issue a block download command to the memory management unit 22 using the control channel at an appropriate time. .

링커에서 실행 코드로 된 프로그램의 생성을 도면에 도시된 흐름과 함께 설명하면 다음과 같다.The generation of a program of executable code in the linker is described with the flow shown in the drawing as follows.

링커(62)는 컴파일러(61)가 처리한 결과를 받아들이기 때문에 링커(62)는 기계어로 된 오브젝트 코드로 된 프로그램을 조작한다. 따라서, 오브젝트 코드로 된 프로그램을 분석하여(701) "GOTO", "GOSUB", "CALLS"와 같은 분기 명령어에 해당하는 기계어를 포함하고 있는지 찾아낸다(702). 그런 다음, 링커(62)는 오브젝트 코드로 된 프로그램에 적절한 분기 루틴을 추가한다(703). 오브젝트 코드로 된 프로그램은 다운로드 가능한 블록으로 나눠진다(704). 이를 세그먼트화한다고 한다. Since the linker 62 accepts the result processed by the compiler 61, the linker 62 operates a program in object code in machine language. Accordingly, the program in the object code is analyzed (701) to find out whether it contains machine language corresponding to branch instructions such as "GOTO", "GOSUB", and "CALLS" (702). The linker 62 then adds the appropriate branch routine to the program in object code (703). The program in object code is divided into downloadable blocks (704). This is called segmentation.

세그먼트화는 캐쉬 메모리(23)에 적재할만한 크기로 프로그램을 블록으로 나누는 것이다. 비록 세그먼트를 만들 때 프로그램을 동일 크기로 자르지만, 반드시 크기가 같을 필요는 없다.Segmentation divides the program into blocks that are large enough to be loaded into the cache memory 23. Although the program is cut to the same size when creating the segments, they do not necessarily have to be the same size.

블록화된 프로그램에 블록 패치 명령어를 삽입하여 실행 코드로 된 프로그램을 생성한다(705).A block patch instruction is inserted into the blocked program to generate a program of executable code (705).

도 8 은 본 발명의 다른 실시예에 따라 생성된 프로그램 블록의 일예시도이다.8 is an exemplary view of a program block generated according to another embodiment of the present invention.

도 8에 도시된 바와 같이, 링커(62)는 중앙처리부(21)가 그 코드를 수행하면서 전파중계소(14)로부터 프로그램 블록을 다운로드 받을동안 인터럽트 당하지 않도록 프로그램을 수정한다. 예를 들어, 주어진 응용에 대한 프로그램 원시 코드가 상기 도 4에서 보듯 블록 2600이라면, 링커(62)는 이를 후술되는 도 9와 같은 내용으로 프로그램의 실행 코드를 변경한다. 예에서, 블록 2700과 2800을 패치하는 코드가 링커(62)에 의해 삽입된다. 링커(62)가 2700블록과 2800블록이 코드를 수행하는 데 있어서 필요하다는 것을 확인하면, 블록 패치 명령어가 코드의 실행 순서상에서 충분히 앞선 시간에 실행코드에 삽입되어, 중앙처리부(21)가 이 코드를 수행하기 전에 필요한 블록을 다운로드하여 캐쉬 메모리(23)에 저장되도록 한다.As shown in FIG. 8, the linker 62 modifies the program so that the central processing unit 21 is not interrupted while the program processor downloads the program block from the head-end 14 while executing the code. For example, if the program source code for a given application is block 2600 as shown in Figure 4 above, the linker 62 changes the execution code of the program to the same content as Figure 9 described below. In an example, code to patch blocks 2700 and 2800 is inserted by linker 62. If the linker 62 confirms that 2700 blocks and 2800 blocks are needed to execute the code, the block patch instruction is inserted into the executable code at a time sufficiently ahead of the execution order of the code, so that the central processing unit 21 Before performing the operation, the required block is downloaded and stored in the cache memory 23.

도 9 는 본 발명의 다른 실시예에 따른 메모리 관리부에서의 데이터 처리 방법에 대한 흐름도이다. 9 is a flowchart illustrating a data processing method in a memory manager according to another exemplary embodiment of the present invention.

도 9에 도시된 바와 같이, 셋탑 장치(12)내의 메모리 관리부(22)는 중앙처리부(21)로부터 프로그램 블록 요구를 받고(901), 그 블록이 캐쉬 메모리(23)에 적재되어 있는지 판단하여(902) 적재되어 있지 않으면 네트워크 인터페이스 모듈(24)로 명령하여 해당 프로그램 블록을 전파중계소(14)에서 가져오도록 한다(903). 이렇게하여 다운로드된 블록은 캐쉬 메모리(23)에 적재되고(904), 중앙처리부(21)로 전달된다(905). As shown in FIG. 9, the memory management unit 22 in the set-top device 12 receives a program block request from the central processing unit 21 (901), and determines whether the block is loaded in the cache memory 23 ( If it is not loaded, the network interface module 24 is instructed to bring the program block from the head-end 14 (903). The block thus downloaded is loaded into the cache memory 23 (904) and transferred to the central processing unit 21 (905).

프로그램 블록이 캐쉬 메모리(23)에 적재되어 있는지 판단한 결과, 적재되어 있으면 이를 중앙처리부(21)로 전달한다(905). As a result of determining whether the program block is loaded in the cache memory 23, if it is loaded, the program block is transferred to the central processing unit 21 (905).

이때는 프로그램 블록에 이미 블록 패치 명령어가 삽입되어 있으므로, 메모리 관리부(22)에서의 선읽기 기능(read-ahead capability)은 수행되지 않는다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
In this case, since the block patch command is already inserted in the program block, the read-ahead capability of the memory manager 22 is not performed.
The method of the present invention as described above may be implemented as a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.

상기한 바와 같은 본 발명은, 셋탑 장치의 메모리를 논리적으로 확장함으로써, 셋탑 장치와 연결되는 네트워크가 널리 보급되는 상태에서 대화식 게임, 홈 뱅킹, 홈 쇼핑과 같은 반응 시간이 중요한 대화식 응용에 적용할 경우 이용자들에게 보다 양질의 서비스를 빠르게 제공할 수 있는 효과가 있다. The present invention as described above, by logically expanding the memory of the set-top device, when applied to interactive applications where the reaction time is important, such as interactive games, home banking, home shopping in a network that is connected to the set-top device is widely spread There is an effect that can provide a higher quality service to users quickly.

또한, 본 발명은, 셋탑 장치의 메모리를 논리적으로 확장함으로써, 응용 서비스들이 점점 더 복잡해져 메모리를 더 많이 필요로 하게 되어도, 셋탑 장치는 더 이상 네트워크 운영자들에게 기존 서비스를 확장하고, 새로운 서비스를 제공하는데 있어서 부담이 되지 않는 효과가 있다.In addition, the present invention logically expands the memory of the set-top device, so that as application services become more complex and require more memory, the set-top device no longer extends existing services and provides new services to network operators. There is no burden on the effect.

Claims (13)

네트워크의 셋탑 장치에 있어서,In a set-top device of a network, 상기 셋탑 장치가 데이터 전송 링크를 통하여 상기 네트워크를 이용할 수 있도록 하는 네트워크 인터페이스 수단;Network interface means for enabling the set top device to use the network via a data transmission link; 상기 셋탑 장치를 제어하고 시청자가 선택한 서비스에 대한 프로그램의 명령들을 수행하기 위한 중앙처리수단;Central processing means for controlling the set-top device and executing commands of a program for a service selected by a viewer; 상기 중앙처리수단에서 최근에 사용한 프로그램 블록과 사용하는 빈도수가 높은 프로그램 블록을 보관하는 메모리; 및A memory for storing a program block recently used by the central processing means and a program block with a high frequency of use; And 상기 중앙처리수단으로부터의 프로그램 블록 요청을 받아 상기 메모리에 저장되어 있는지를 확인하고, 저장되어 있으면 이를 상기 중앙처리수단으로 전달하며, 저장되어 있지 않으면 상기 네트워크 인터페이스 수단을 통하여 원격 메모리로부터 이를 받아 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 메모리 관리수단Receives a program block request from the central processing means and checks whether it is stored in the memory, and if it is stored, transfers it to the central processing means. Memory management means for storing in the memory and transferring the data to the CPU 을 포함하는 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치.Set-top device logically expanded memory through a network comprising a. 제 1 항에 있어서,The method of claim 1, 상기 중앙처리수단은, The central processing means, 데이터 액세스 패스를 통하여 상기 메모리 관리수단과 맞물려 있으며, 상기 데이터 액세스 패스는 상기 메모리 관리수단이 상기 중앙처리수단의 데이터 버스와 직접적으로 인터페이스가 되도록 직렬 버스로 연결된 것을 특징으로 하는 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치.Interlocked with the memory management means via a data access path, the data access path being logically memoryd via a network, wherein the memory management means is connected by a serial bus so as to interface directly with the data bus of the central processing means. Extended set-top device. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 메모리 관리수단은,The memory management means, 상기 중앙처리수단에서의 프로그램 블록 요구시 메모리 가상 주소 매핑 기능을 수행하여 상기 메모리를 확인하고, 상기 중앙처리수단에서 수행중인 프로그램 블록을 감시하여 사용이 예상되는 프로그램 블록이 상기 메모리에 있는지 확인하고 없으면 상기 원격 메모리로부터 이를 받아 상기 메모리에 저장하는 기능을 포함하는 것을 특징으로 하는 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치.When the CPU requests the program block, the memory virtual address mapping function is performed to check the memory, and the program block being executed by the CPU is monitored to determine whether the program block expected to be used is in the memory. And a function of receiving the data from the remote memory and storing the received data in the remote memory. 제 3 항에 있어서,The method of claim 3, wherein 상기 네트워크는,The network, 케이블 텔레비전(CA-TV) 네트워크인 것을 특징으로 하는 네트워크를 통하여 논리적으로 메모리를 확장한 셋탑 장치.A set-top device logically expanding memory through a network, which is a cable television (CA-TV) network. 네트워크에서의 셋탑 장치에 적용되는 논리적 메모리 확장 방법에 있어서,A logical memory expansion method applied to set-top devices in a network, 상기 셋탑 장치의 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 메모리에 저장되어 있는지를 확인하여 있으면 상기 프로그램 블록을 상기 중앙처리수단으로 전달하고, 없으면 원격메모리로부터 전달받아 이를 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제1 전달단계; 및The program block is transferred from the central processing means of the set-top device to determine if it is stored in the memory. If not, the program block is transferred to the central processing means. A first delivery step of delivering to the processing means; And 상기 중앙처리수단에서 처리중인 프로그램 블록이 분기명령어(branch instructions)를 포함하고 있고 상기 메모리에 저장되어 있지 않으면 상기 원격메모리로부터 상기 프로그램 블록을 수신하여 상기 메모리에 저장하는 제1 저장단계A first storing step of receiving the program block from the remote memory and storing the program block in the memory if the program block being processed in the central processing means includes branch instructions and is not stored in the memory. 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 제 5 항에 있어서,The method of claim 5, 상기 제1 전달단계는,The first delivery step, 상기 셋탑 장치의 메모리 관리수단이 상기 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 상기 메모리에 저장되어 있는지를 확인하는 제1 확인단계;A first checking step of checking whether the memory management means of the set-top device is requested to transfer a program block from the central processing means and stored in the memory; 상기 제1 확인단계의 확인 결과, 저장되어 있으면 상기 메모리로부터 상기 프로그램 블록을 받아 상기 중앙처리수단으로 전달하는 제2 전달단계; 및A second transfer step of receiving the program block from the memory and transferring the program block to the central processing unit if it is stored as a result of the check of the first verification step; And 상기 제1 확인단계의 확인 결과, 저장되어 있지 않으면 네트워크 인터페이스 수단을 통하여 상기 원격메모리로부터 상기 프로그램 블록을 받아 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제3 전달단계A third delivery step of receiving the program block from the remote memory through a network interface means, storing the program block in the memory and transmitting the result to the central processing means if it is not stored; 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 제 5 항 또는 제 6 항에 있어서,The method according to claim 5 or 6, 상기 제1 저장단계는,The first storage step, 상기 셋탑 장치의 메모리 관리수단이 상기 중앙처리수단에서 처리중인 프로그램 블록이 분기 명령어(branch instructions)를 포함하고 있는가를 조사하는 조사단계;An investigation step of checking, by the memory management means of the set-top device, whether the program block being processed by the central processing means includes branch instructions; 상기 중앙처리수단에서 처리중이고 분기 명령어를 포함하고 있는 프로그램 블록이 상기 메모리에 저장되어 있는지를 확인하는 제2 확인단계; 및A second checking step of confirming whether a program block being processed in said central processing means and including a branch instruction is stored in said memory; And 상기 메모리에 저장되어 있지 않은 프로그램 블록을 상기 네트워크 인터페이스 수단을 통하여 원격메모리로부터 수신하여 상기 메모리에 저장하는 제2 저장단계A second storing step of receiving a program block not stored in the memory from the remote memory through the network interface means and storing the program block in the memory; 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 네트워크에서의 셋탑 장치에 적용되는 논리적 메모리 확장 방법에 있어서,A logical memory expansion method applied to set-top devices in a network, 상기 네트워크를 통하여 서비스하고자 하는 프로그램을 블록으로 분할하고 프로그램의 실행 순서상 충분히 앞선 시간에 실행되도록 블록 패치 명령어를 프로그램 블록에 삽입하여 저장하는 제1 저장단계; 및A first storing step of dividing a program to be serviced through the network into blocks and inserting and inserting a block patch instruction into a program block to be executed at a time sufficiently ahead of the execution order of the programs; And 상기 셋탑 장치의 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 메모리에 저장되어 있는지를 확인하여, 저장되어 있으면 상기 프로그램 블록을 상기 중앙처리수단으로 전달하고, 저장되어 있지 않으면 원격메모리로부터 전달받아 이를 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제1 전달단계It is requested to transfer the program block from the central processing means of the set-top device to check whether it is stored in the memory, and if it is stored, transfer the program block to the central processing means. A first delivery step of storing in a memory and delivering to the central processing means 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 제 8 항에 있어서,The method of claim 8, 상기 제1 저장단계는,The first storage step, 상기 네트워크를 통하여 서비스하고자 하는 원시코드로 된 프로그램을 컴파일하여 위치 독립 오브젝트 코드로 된 프로그램을 생성하는 프로그램 생성단계; 및A program generation step of compiling a program of source code to be serviced through the network to generate a program of position independent object code; And 상기 위치 독립 오브젝트 코드로 된 프로그램을 분할하고 블록 패치 명령어를 삽입하여 실행 코드로 된 프로그램 블록을 생성하여 저장하는 제2 저장단계A second storage step of dividing the program of the position independent object code and inserting a block patch instruction to generate and store a program block of execution code; 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 제 9 항에 있어서,The method of claim 9, 상기 제2 저장단계는,The second storage step, 기계어로 된 상기 위치 독립 오브젝트 코드로 된 프로그램을 분석하는 분석단계;An analysis step of analyzing a program of the position independent object code in machine language; 상기 위치 독립 오브젝트 코드로 된 프로그램에서 분기 명령어를 찾아내는 분기 명령어 서치단계;A branch instruction search step of finding a branch instruction in the program of the position independent object code; 상기 위치 독립 오브젝트 코드로 된 프로그램에 분기 루틴을 추가하는 분기 루틴 추가단계;A branch routine adding step of adding a branch routine to the program of the position independent object code; 분기 루틴을 포함한 상기 위치 독립 오브젝트 코드로 된 프로그램을 상기 네트워크에서 전송되기 적합하도록 프로그램 블록으로 분할하는 블록 분할단계; 및A block dividing step of dividing the program of the position independent object code including a branch routine into program blocks suitable for transmission in the network; And 실행 순서상 충분히 앞선 시간에 블록 패치 명령어가 실행되도록 상기 프로그램 블록에 블록 패치 명령어를 삽입하는 명령어 삽입단계An instruction insertion step of inserting a block patch instruction into the program block such that the block patch instruction is executed at a time sufficiently preceding the execution order; 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 제 8 항 내지 제 10 항 중 어느 한 항에 있어서,The method according to any one of claims 8 to 10, 상기 제1 전달단계는,The first delivery step, 상기 셋탑 장치의 메모리 관리수단이 상기 중앙처리수단으로부터 프로그램 블록의 전달을 요구받아 상기 메모리에 저장되어 있는지를 확인하는 확인단계;Confirming, by the memory management means of the set-top device, receiving the program block from the central processing means and storing the program block in the memory; 상기 확인 결과, 저장되어 있으면 상기 메모리로부터 상기 프로그램 블록을 받아 상기 중앙처리수단으로 전달하는 제2 전달단계; 및A second transfer step of receiving the program block from the memory and transferring the program block to the central processing unit if it is stored; And 상기 제2 전달단계의 확인 결과, 저장되어 있지 않으면 네트워크 인터페이스 수단을 통하여 상기 원격메모리로부터 상기 프로그램 블록을 받아 상기 메모리에 저장하고 상기 중앙처리수단으로 전달하는 제3 전달단계A third delivery step of receiving the program block from the remote memory via a network interface means, storing the program block in the memory and transmitting the result to the central processing means if it is not stored; 를 포함하는 논리적 메모리 확장 방법.Logical memory expansion method comprising a. 삭제delete 삭제delete
KR1019990023300A 1999-06-21 1999-06-21 Set-top apparatus and method for logically extending memory device using network KR100613857B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990023300A KR100613857B1 (en) 1999-06-21 1999-06-21 Set-top apparatus and method for logically extending memory device using network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990023300A KR100613857B1 (en) 1999-06-21 1999-06-21 Set-top apparatus and method for logically extending memory device using network

Publications (2)

Publication Number Publication Date
KR20010003135A KR20010003135A (en) 2001-01-15
KR100613857B1 true KR100613857B1 (en) 2006-08-17

Family

ID=19593926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990023300A KR100613857B1 (en) 1999-06-21 1999-06-21 Set-top apparatus and method for logically extending memory device using network

Country Status (1)

Country Link
KR (1) KR100613857B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9060009B2 (en) 2009-07-07 2015-06-16 Qualcomm Incorporated Network-extended data storage for mobile applications

Also Published As

Publication number Publication date
KR20010003135A (en) 2001-01-15

Similar Documents

Publication Publication Date Title
US5781226A (en) Network virtual memory for a cable television settop terminal
EP1540946B1 (en) Broadcast carousel system access for remote home communications terminal via a gateway device
US6578200B1 (en) Data transmission/reception apparatus for use in a two-way digital broadcasting system
JP4105382B2 (en) IEEE set top box device driver
US6360275B1 (en) System and method for transmitting and receiving data in a network
JP6080229B2 (en) Application management device
RU2599537C2 (en) Method of optimizing cache memory control and appropriate hardware system
KR101121479B1 (en) Data distribution and buffering
US6286037B1 (en) Data communication system, data communication method, data receiver and data receiving method
KR100613857B1 (en) Set-top apparatus and method for logically extending memory device using network
EP0872798A1 (en) Computer memory organization
EP1780976A1 (en) Methods and system to offload data processing tasks
EP1019836B1 (en) Modem control
US6591337B1 (en) Method and apparatus for caching objects in a disparate management environment
KR20060029689A (en) Method of executing software applications
CN112437352B (en) Video merging and playing method and device
CN105578213A (en) Television terminal set-top box application management method and device
JP3441028B2 (en) Multimedia terminal
KR102007669B1 (en) Video on demand Server device for internet broadcasting and operating method thereof
KR20040074805A (en) A method of providing streaming service and a system thereof

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: 20100802

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee