KR19980063245A - 데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템. - Google Patents

데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템. Download PDF

Info

Publication number
KR19980063245A
KR19980063245A KR1019970001780A KR19970001780A KR19980063245A KR 19980063245 A KR19980063245 A KR 19980063245A KR 1019970001780 A KR1019970001780 A KR 1019970001780A KR 19970001780 A KR19970001780 A KR 19970001780A KR 19980063245 A KR19980063245 A KR 19980063245A
Authority
KR
South Korea
Prior art keywords
file
block
read request
read
data
Prior art date
Application number
KR1019970001780A
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
Application filed by 세키자와다다시, 후지쓰가부시키가이샤 filed Critical 세키자와다다시
Publication of KR19980063245A publication Critical patent/KR19980063245A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers

Abstract

동일 화일에 대하여 복수 클라이언트로부터 독출 요구가 있는 경우에, 요구된 데이타를 효율적으로 추출하여 전송 처리한다.
독출 요구 횟수 계수(計數) 수단(1001)은 요구원으로부터의 화일의 독출 요구 횟수를 각 화일마다 계수하고, 독출 요구 횟수 판정 수단(1002)은 독출 요구 횟수가 소정치에 달한 화일이 있는지의 여부를 판정한다. 그리고, 화일 송출 지시 수단(1003)은 독출 요구 횟수가 소정치에 달한 화일이 있는 경우, 독출 요구의 횟수가 소정치에 도달한 화일을 요구원으로 송출하는 지시를 행한다.

Description

데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템
본 발명은 데이타 분배 장치, 기억 장치와 그 제어 방법 및 데이타 전송 시스템에 관한 것이고, 특히, 영화와 같은 화상, 음성, 음악 등의 대량의 연속적인 데이타를 취급하는 시스템에 적용될 수 있다.
화상, 음성, 음악 등의 대량의 연속적인 멀티미디어 데이타를 기억 장치에 기억시켜 놓고, 복수의 이용자가 그 내용을 취출하여 이용하는 시스템이 주목되고 있다.
이 시스템에는 다음과 같은 특징이 있다.
① 기억 장치의 같은 화일에 대하여 동시기에 다수의 독출 요구가 된다.
② 기억 장치의 데이타의 기록 요구는 거의 없고, 데이타의 독출 요구의 비율이 많다.
③ 일회의 독출 요구에 의해 기억 장치로부터 독출되는 데이타량은 대량이며 또한 연속적이다.
그 때문에, 이러한 시스템은 복수 이용자로부터 동일 화일에 대하여 거의 동시기에 이루어지는 독출 요구에 대하여 신속히 대응할 수 있도록 할 필요가 있다.
도 23은 종래의 기억 장치 및 데이타 전송 시스템의 구성을 나타낸다.
도 23에 있어서, 121, 122, 123은 각각, 클라이언트 1, 클라이언트 2, 클라이언트 N이다.
124는 서버로서, 기억 장치(130)에 대하여, 클라이언트(121, 122, 123)의 요구에 따라서 데이타의 독출, 기록을 행하는 것이다.
130은 기억 장치로서, 화상, 음성, 음악 등의 대량의 연속적인 멀티미디어 데이타를 유지하는 것이다.
131은 서버 인터페이스 장치로서, 기억 장치(130)와 서버(124)사이의 인터페이스 장치이다.
132는 기억 디바이스 인터페이스 장치로서, 기억 장치(130)와 기억 디바이스(136)사이의 인터페이스를 취하는 것이다.
133은 기억 제어 장치로서, 기억 디바이스(136)에 대한 독출 제어, 기록 제어를 행하는 것이다.
134는 제어 장치로서, 기억 제어 장치(133)에 있어서의 독출, 기록의 제어를 행하는 것이다.
135는 제어 기억으로서, 기억 디바이스(136)의 기록, 독출을 행하기 위한 프로그램을 유지하는 것이다.
136은 기억 디바이스로서, 화일마다 데이타를 기억하는 것이다. 예컨대, 화일 A에는 영화 A가 기억되고, 화일 B에는 영화 B가 기억되어 있다.
다음에, 도 23의 구성의 동작을 설명한다.
클라이언트(121, 122, 123)로부터 독출 요구가 있으면, 서버(124)는 요구된 화일의 독출을 기억 장치(130)에 통지한다. 그 통지는 서버 인터페이스 장치(131)를 통해 제어 장치(134)에 전해지고, 제어 장치(134)는 제어 기억(135)의 독출 제어 프로그램에 따라서, 기억 디바이스 인터페이스 장치(132)에 지정된 데이타의 독출을 지시한다.
기억 디바이스 인터페이스 장치(132)는 기억 디바이스(136)로부터 지정된 화일의 데이타를 취출하여 서버 인터페이스 장치(131)에 전송한다. 서버 인터페이스 장치(131)는 기억 디바이스 인터페이스 장치(132)로부터 수신된 데이타를 서버(124)에 전송한다. 서버(124)는 수신된 데이타를 요구원의 클라이언트(121, 122, 123)에 전송한다.
기억 디바이스(136)가 기록 혹은 독출하는 동안에, 독출을 할 수 없는 경우에는 기억 디바이스 인터페이스 장치(132)는 제어 장치(134)에 기억 디바이스(136)사용중임을 통지한다. 제어 장치(134)는 기억 디바이스(136) 사용중을 서버 인터페이스 장치(131)에 통지한다. 그 통지는 서버 인터페이스 장치(131)로부터 서버(124)에 통지되고, 서버(124)는 독출 요구를 행한 클라이언트(121, 122, 123)에 대하여 독출 대기를 통지한다.
다음에, 클라이언트(121, 122, 123)로부터 기억 디바이스(136)에 기록을 하는 경우에 대해서 설명한다. ,
클라이언트(121, 122, 123)는 서버(124)에 기록을 요구한다. 서버(124)는 서버 인터페이스 장치(131)에 대하여 기록 요구를 행한다. 서버(124)의 기록 요구는 서버 인터페이스 장치(131)로부터 제어 장치(134)에 통지되고, 제어 장치(134)는 제어 기억(135)의 기록 제어 프로그램에 따라서 기억 디바이스 인터페이스 장치(132)에 액세스하여 기록의 가능성을 조회한다.
기억 디바이스 인터페이스 장치(132)는 기억 디바이스(136)가 기록 가능한 상태이면, 제어 장치(134)에 기록 가능을 통지하여 기록 가능의 통지는 서버 인터페이스 장치(131)를 통해 서버(124)에 통지된다. 서버(124)는 기록 요구를 행한 클라이언트(121, 122, 123)에 기록 가능을 통지한다.
기록 요구를 행하는 클라이언트(121, 122, 123)는 기록 데이타를 서버(124)에 전송한다. 서버(124)는 클라이언트(121, 122, 123)로부터 수신된 기록 데이타를 서버 인터페이스 장치(131)에 전송한다. 그 기록 데이타는 기억 디바이스 인터페이스 장치(132)에 전송되어 기억 디바이스(136)에 기록된다.
또한, 기억 디바이스(136)가 사용중으로 기록할 수 없을 때에는 기억 디바이스 인터페이스 장치(132)는 기억 디바이스(136) 사용중을 제어 장치(134)에 통지하고, 제어 장치(134)는 기억 디바이스(136) 사용중을 서버 인터페이스 장치(131)에 통지한다. 서버 인터페이스 장치(131)는 서버(124)에 기억 디바이스(136) 사용중을 통지하고, 서버(124)는 기억 디바이스(136) 사용중을 클라이언트(121, 122, 123)에 통지한다.
그러나, 종래의 데이타 전송 시스템은 복수의 클라이언트(클라이언트 1(121), 클라이언트 2(122), 클라이언트 N(123))이 거의 동시기에 같은 화일에 대하여 독출 요구가 있을 경우에도, 각각의 클라이언트(121, 122, 123)의 요구마다 기억 디바이스(136)로부터 요구된 화일의 데이타를 취출하여 요구를 접수한 순서로 요구원의 각 클라이언트(121, 122, 123)에 전송하고 있었다.
예컨대, 클라이언트 1(121), 클라이언트 2(122), 클라이언트 N(123)으로부터, 이 순서대로 거의 동시에 화일 A의 독출 요구가 있었다고 한다. 서버(124)는 화일 A의 독출 요구를 서버 인터페이스 장치(131)에 대하여 행한다. 그리고, 상기 의 독출 제어에 따라서, 화일 A의 데이타가 기억 장치(130)의 기억 디바이스(136)로부터 취출되어 서버(124)에 전송된다. 서버(124)는 그 화일 A의 데이타를 최초의 요구원의 클라이언트(클라이언트 1(121))에 전송한다.
그 전송이 종료하면, 동일하게, 서버(124)는 서버 인터페이스 장치(131)에 다시, 화일 A의 독출 요구를 행한다. 상기 독출 제어에 따라서, 화일 A의 데이타가 기억 장치(130)의 기억 디바이스(136)로부터 취출되어 서버(124)에 전송된다. 서버(124)는 그 데이타를 다음 클라이언트 2(122)에 전송한다.
클라이언트 2(122)로의 전송이 종료하면, 서버(124)는 서버 인터페이스 장치(131)에, 다시, 화일 A의 독출 요구를 행한다. 상기의 독출 제어 방법에 따라서, 화일 A의 데이타가 기억 장치(130)의 기억 디바이스(136)로부터 취출되어 서버(124)에 전송된다. 서버(124)는 그 데이타를 세번째로 요구한 클라이언트 N(123)에 전송한다.
이와 같이, 종래의 데이타 전송 시스템은 복수의 클라이언트(121, 122, 123)로부터 같은 화일에 대하여 거의 동시기에 독출 요구가 있어도 같은 화일의 독출을 기억 디바이스(136)로부터 반복해서 행하여 서버(124)에 전송하고, 서버(124)는 화일 데이타가 독출될 때에 클라이언트(121, 122, 123)에 순차적으로 전송하고 있었기 때문에 능률이 나쁜 것이었다.
특히, 그 화일의 내용이 영화와 같이 영상, 음성, 음악 등으로 구성되는 연속적인 대량의 멀티미디어 데이타인 경우에는 기억 디바이스(136)로부터의 독출에 장시간을 필요로 하여 클라이언트(121, 122, 123)에 대한 대기 시간의 요구가 길어지게 되고, 클라이언트(121, 122, 123)의 요구에 즉석으로 응할 수 없는 경우가 있었다.
그래서, 본 발명의 목적은 동일 화일에 대하여 복수 클라이언트로부터 독출 요구가 있는 경우에, 요구된 데이타를 효율적으로 취출하여 전송 처리하는 데이타 분배 장치, 기억 장치와 그 제어 방법 및 데이타 전송 시스템을 제공하는 것이다.
도 1은 본 발명의 일실시예에 따른 데이타 분배 장치의 구성을 나타내는 블록도.
도 2는 본 발명의 제 1 실시예에 따른 기억 장치의 구성을 나타내는 블록도.
도 3은 본 발명의 제 2 실시예에 따른 기억 장치의 구성을 나타내는 블록도.
도 4는 본 발명의 일실시예에 따른 수신 장치의 구성을 나타내는 블록도.
도 5는 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법의 설명도.
도 6 은 본 발명의 제 1 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도
도 7은 본 발명의 제 2 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도.
도 8은 본 발명의 일실시예에 따른 독출 요구 횟수 카운트부와 독출 요구 테이블을 나타내는 도면.
도 9는 도 7의 데이타 전송 시스템의 동작을 설명하는 도면.
도 10은 도 7의 데이타 전송 시스템의 제 1 실시예의 동작을 나타내는 흐름도.
도 11은 도 7의 데이타 전송 시스템의 제 2 실시예의 동작을 나타내는 흐름도.
도 12는 도 7의 데이타 전송 시스템의 제 3 실시예의 동작을 나타내는 흐름도.
도 13은 본 발명의 제 2 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도.
도 14는 도 13의 데이타 전송 시스템의 제 1 실시예의 동작을 나타내는 흐름도.
도 15는 도 13의 데이타 전송 시스템의 제 2 실시예의 동작을 나타내는 흐름도.
도 16은 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법의 설명도.
도 17은 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법의 설명도.
도 18은 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법을 나타내는 흐름도(그 1).
도 19는 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법을 나타내는 흐름도.
도 20(a)은 본 발명의 제 1 실시예에 따른 캐시 메모리로의 블록의 격납 방법의 설명도, 도 20(b)은 본 발명의 제 2 실시예에 따른 캐시 메모리로의 블록의 격납 방법의 설명도, 도 20(c)은 본 발명의 제 3 실시예에 따른 캐시 메모리로의 블록의 격납 방법의 설명도.
도 21은 본 발명의 제 3 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도.
도 22는 본 발명의 제 4 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도.
도 23은 종래의 기억 장치 및 데이타 전송 시스템을 나타내는 도면.
〈도면의 주요 부분에 대한 부호의 설명〉
1 : 기억 장치
2 : 기억부
3 : 기억 제어부
11 : 데이타 입출력부
12 : 독출 요구 판정부
13 : 독출 요구 횟수 카운트부
13' : 독출 요구 횟수 유지부
14 : 독출 개시 결정부
16 : 독출 제어부
1001 : 독출 요구 횟수 계수 수단
1002 : 독출 요구 횟수 판정 수단
1003 : 화일 송출 지시 수단
상술한 과제를 해결하기 위해, 본 발명에 따르면 요구원으로부터의 화일의 독출 요구 횟수를 각 화일마다 계수하는 독출 요구 횟수 계수 수단과, 상기 독출 요구 횟수가 소정치에 도달한 화일이 있는지의 여부를 판정하는 독출 요구 횟수 판정 수단과, 상기 독출 요구의 횟수가 소정치에 도달한 화일의 상기 요구원으로의 송출을 지시하는 화일 송출 지시 수단을 구비하고 있다.
이것에 의해, 독출 요구가 많은 화일에 대해서는 독출 요구가 있을 때부터 단시간내에 복수의 요구원에 대하여 한번에 화일 송출이 가능해진다. 이 때문에, 독출 요구가 많은 동일한 화일을 단시간내에 몇번이나 반복하여 독출할 필요가 없게 되고, 요구된 화일이 도착할 때까지의 대기 시간을 억제하면서, 송출측의 장치에 대한 부하를 경감시킬 수 있다.
또한, 본 발명의 한 양상에 따르면, 화일을 격납하고 있는 제 1 기억 수단과, 상기 제 1 기억 수단보다도 독출 속도가 큰 제 2 기억 수단과, 독출 요구 빈도가 큰 화일을 우선하여 상기 제 2 기억 수단에 격납하는 기억 제어 수단을 또 구비하고 있다.
이것에 의해, 독출 빈도가 많은 화일에 대해서는 제 2 기억 수단으로부터 고속으로 독출하여 송출할 수 있다. 이 때문에, 화일의 독출를 위해 제 1 기억 수단이 전유되는 시간이 감소하고, 제 1 기억 수단으로의 액세스 불능이 되는 시간을 단축할 수 있으므로, 요구원의 대기 시간을 적게 할 수 있다.
또한, 본 발명의 한 양상에 따르면, 화일 단위로 대량의 연속 데이타를 유지하는 기억부와, 기억부에 유지되는 데이타의 입출력 제어를 행하는 기억 제어부를 구비한 기억 장치에 있어서, 기억 제어부는 기억부의 데이타의 독출 제어를 행하는 독출 제어부와, 기억부에 유지되어 있는 동일 화일의 데이타에 대한 독출 요구를 판정하는 독출 요구 판정부와, 독출 요구가 있을 때마다 화일의 독출 요구 횟수를 카운트하고, 또는 일정 시간 경과마다 각 화일의 해당 카운트치를 갱신하는 독출 요구 횟수 카운트부와, 임의의 화일에 대한 독출 요구의 횟수의 카운트치가 미리 정한 일정치에 도달했을 때에 제어부에 대하여 해당하는 화일의 독출을 지시하는 독출 개시 결정부를 구비하고, 임의의 화일에 대한 독출 요구의 횟수가 미리 정한 일정 횟수에 도달했을 때 혹은 최초의 독출 요구로부터 미리 정한 일정 시간 경과후에 해당 화일의 독출을 행하도록 하고 있다.
이것에 의해, 독출 요구가 많은 화일에 대해서는 독출 요구가 있을 때부터 단시간내에, 복수의 요구원에 대하여 한번에 화일의 송출이 가능해진다. 또한, 독출 요구가 적은 화일에 대해서는 미리 정한 일정 시간 경과후에, 복수의 요구원에 대하여 한번에 화일의 송출이 가능해진다. 이 때문에, 독출 요구의 다소에 관계 없이 동일한 화일을 단시간내에 몇번이나 반복해서 독출할 필요가 없게 되고, 요구된 화일이 도착할 때까지의 대기 시간을 억제하면서, 송출측의 장치에 대한 부하를 경감시킬 수 있다.
또한, 본 발명의 한 양상에 따르면, 기억 장치는 독출 요구 접수 테이블의 내용을 서버로부터 독출하는 요구원 정보 독출부와, 독출 요구 접수 테이블의 내용에 기초하여 화일의 연속 데이타를 요구원으로 전송하는 데이타 전송부를 구비하고 있다.
이것에 의해, 요구된 화일의 연속 데이타를 기억 장치로부터 요구원으로 직접 전송할 수 있으므로, 요구된 화일의 연속 데이타가 요구원에 도달하는 시간을 단축할 수 있는 동시에, 서버의 부하를 경감할 수 있다.
또한, 본 발명의 한 양상에 따르면, 캐시 메모리의 기억 영역을 관리하는 캐시 관리 테이블은 캐시 메모리에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과, 화일마다 블록의 격납의 우선도를 관리하는 블록 관리 테이블을 구비하고 있다.
이것에 의해, 데이타를 캐시 메모리에 격납하거나, 데이타를 캐시 메모리로부터 삭제하는 것을 화일 단위로 행할 수 있고, 캐시 메모리에 격납되어 있는 데이타가 화일의 도중에 끊겨버리는 것을 방지할 수 있으므로, 독출 요구된 화일의 캐시 메모리로부터의 독출을 원활하게 진행시킬 수 있다.
이하, 본 발명의 실시예에 따른 데이타 분배 장치에 대해서 도면을 참조하면서 설명한다.
도 1은 본 발명의 일실시예에 따른 데이타 분배 장치의 구성을 나타낸는 블록도이다.
도 1에 있어서, 독출 요구 횟수 계수 수단(1001)은 요구원으로부터의 화일의 독출 요구 횟수를 각 화일마다 계수하고, 독출 요구 횟수 판정 수단(1002)은 독출 요구 횟수가 소정치에 도달한 화일이 있는지의 여부를 판정한다. 그리고, 화일 송출 지시 수단(1003)은 독출 요구 횟수가 소정치에 도달한 화일이 있는 경우, 독출 요구의 횟수가 소정치에 도달한 화일을 요구원으로 송출하는 지시를 행한다.
이 때문에, 독출 요구가 많은 화일에 대해서는 독출 요구 횟수 계수 수단(1001)에 의해 계수되는 독출 요구 횟수가 단시간내에 소정치에 도달하므로, 화일 송출 지시 수단(1003)에 의해 그 화일의 요구원으로의 송출의 지시가 신속히 행해져서 독출 요구가 있을 때부터 단시간내에, 복수의 요구원에 대하여 한번에 화일의 송출을 가능하게 할 수 있다.
또한, 복수의 요구원에 대하여 한번의 화일의 독출에 의해 화일의 송출이 가능해지므로, 독출 요구가 많은 동일한 화일을 단시간내에 몇번이나 반복하여 독출할 필요가 없어지고, 송출측의 장치에 대한 부하를 경감시킬 수 있다.
다음에, 본 발명의 실시예에 따른 기억 장치에 대해서 도면을 참조하면서 설명한다.
도 2는 본 발명의 제 1 실시예에 따른 기억 장치의 구성을 나타내는 블록도이다.
도 2에 있어서, (1)은 기억 장치로서, 데이타를 기억하는 기억부(2)와, 기억부(2)에 대하여 독출 기록의 제어를 하는 기억 제어부(3)에 의해 구성되는 것이다. (2)는 기억부로서, 화일 단위로 비디오 프로그램등의 대량의 연속 데이타를 기억하는 것이다.
(3)은 기억 제어부로서, 기억부(2)에 대한 독출 기록 제어를 행하는 것이다.
(11)은 데이타 입출력부로서, 독출 요구나 기록 요구의 입출력, 데이타의 입출력 등을 행하는 것이다.
(12)는 독출 요구 판정부로서, 독출 요구를 판정하는 것이다.
(13)은 독출 요구 횟수 카운트부로서, 기억부(2)의 동일 화일에 대한 독출 요구 횟수를 화일마다 카운트하는 것이다. 또는 독출 요구가 없어도 일정 시간 경과마다 그 카운트치를 갱신하는 것이다.
(13')는 독출 요구 횟수 유지부로서, 화일마다 독출 요구 횟수의 카운트치를 유지하는 것이다.
(14)는 독출 개시 결정부로서, 독출 요구 횟수 유지부(13')에 기록되어 있는 카운트치가 일정치가 되었는지의 여부를 판정하여 카운트치가 일정치가 된 화일의 독출 개시를 결정하는 것이다.
(16)은 독출 제어부로서, 기억부(2)로부터 데이타를 독출하는 제어를 행하는 것이다.
또, 도 2의 기억 제어부(3)는 데이타의 독출에 필요한 구성만 나타내고, 기록에 필요한 구성은 도시를 생략하고 있다.
다음에, 도 2의 기억 장치의 동작을 설명한다. 또, 여기서는 데이타의 독출 요구에 대해서만 동작을 설명한다.
데이타 요구원으로부터 기억 장치(1)에 대하여 이루어지는 요구가, 데이타 입출력부(11)에서 접수된다. 독출 요구 판정부(12)는 데이타 입출력부(11)에서 접수된 요구로부터 데이타의 독출 요구를 판정한다. 독출 요구 횟수 카운트부(13)는 독출한 요구 횟수를 요구된 화일마다 카운트하여 독출 요구 횟수 유지부(13')에 카운트치를 기록한다. 또는, 독출 요구가 없더라도 일정 시간 경과마다 모든 화일의 그 카운트치를 갱신한다. 독출 개시 결정부(14)는 독출 요구 횟수 카운트부(13)에서 카운트된 카운트치가 미리 정한 일정치에 도달했는지의 여부를 판정한다. 그리고, 일정치에 도달하면, 해당하는 화일의 독출을 결정하여 독출 제어부(16)에 해당하는 화일의 데이타의 독출을 지시한다.
독출 제어부(16)는 지시된 화일의 데이타를 기억부(2)로부터 독출하여 데이타 입출력부(11)에 전송한다. 데이타 입출력부(11)는 기억부(2)로부터 독출한 데이타의 요구처의 클라이언트에 전송한다. 또, 기억부(2)로부터 독출한 데이타가 복수의 클라이언트로부터 요구되어 있는 것이면, 그 데이타를 각각의 클라이언트에 전송한다.
이상 설명한 바와 같이, 본 발명의 제 1 실시예에 따른 기억 장치에 의하면, 거의 동시기에 이루어진 동일 화일의 데이타의 독출을 일회로 행하여, 그 데이타를 각 요구처로 전송하므로, 기억부(2)로부터 독출하는 데이타의 독출 횟수를 감소시킬 수 있고, 데이타의 독출의 효율을 대폭으로 향상시킬 수 있다.
도 3은 본 발명의 제 2 실시예에 따른 기억 장치의 구성을 나타내는 블록도이고, 도 3의 실시예는 캐시 메모리(5)의 제어 방법에 관한 것이다.
도 3에 나타낸 바와 같이, 캐시 메모리(5)를 설치하여 데이타 전송을 행하는 경우, 기억부(3)의 물리적 또는 논리적인 블록을 캐시 메모리(5)상의 교체 단위로 하는 것이 가능하다. 새로운 블록을 캐시 메모리(5)에 격납하는 경우, 캐시 메모리(5)상에 공간이 있으면 거기에 기억한다. 캐시 메모리(5)상에 공간이 없다면 적당한 블록을 추출하여 공간을 만들어 새로운 블록을 격납한다.
그러나, 화일이 연속적인 데이타의 블록의 캐시 메모리(5)상의 관리를 단순히 블록 단위로 행하면, 선두 블록(오래된 블록)으로부터 추출(삭제)이 행해진다. 화일의 독출 요구가 추출이 시작된 후에 발생하면, 추출된 블록이 독출 요구를 한 화일의 블록일 때가 있고, 그와 같은 경우에는 히트 전송은 행해지지 않게 되고, 데이타 공급 능력이 저하한다.
이것을 막기 위해서, 도 3의 제 2 실시예에서는 캐시 관리 테이블(22)을 구비하도록 하여 캐시 메모리(5)상의 빈 영역의 관리를 화일 단위와 블록 단위로 병용하여 행하도록 하고 있다.
본 발명의 제 2 실시예가 대상으로 하는 데이타는 기억 장치(1)로의 액세스 요구중 데이타 독출의 비율이 많고, 또한 대량이며 연속적이라는 특징이 있기 때문에, 이와 같이 기억 장치(1)에 캐시 메모리(5)를 설치하는 것이 유효하다. 또한, 단지 캐시 메모리(5)를 설치하는 것 뿐인 경우에 비하여, 캐시 메모리(5)상의 빈 영역의 관리를 화일 단위와 블록 단위로 병용하여 행하는 제어를 함으로써, 캐시 메모리(5)의 데이타 전송 능력을 한층 더 향상시킬 수 있다.
즉, 본 발명의 제 2 실시예는 화일 단위에 대량의 연속 데이타를 유지하는 기억부(2)와, 기억부(2)에 유지되는 데이타의 입출력 제어를 행하는 기억 제어부(3)를 구비한 기억 장치(1)에 있어서의 화일 데이타의 독출의 제어 방법에 있어서, 기억 제어부(3)는 캐시 메모리(5)와 캐시 관리 테이블(22)을 구비하고 있다.
캐시 관리 테이블(22)은 캐시 메모리(5)에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블(23)과, 화일마다 블록의 격납의 우선도를 관리하는 블록 관리 테이블(24)에 의해 구성한다.
그리고, 캐시 메모리 제어 프로그램(21)은 화일 관리 테이블(23)상에 있어서, 요구된 화일의 캐시 메모리(5)에 유지하는 우선도를 가장 높은 우선도로 한다.
또한, 캐시 메모리 제어 프로그램(21)은 블록 관리 테이블(24)상에 있어서는 가장 나중에 독출 요구가 있었던 블록일수록 우선도가 높고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 하여 새롭게 데이타를 기록하는 블록이 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하며, 이어서 그 화일의 블록의 우선도가 낮은 순으로 블록의 삭제를 행한다.
또, 연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일련의 데이타의 액세스 상황을 조사하고, 그 일부의 블록 데이타가 캐시 메모리(5)상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있었으면 그 화일의 우선도를 가장 높게 하여 그 블록을 삭제하지 않고서 액세스 요구가 있는 블록의 조금 후의 블록에서부터, 캐시 메모리(5)상에 격납되어 있는 블록의 하나전 블록까지를 캐시 메모리(5)에 격납하도록 하고 있다.
도 3에 있어서, (1)은 기억 장치이고, (2)는 기억부이며, 화일 단위로 대량의 연속 데이타를 유지하는 것이다. 예컨대, 이 연속 데이타는 영화등이며, 기억부(2)는 영화, 음악, 음성 등의 대량의 연속적인 멀티미디어 데이타를 화일 단위로 가지는 것이다.
(5)는 캐시 메모리, (6)은 제어부로서, 기억부(2) 및 캐시 메모리(5)의 제어를 행하는 것, (20)은 제어 기억부로서 제어부(6)의 제어 프로그램등을 유지하는 것, (21)은 캐시 메모리 제어 프로그램으로서 제어부(6)에 의해 캐시 메모리(5)의 제어를 행하는 프로그램이다.
(22)는 캐시 관리 테이블로서 캐시 메모리(5)의 화일을 관리하는 화일 관리 테이블(23)과, 블록을 관리하는 블록 관리 테이블(24)로 구성되는 것이다.
(23)은 화일 관리 테이블로서, 캐시 메모리(5)에 격납하는 화일을 관리하는 테이블이고, 블록의 추출(삭제)할 때의 화일을 격납하는 우선도를 유지하는 것이다.
(24)는 블록 관리 테이블이고, 화일마다 블록을 격납하는 우선도를 유지하는 것이다.
도 4는 본 발명의 일실시예에 따른 수신 장치의 구성을 나타내는 블록도이다.
도 4에 있어서, (25)는 데이타 요구원에 설치되어 있는 수신 장치, (26)은 통신 회선과 수신 장치(25)를 접속하고 있는 인터페이스, (27)은 데이타 요구지로부터 수신된 데이타를 격납하는 버퍼, (28)은 버퍼(27)에 격납되어 있는 데이타를 소정의 독출 속도로 독출하는 독출부, (29)는 CRT, (30)은 데이타 요구원에 데이타의 송신을 요구하거나, 빨리 감기나 되감기나 일시정지 등의 지시를 행하거나 하는 조작부이다.
수신 장치(25)는 예컨대, 도 3의 캐시 메모리(5)로부터 고속으로 독출되어 수신된 데이타를 버퍼(27)에 격납한다. 그리고, 독출부(28)가 소정의 독출 속도로 버퍼(27)에 격납되어 있는 데이타를 독출함으로써, 영화등의 영상을 통상의 속도로 재생하거나, 빨리 감기나 되감기나 일시정지 등의 특수 재생을 행하거나 할 수 있도록 하고 있다.
도 5는 도 3의 캐시 메모리(5)의 제어 방법의 설명도이다.
도 5에 있어서, (23, 23')는 화일 관리 테이블이다. 화일 관리 테이블(23)은 캐시 메모리(5)에 데이타를 유지하는 화일 i, 화일 j, ···, 화일 k를 우선도의 순서로 기억하고 있다. 그리고, 예컨대, 화일 관리 테이블(23)의 화일 k에 독출 요구가 있으면, 화일 k의 우선도를 가장 높게 하여 화일 관리 테이블(23')을 생성한다. 이와 같이, 블록을 유지하는 화일로서 가장 가까운 시간에 독출된 화일의 우선도를 가장 높게 하여 독출된 가장 오래된 화일을 가장 낮은 우선도로 한다 (LRU 법).
24-1, 24-2, 24-3은 블록 관리 테이블이다.
24-1은 화일 i의 블록 관리 테이블로서, 캐시 메모리(5)에 유지되어 있는 화일 i의 데이타 블록에 대하여, 추출을 행하는 블록의 우선도를 부여하여 유지하고 있는 것이다. 즉, 블록 관리 테이블(24-1)은 블록 m, ···, 블록 n이 캐시 메모리(5)에 유지되어 있는 상태를 나타내고, 블록 m의 우선도가 가장 높고, 블록 n의 우선도가 가장 낮은 상태를 나타낸다. 화일내의 블록의 관리는 FIFO(First In First Out) 또는 LRU 법으로 행하고, 새로운 블록일수록 유지하는 우선도를 높게 하여 오래된 블록이 추출되기 쉽도록 한다.
24-2는 화일 j의 블록 관리 테이블로서, 블록 o, ···, 블록 p가 캐시 메모리(5)에 유지되어 있는 상태를 나타내며, 블록 o의 우선도가 가장 높고, 블록 p의 우선도가 가장 낮은 상태를 표시하고 있다.
24-3는 화일 k의 블록 관리 테이블로서, 블록 q, ···, 블록 r이 캐시 메모리(5)에 유지되어 있는 상태를 나타내며, 블록 q의 우선도가 가장 높고 블록 r의 우선도가 가장 낮은 상태를 표시하고 있다.
다음에, 도 3의 기억 장치의 동작을 설명한다.
도 5에 있어서, 화일 관리 테이블(23)은 화일 i, 화일 j, ···, 화일 k가 기록되고, 화일 i의 우선도가 가장 높고, 화일 k의 우선도가 가장 낮은 상태를 표시하고 있다.
화일 관리 테이블(23)의 상태에 있어서, 화일 k의 독출 요구가 발생하면, 화일 관리 테이블(23')과 같이 화일 k의 우선도를 가장 높게 한다. 이와 같이, 화일 관리는 LRU 법에 의해 행하고, 가장 가까운 시간에 독출된 화일의 우선도를 가장 높게 하고, 독출된 가장 오래된 화일을 가장 낮은 우선도로 한다.
블록을 추출하는 경우는 이 화일 관리 테이블(23)을 참조하고, 가장 우선도가 낮은 화일의 블록으로부터 추출이 행해진다.
예컨대, 도 5의 화일 관리 테이블(23)을 참조한 경우, 화일 k의 블록 q, ···, 블록 r로부터 추출이 행해진다.
또한, 블록의 추출은 FIFO 법에 의해 행해지고, 우선도가 낮은 블록으로부터 순서대로 추출한다. 또는 LRU 법도 좋다.
예컨대, 화일 k의 블록 q, ···, 블록 r의 추출을 행하는 경우, 블록 r의 추출이 최초로 행해지고, 블록 q의 추출이 최후에 행해진다.
이와 같이, 화일 관리 테이블(23)과 블록 관리 테이블(24)을 병용하여 캐시 메모리(5)를 관리함으로써, 사용 빈도가 높은 화일의 일부의 블록이 추출될 가능성이 낮아지고 히트(hit) 전송의 가능성이 향상된다.
또, 연속하여 액세스되는 일련의 데이타를 캐시 메모리(5)에 격납할 때, 그 일련의 데이타의 액세스 상황을 조사하여 그 일부의 블록의 데이타가 캐시 메모리(5)상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있었으면 그 화일의 우선도를 가장 높게 하고, 그 블록을 삭제하지 않고서, 액세스 요구가 있는 블록의 조금 후의 블록으로부터 캐시 메모리(5)상에 격납되어 있는 블록의 하나전 블록까지를 격납한다. 이렇게 하여, 히트 전송의 가능성을 증가시키도록 하고 있다.
다음에, 본 발명의 실시예에 따른 데이타 전송 시스템에 대해서 도면을 참조하면서 설명한다.
도 6(a)는 기억 장치로부터 독출된 데이타를 서버가 클라이언트에 전송하는 구성이다.
도 6(b)는 기억 장치가 클라이언트와의 인터페이스를 구비하여 기억 장치로부터 독출된 데이타를 기억 장치로부터 클라이언트에 직접 전송하는 구성이다.
도 6에 있어서, 31, 32, 33은 각각 클라이언트 1, 클라이언트 2, 클라이언트 N이다.
(35)는 서버, (36)은 독출 요구 접수 테이블로서, 요구된 화일명과 요구한 클라이언트(31, 32, 33)를 대응시켜 유지하는 테이블, (37)은 기억 장치, (38)은 기억 장치(37)에 구비되는 클라이언트(31, 32, 33)와의 인터페이스 모듈이다.
도 7은 도 6(a)의 데이타 전송 시스템의 서버(35) 및 기억 장치(37)의 구성을 보다 상세히 나타낸 도면이다.
도 7에 있어서, (35)는 서버,(36)은 독출 요구 접수 테이블, (36')는 데이타 버퍼로서, 전송 데이타를 일시 유지하는 버퍼, (37)은 기억 장치이다. 여기서, 독출 요구 접수 테이블(36)에는 예컨대, 클라이언트 1이 기억 디바이스(41)에 격납되어 있는 화일 A에 대하여 독출 요구를 행하고, 클라이언트 2가 기억 디바이스(41)에 격납되어 있는 화일 B에 대하여 독출 요구를 행하며, 클라이언트 3이 기억 디바이스(41)에 격납되어 있는 화일 A에 대하여 독출 요구를 행하고, 클라이언트 N이 기억 디바이스(41)에 격납되어 있는 화일 A에 대하여 독출 요구를 행한 것이 기억된다.
기억 장치(37)에 있어서, (40)은 기억 제어부, (41)은 기억 디바이스로서, 자기 디스크 장치, 광독해 기억 장치, CD-ROM 등의 대량의 데이타를 기억하는 장치이며, 도 2의 기억부(2)에 상당한다.
기억 제어부(40)에 있어서, (45)는 서버 인터페이스 모듈로서, 서버(35)로부터 기억 디바이스(41)에 대한 독출이나 기록등의 요구를 접수하여 독출에 있어서, 기억 디바이스(41)로부터 독출된 데이타를 디바이스 인터페이스 모듈(46)로부터 수신하여 서버(35)에 출력하며, 또는 기록에 있어서, 서버(35)로부터 수신된 기록 데이타를 디바이스 인터페이스 모듈(46)에 전송하는 것이다. 또, 서버 인터페이스 모듈(45)은 도 2의 데이타 입출력부(11)에 대응한다.
(45')는 데이타 버퍼로서, 전송 데이타를 일시 유지하는 것이다.
(46)은 디바이스 인터페이스 모듈로서, 서버 인터페이스 모듈(45)의 독출 요구에 대하여 서버 인터페이스 모듈(45)로부터 요구된 데이타를 기억 디바이스(41)로부터 취출하여 서버 인터페이스 모듈(45)에 전송하고, 서버 인터페이스 모듈(45)의 기록 요구에 대하여 서버(35)로부터 전송되는 기록 데이타를 기억 디바이스(41)에 기록하는 것이다.
(46')는 데이타 버퍼로서, 전송 데이타를 일시 유지하는 것이다.
(47)은 제어 장치로서, 마이크로 프로세서 유닛(MPU)이다.
(51)은 제어 기억부로서, 제어부(50)의 제어 프로그램등을 유지하는 것이다.
(52)는 독출 요구 판정 프로그램으로서, 서버(35)로부터의 요구가 데이타의 독출 요구인지의 여부를 판정하는 것이다.
(53)은 독출 지시 프로그램으로서, 디바이스 인터페이스 모듈(46)에 데이타의 독출을 지시하는 프로그램이다.
(54)는 독출 개시 결정 프로그램으로서, 데이타의 독출 개시를 결정하는 프로그램이다.
(55)는 독출 요구 횟수 카운트 프로그램으로서, 카운터, 타이머등을 구비하여 화일마다 독출 요구 횟수를 카운트하는 동시에, 독출 요구가 없는 경우에는 일정 시간마다 각 화일의 그 카운트치를 갱신하는 것이다.
(56)은 독출 요구 테이블로서, 화일마다의 독출 요구 횟수를 유지하는 것이다.
도 8은 독출 요구 횟수 카운트부와 독출 요구 테이블(56)의 실시예를 나타낸다.
도 8에 있어서, (55')는 독출 요구 횟수 카운트부로서, 독출 요구 횟수 카운트 프로그램(55)이 격납되어 있다.
(56)은 독출 요구 테이블로서, 화일마다 독출 요구 횟수를 나타내는 값(초기치로부터 독출 요구가 있을 때마다 1씩 감산한 값)을 유지하는 것이다. 예컨대, 화일 A의 독출 요구 횟수를 나타내는 값으로서 3이 유지되고, 화일 B의 독출 요구 횟수를 나타내는 값으로서 4가 유지되어 있다.
독출 요구 횟수 카운트부(55')에 있어서, (61)은 독출 요구 테이블 갱신부로서, 독출 요구가 있을 때마다 독출 요구된 화일의 독출 요구 횟수의 값을, 초기치로부터 1씩 감산하는 것이다. 또, 독출 요구가 없더라도 일정 시간 경과마다, 테이블에 기록되어 있는 각 화일의 그 카운트치를 갱신하는 것이다.
(62)는 독출 요구 화일수 갱신부로서, 독출이 있는 화일에 대해서 다른 화일마다 그 수를 카운트하는 것이며, 독출 요구가 있을 때, 이미 독출 요구가 있는 화일의 독출 요구 화일수 유지부(64)의 값은 갱신하지 않고, 독출 요구된 화일과 다른 독출 요구 화일수 유지부(64)의 값만을 갱신한다.
(63')는 독출 요구 횟수 초기치 유지부로서, 독출 요구 횟수의 초기치를 화일마다 유지하는 것이다.
(64)는 독출 요구 화일수 유지부로서, 독출 요구가 있는 화일수를 유지하는 것이다.
도 9는 도 7의 데이타 전송 시스템의 동작 설명도로서, 도 8의 독출 요구 테이블(56)과 독출 요구 화일수 유지부(64)의 내용의 변화를 나타낸다.
이하의 도 9의 설명에서는 동일 화일에 대하여 3회정도 독출이 있을 때, 기억 디바이스(41)로부터 그 화일의 데이타가 독출되어 서버(35)에 전송되는 것으로 한다. 또한, 독출 요구 횟수 초기치 유지부(63')에는 예컨대, 화일 A의 독출 요구 횟수의 초기치로서 2가 설정되고, 화일 B의 독출 요구 횟수의 초기치로서 2가 설정되어 있는 것으로 한다.
도 9에 있어서, (56)은 독출 요구 테이블이고, (64)는 독출 요구 화일수 유지부이다.
도 9(0)는 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 초기 상태를 나타낸다. 즉, 독출 요구 테이블(56)의 화일 A, B의 독출 요구 횟수를 나타내는 값은 각각 0으로 설정되고, 독출 요구 화일수 유지부(64)의 독출 요구 화일수도 0으로 설정된다.
도 9(1)는 도 9(0)의 상태로부터, 소정 시간내에 화일 A에 독출 요구가 있을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 독출 요구 테이블(56)의 화일 A의 독출 요구 횟수로서, 독출 요구 횟수 초기치 유지부(63')의 초기치 2가 세트된다. 그리고, 독출 요구 횟수의 카운트를 감산 방식으로 행하여 1회의 독출마다 독출 요구 횟수의 값을 감산하고, 독출 요구 횟수의 값이 0이 되면 3회의 독출 요구가 있었던 것으로 하여 데이타를 독출한다. 또한, 독출 요구 화일수 유지부(64)에 1이 세트된다. 또, 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수는 0인 채로 유지된다.
도 9(2)는 도 9(1)의 상태로부터, 소정 시간내에 화일 B에 독출 요구가 있을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수로서, 독출 요구 횟수 초기치 유지부(63')의 초기치 2가 세트된다. 또한, 독출 요구 화일수 유지부(64)의 값 1에 1을 가산하여 2로 한다. 또, 독출 요구 테이블(56)의 화일 A의 독출 요구 횟수는 2인 채로 유지된다.
도 9(3)는 도 9(2)의 상태로부터, 소정 시간내에 화일 A에 독출 요구가 있을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 독출 요구 테이블(56)의 화일 A의 독출 요구 횟수를 초기치 2에서 1을 빼서 1로 한다. 또, 독출 요구 화일수 유지부(64)의 값 2는 그대로 유지되고, 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수는 2인 채로 유지된다.
도 9(4)는 도 9(3)의 상태로부터, 소정 시간내에 화일 A에 독출 요구가 있을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 화일 A의 독출 요구 횟수 1에서 1을 빼서 0으로 한다. 여기서, 독출 요구 횟수가 0이 됨으로써, 기억 디바이스(41)로부터 화일 A의 데이타를 독출하여 서버(35)에 전송한다. 또한, 독출 요구 화일수 유지부(63)의 값 2에서 1만큼 감하여 1로 한다. 또, 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수는 2인 채로 유지된다.
이 때, 서버(35)는 도 7의 독출 요구 접수 테이블(36)을 참조함으로써, 화일 A의 독출 요구를 행한 3명의 클라이언트 1, 3, N을 검색한다. 그리고, 서버(35)는 화일 A의 독출 요구를 행한 3명의 클라이언트 1, 3, N에 대하여 화일 A의 데이타를 일제히 송출한다.
이것에 의해, 클라이언트 1, 3, N은 독출 요구 횟수가 소정의 값이 된 경우, 미리 정해져 있는 소정의 시간이 경과하지 않아도, 화일 A의 데이타를 수신할 수 있으며, 화일 A의 데이타를 수신할 때까지의 대기 시간을 줄일 수 있다. 또한, 화일 A의 독출 요구를 한 3명의 클라이언트 1, 3, N으로의 화일 A의 데이타의 송출은 기억 디바이스(41)로부터의 1회의 데이타의 독출에 의해 행할 수 있으므로, 기억 제어부(40)나 기억 디바이스(41)에 대한 부하를 경감할 수 있다.
도 9(5)는 도 9(4)의 상태로부터 일정 시간 독출 요구가 없었을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 독출 요구 화일수 유지부(64)의 값이 0이 아닌 것에 의해, 독출 요구가 있지만 독출되고 있지 않은 화일 B가 있는 것을 인식하여 일정 시간 경과후에, 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수를 1만큼 감하여 1에 자동갱신한다. 또, 독출 요구 화일수 유지부(63)의 값 1은 그대로 유지되고, 독출 요구 테이블(56)의 화일 A의 독출 요구 횟수는 0인 채로 유지된다.
도 9(6)는 도 9(5)의 상태로부터 일정 시간 독출 요구가 없었을 때의 독출 요구 테이블(56) 및 독출 요구 화일수 유지부(64)의 상태를 나타낸다.
이 경우, 일정 시간 경과후, 화일 B의 독출 요구 횟수를 1만큼 줄여 0에 자동 갱신한다. 여기서, 화일 B의 독출 요구 횟수가 0이 됨으로써, 기억 디바이스(41)로부터 화일 B의 데이타를 독출하여 서버(35)에 전송한다.
그리고, 독출 요구 화일수 유지부(64)의 값을 1에서 1만큼 빼서 0으로 한다. 독출 요구 화일수 유지부(63)의 값이 0이 됨으로써, 독출 요구되어 독출되고 있지 않는 화일은 존재하지 않는 것을 인식할 수 있다.
화일 B의 데이타가 전송된 서버(35)는, 도 7의 독출 요구 접수 테이블(36)을 참조함으로써, 화일 B의 독출 요구를 행한 클라이언트 2를 검색한다. 그리고, 서버(35)는 화일 B의 독출 요구를 행한 클라이언트 2에 대하여 화일 B의 데이타를 송출한다.
이것에 의해, 클라이언트 2는 소정의 시간 경과후에는 독출 요구 횟수가 소정치에 도달하지 않는 화일 B의 데이타를 수신할 수 있다.
또, 도 9의 예에서는 화일 A 및 화일 B의 독출 요구 횟수의 초기치를 2에 세트한 경우에 대해서 설명하였지만, 화일 A의 독출 요구 빈도가 크고, 화일 B의 독출 요구 빈도가 작다고 미리 알고 있는 경우는, 화일 A의 독출 요구 횟수의 초기치를 크게 설정하고, 화일 B의 독출 요구 횟수의 초기치를 작게 설정하도록 하여도 좋다.
예컨대, 화일 B의 독출 요구 횟수의 초기치를 0으로 설정해 둠으로써, 화일 B에 대해서는 미리 정해진 일정 시간이 경과하기를 기다지 않고, 요구원은 화일 B의 데이타를 즉석으로 수신할 수 있다. 이것은 미리 정해진 일정 시간의 경과 동안, 독출 요구가 1회밖에 없는 화일을 독출하는 경우에 특히 유효하다.
다음에, 도 9에 나타낸 독출 요구를 예로 들어, 도 7의 데이타 전송 시스템의 동작을 보다 상세하게 설명한다.
도 6(a)의 클라이언트 1로부터, 도 9의 기억 디바이스(41)에 격납되어 있는 화일 A의 독출 요구가 있는 것으로 한다. 서버(35)는 클라이언트 1로부터의 화일 A의 독출 요구에 기초하여 독출 요구 접수 테이블(36)에 화일 A와 클라이언트 1을 대응시켜서 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일 A의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일 A의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)와 독출 요구 판정 프로그램(52)에 의해 화일 A의 독출 요구가 있는 것을 판정하여 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55'))는 독출 요구 테이블(56)의 화일 A의 독출 횟수의 초기치로서 2를 세트한다. 여기서, 2를 초기치로서 세트함으로써, 3회의 독출 요구가 있을 때에 데이타가 독출된다. 또, 독출 요구 화일수 유지부(64)에 1을 세트한다. 또, 여기까지의 동작은 도 9(1)의 상태에 대응하고 있다.
다음에, 클라이언트 1의 화일 A의 독출 요구로부터 일정 시간이 경과하지 않는 동안에, 클라이언트 2로부터 화일 B의 독출 요구가 있었다고 한다. 서버(35)는 클라이언트 2로부터의 화일 B의 독출 요구에 기초하여 독출 요구 접수 테이블(36)에 화일 B와 클라이언트 2를 대응시켜서 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일 B의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일 B의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)와 독출 요구 판정 프로그램(52)에 의해 화일 B의 독출 요구가 있는 것을 판정하여 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55'))는 독출 요구 테이블(56)의 화일 B의 독출 횟수의 초기치로서 2를 세트한다. 또, 독출 요구 화일수 유지부(64)의 값에 1을 더하여 2를 세트한다. 또, 여기까지의 동작은 도 9(2)의 상태에 대응하고 있다.
다음에, 클라이언트 2의 화일 B의 독출 요구로부터 일정 시간이 경과하지 않는 동안에 클라이언트 3으로부터 화일 A의 독출 요구가 있었다고 한다. 서버(35)는 클라이언트 3의 화일 A의 독출 요구에 기초하여 독출 요구 접수 테이블(36)에 화일 A와 클라이언트 3을 대응시켜서 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일 A 와 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일 A의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)와 독출 요구 판정 프로그램(52)에 의해 독출 요구가 있는 것을 판정하여 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55'))은 독출 요구 테이블(56)의 화일 A의 독출 횟수로서 2에서 1만큼 뺀 1을 세트한다. 화일 A는 이미 독출 요구를 마쳤으므로, 독출 요구 화일수 유지부(64)의 값은 변경하지 않는다. 또, 여기까지의 동작은 도 9(3)의 상태에 대응하고 있다.
다음에, 클라이언트 3의 화일 A의 독출 요구로부터 일정 시간이 경과하지 않는 동안에, 클라이언트 N에서 화일 A의 독출 요구가 있었다고 한다. 서버(35)는 클라이언트 N의 화일 A의 독출 요구에 기초하여 독출 요구 접수 테이블(36)에 화일 A와 클라이언트 N을 대응시켜서 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일 A의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일 A의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)와 독출 요구 판정 프로그램(52)에 의해 독출 요구가 있는 것을 판정하여 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55'))는 독출 요구 테이블(56)의 화일 A의 독출 횟수로서, 1에서 1을 뺀 0을 세트한다.
독출 개시 결정 프로그램(54)은 독출 요구 테이블의 화일 A의 독출 요구 횟수치가 0이 된 것을 판정하여 그것을 독출 지시 프로그램(53)에 통지한다. 그렇게 하면, 독출 지시 프로그램(53)이 동작하여 제어부(50)로부터 디바이스 인터페이스 모듈(46)에 기억 디바이스(41)의 화일 A의 독출 지시가 이루어진다. 또한, 독출 요구 화일수 유지부(64)의 값을 2에서 1 감산하여 1로 한다. 또, 여기까지의 동작은 도 9(4)의 상태에 대응하고 있다.
디바이스 인터페이스 모듈(46)은 화일 A의 독출 지시를 제어 장치(47)로부터 수신하면, 기억 디바이스(41)로부터 화일 A의 데이타를 독출, 서버 인터페이스 모듈(45)에 전송한다. 서버 인터페이스 모듈(45)은 화일 A의 데이터가 수신되면, 서버(35)에 전송한다.
서버(35)는 서버 인터페이스 모듈(45)로부터 수신된 화일 A의 데이타를 데이타 버퍼(36')에 유지한다. 그리고, 독출 요구 접수 테이블(36)을 참조하여 독출 요구 접수 테이블(36)에 기록되어 있는 클라이언트 1, 클라이언트 2, 클라이언트 N에 화일 A의 데이타를 전송한다. 그리고, 각 클라이언트로의 데이타의 전송이 종료하면, 데이타 버퍼(36')의 데이타를 클리어하여 독출 요구 접수 테이블(36)의 화일 A의 접수 기록을 클리어한다.
다음에, 미리 정한 일정 시간을 경과하여도 다음의 독출 요구는 없었다고 한다. 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55')는 독출 요구 화일수 유지부(64)의 값이 0이 아니기 때문에, 독출 요구를 받고 있으면서 아직 독출되고 없는 화일 B가 있는 것을 인식하여 독출 요구 테이블(56)의 독출 횟수치 2에서 1을 빼서 1로 한다. 또, 여기까지의 동작은 도 9(5)의 상태에 대응하고 있다.
또한, 일정 시간 경과하여도 다음 독출 요구는 없었다고 한다. 독출 요구 횟수 카운트 프로그램(55)(즉, 도 8의 독출 요구 횟수 카운트부(55'))는 독출 요구 화일수 유지부(64)의 값이 0이 아니기 때문에, 독출 요구를 받으면서 아직 독출되지 않은 화일 B 가 있는 것을 인식하여 독출 요구 테이블(56)의 독출 횟수치(1)에서 1을 빼서 0으로 한다.
독출 개시 결정 프로그램(54)은 독출 요구 테이블(56)의 화일 B의 독출 요구 횟수치가 0이 된 것을 판정하여 독출 지시 프로그램(53)에 화일 B의 독출 요구 횟수치가 0이 된 것을 통지한다. 그렇게 하면, 독출 지시 프로그램(53)이 동작하여 제어부(50)로부터 디바이스 인터페이스 모듈(46)에 화일 B의 독출 지시가 이루어진다. 또한, 독출 요구 화일수 유지부(64)의 값을 1로부터 1감산하여 0으로 한다. 또, 여기까지의 동작은 도 9(6)의 상태에 대응하고 있다.
디바이스 인터페이스 모듈(46)은 화일 B의 독출 지시를 수신하면, 기억 디바이스(41)로부터 화일 B의 데이타를 독출하여 서버 인터페이스 모듈(45)에 전송한다. 서버 인터페이스 모듈(45)은 화일 B의 데이터를 수신하면, 서버(35)에 전송한다.
서버(35)는 서버 인터페이스 모듈(45)로부터 전송된 화일 B의 데이타를 버퍼(36')에 유지한다. 그리고, 독출 요구 접수 테이블(36)을 참조하여 서버 인터페이스 모듈(45)로부터 수신된 화일 B의 데이타를 요구원의 클라이언트 2에 전송한다. 그리고, 화일 B의 데이타의 전송이 종료하면 데이타 버퍼(36')를 클리어하여 독출 요구를 접수 테이블(36)의 화일 B의 접수 기록을 클리어한다.
도 10은 도 7의 데이타 전송 시스템의 동작의 제 1 실시예를 도시하는 흐름도로서, 독출 요구가 있을 경우를 나타낸다. 또, 도 10의 실시예는 독출 요구 횟수의 다소에 관계없이, 일정 시간이 경과하였으면, 요구된 모든 화일을 송출하도록 한 것이다.
도 10에 있어서, 우선, 단계 S1에 나타낸 바와 같이, 초기 설정으로서, N=0으로 한다. 여기서, N은 도 8의 독출 요구 화일수 유지부(64)에 유지하는 독출 요구 파일 수이다.
다음에, 단계 S2에 나타낸 바와 같이, 도 6의 클라이언트(31, 32, 33)로부터의 독출 요구가 있는지의 여부를 판정한다. 그리고, 독출 요구가 있으면, 단계 S3으로 진행하고, 독출 요구가 없으면, 단계 S12로 진행한다.
단계 S3에서는 요구된 화일이 이미 독출 요구된 화일과 동일 화일인지 판정한다. 그리고, 동일 요구 화일이 있으면, 단계 S7로 진행하고, 동일 요구 화일이 없으면, 단계 S4로 진행한다.
단계 S4에서는 그때까지 독출 요구가 되고 있지 않던 화일이므로, 독출 요구 화일수 N을 1만큼 증분한다.
단계 S5, S6에서는 독출 요구 화일의 요구된 화일에 대한 독출 요구 횟수치 Cj에, 초기치 C0를 설정한다. 여기서, 초기치 C0는 독출을 개시할 때까지의 요구 횟수+1을 세트한다 (도 7의 설명에 있어서의 초기치보다 1만큼 큰 값으로 한다).
단계 S7에서는 단계 S3에서 이미 동일 화일 요구의 접수가 있다고 판정되었기 때문에, 동일 화일의 독출 요구의 접수가 있는 것으로서 단계 S8에 진행한다.
다음에, 단계 S8에서는 모든 화일에 대응하는 독출 요구 횟수치 Ci를 1만큼 감한다.
다음에, 단계 S9에서는 독출 요구 횟수치 Ci에 0인 것이 있는지의 여부를 판정한다. 독출 요구 횟수치 Ci에 0인 것이 있으면, 단계 S10으로 진행하고, 독출 요구 횟수치 Ci에 0인 것이 없으면, 단계 S2 이후의 처리를 반복한다.
다음에, 단계 S10에서는 기억 디바이스(41)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다.
다음에, 단계 S11에서는 독출 요구 화일수 N을 1만큼 감한다.
단계 S12에서는 단계 S2에서 독출 요구가 없으면, 독출 화일수 유지부(64)에 유지되어 있는 독출 요구 화일수 N이 0인지 아닌지를 판정한다. 독출 요구 화일수N0이면(즉, 독출 요구 화일수 N이 0이 아니면), 단계 S8 이후의 처리를 반복한다. 독출 요구 화일수 N이 0이면, 단계 S2 이후의 처리를 반복한다.
도 11은 도 7의 데이타 전송 시스템의 동작의 제 2 실시예를 나타내는 흐름도이다. 또, 도 11의 실시예는 독출 요구 횟수가 많은 것에 대해서는 독출 요구 횟수가 소정의 값에 도달했을 때, 요구된 화일을 송출하고, 독출 요구 횟수가 적은 것에 대해서는 독출 요구 횟수가 소정의 값에 도달하지 않아도, 일정 시간이 경과했으면, 요구된 화일을 송출하도록 한 것이다.
도 11에 있어서, 우선, 단계 S21에 나타낸 바와 같이, 초기 설정으로서, N=0 로 한다. 여기서, N은 도 8의 독출 요구 화일수 유지부(64)에 유지하는 독출 요구 화일수이다.
다음에, 단계 S22에 나타낸 바와 같이, 도 6의 클라이언트(31, 32, 33)로부터의 독출 요구가 있는지의 여부를 판정한다. 그리고, 독출 요구가 있으면, 단계 S23으로 진행하고, 독출 요구가 없으면, 단계 S33으로 진행한다.
단계 S23에서는 요구된 화일이 이미 독출 요구된 화일과 동일 파일인지의 여부를 판정한다. 그리고, 동일 요구 화일이 있으면, 단계 S27로 진행하고, 동일 요구 화일이 없으면, 단계 S24로 진행한다.
단계 S24에서는 그때까지 독출 요구가 되지 않던 화일이므로, 독출 요구 화일수 N을 1만큼 증분한다.
단계 S25, S26에서는 독출 요구 화일의 요구된 화일에 대한 독출 요구 횟수치 Cj에, 초기치 C0를 설정하여 단계 S27로 진행한다. 여기서, 초기치 C0는 독출을 개시할 때까지의 요구 횟수+1을 세트한다.
다음에, 단계 S27에서는 모든 화일에 대응하는 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S30으로 진행한다.
단계 S28에서는 단계 S23에서 이미 동일 화일의 요구의 접수가 있다고 판정되었기 때문에, 동일 화일의 독출 요구가 접수가 있는 것으로 하여 단계 S29로 진행한다.
다음에, 단계 S29에서는 독출 요구의 접수가 행해진 동일 화일의 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S30으로 진행한다.
다음에, 단계 S30에서는 독출 요구 횟수치 Ci에 0인 것이 있는지 판정한다. 독출 요구 횟수치 Ci에 0인 것이 있으면, 단계 S31로 진행하고, 독출 요구 횟수치 Ci에 0인 것이 없으면, 단계 S22 이후의 처리를 반복한다.
다음에, 단계 S31에서는 기억 디바이스(41)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다.
다음에, 단계 S32에서는 독출 요구 화일수 N을 1만큼 감한다.
단계 S33에서는 단계 S22에서 독출 요구가 없으면, 독출 화일수 유지부(64)에 유지되어 있는 독출 요구 화일수 N이 0인지 아닌지를 판정한다. 독출 요구 화일수 N0이면, 단계 S27 이후의 처리를 반복한다. 독출 요구 화일수 N이 0이면, 단계 S22 이후의 처리를 반복한다.
도 12는 도 7의 데이타 전송 시스템의 제 3 실시예의 동작을 나타내는 흐름도이다.
도 12의 예에서는 도 11에서 설명한 방식에 부가하여 풀(full)-주문형 비디오 방식 또는 니어(near)-주문형 비디오 방식을 선택할 수 있도록 하고 있다.
주문형 비디오(VOD: Video On Demand)는 각 가정에 설치되어 있는 STB (세트 톱 박스: Set Top Box)라고 불리는 단말 장치로부터 송신되는 요구에 따라서, 복수의 타이틀의 영상을 축적하고 있는 CATV(케이블·텔레비전: Cable Television) 센터로부터, 그 요구된 비디오 데이타를 요구원의 가정으로 송신한다.
주문형 비디오는 풀-주문형 비디오(FVOD: Full Video On Demand)와 니어-주문형 비디오(NVOD: Near Video On Demand)가 있다.
풀-주문형 비디오는 시청자가 보고싶은 비디오 프로그램을 요구하면, 그 요구한 비디오 프로그램을 즉석으로 볼 수 있는 서비스 형태이고, 시청자의 요구에 따라서, 그 요구된 비디오 프로그램이 즉석으로 방영된다. 또한, 시청자는 1개의 비디오 프로그램을 전유하여 볼 수 있으며, 가정내에 설치되어 있는 VTR이나 비디오·디스크와 같이, 비디오의 재생뿐만 아니라, 빨리 감기, 되감기, 일시정지 등도 가능하다. 이러한 기능을 실현하기 위해서, 풀-주문형 비디오는 각 시청자가 개별적으로 전유 채널을 사용하도록 되어 있다.
한편, 니어-주문형 비디오는 시간·시프트·서비스라고도 불리우며, 하나의 비디오 프로그램을 시간이 겹치지 않게, 일정 시간 간격으로, 복수의 채널을 이용하여 방영하는 서비스 형태이다. 예컨대, 120채널분의 스트림을 사용하여 2시간의 비디오 프로그램을 1분 간격으로 송출한다. 이것에 의해, 시청자는 최대 1분 기다리면, 언제나 원하는 비디오 프로그램을 처음부터 볼 수 있다.
도 12에 있어서, 우선, 단계 S41에 나타낸 바와 같이, 초기 설정으로서, N=0 로 한다. 여기서, N은 도 8의 독출 요구 화일수 유지부(64)에 유지하는 독출 요구 화일수이다. 또한, 초기치 C0를 설정하는 동시에, 방식 설정을 행한다. 이 방식으로는 방식 1∼3까지 있으며, 방식 1은 풀-주문형 비디오 방식, 방식 2는 니어-주문형 비디오 방식, 방식 3은 독출 요구 횟수가 소정치에 도달한 화일을 송출하는 방식이다. 또, 방식 설정으로 방식 1의 풀-주문형 비디오 방식을 선택한 경우, 초기치 C0를 1로 설정하고, 방식 2의 니어-주문형 비디오 방식을 선택한 경우, 독출을 행할 때까지의 일정 시간에 대응하는 값에 초기치 C0를 설정한다. 또한, 방식 3을 선택한 경우, 독출을 개시할 때까지의 요구 횟수+1에 초기치 C0를 세트한다.
다음에, 단계 S42에 나타낸 바와 같이, 도 6의 클라이언트(31, 32, 33)로부터의 독출 요구가 있는지 없는지를 판정한다. 그리고, 독출 요구가 있으면, 단계 S43으로 진행하고, 독출 요구가 없으면, 단계 S54로 진행한다.
단계 S43에서는 요구된 화일이 이미 독출 요구된 화일과 동일 화일인지 판정한다. 그리고, 동일 요구 화일이 있으면, 단계 S47로 진행하고, 동일 요구 화일이 없으면, 단계 S44로 진행한다.
단계 S44에서는 그때까지 독출 요구가 되어 있지 않던 화일이므로, 독출 요구 화일수 N을 1만큼 증분한다.
단계 S45, S46에서는 독출 요구 화일의 요구된 화일에 대한 독출 요구 횟수치 Cj에 초기치 C0를 설정하여 단계 S50으로 진행한다.
다음에, 단계 S50에서는 모든 화일에 대응하는 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S51로 진행한다.
단계 S47에서는 단계 S43에서 이미 동일 화일의 요구의 접수가 있다고 판정되었기 때문에, 동일 화일의 독출 요구의 접수가 있는 것으로 하여 단계 S48로 진행한다.
단계 S48에서는 단계 S41의 방식 설정으로 방식 2가 선택되었는지의 여부를 판정하고, 방식 설정으로 방식 2가 선택되었으면, 단계 S50으로 진행하며, 방식 설정으로 방식 1 또는 방식 3이 선택되었으면, 단계 S49로 진행한다.
다음에, 단계 S49에서는 독출 요구의 접수가 행해진 동일 화일의 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S51로 진행한다.
다음에, 단계 S51에서는 독출 요구 횟수치 Ci에 0인 것이 있는지 판정한다. 독출 요구 횟수치 Ci에 0인 것이 있으면, 단계 S51로 진행하고, 독출 요구 횟수치 Ci에 0인 것이 없으면, 단계 S42 이후의 처리를 반복한다.
또, 단계 S41의 방식 설정으로 방식 1이 선택된 경우, 초기치 CO는 1로 설정되며, 단계 S50으로 독출 요구 횟수치 Ci가 1만큼 삭감되어 0으로 되어 있는 것으로, 단계 S51에 있어서, 항상 YES라고 판정된다. 이 때문에, 방식 1이 선택된 경우, 신규로 요구된 화일은 단계 S52에서 항상, 기억 디바이스(41)로부터의 독출이 행해지고, 신규로 요구된 화일의 송출을 즉석으로 행할 수 있다.
다음에, 단계 S52에서는 독출 요구 횟수치 Ci가 0인 화일의 데이타를 기억 디바이스(41)로부터 독출한다.
다음에, 단계 S53에서는 독출 요구 화일수 N을 1만큼 감한다.
단계 S54에서는 단계 S42에서 독출 요구가 없으면, 독출 화일수 유지부(64)에 유지되어 있는 독출 요구 화일수 N이 0인지 아닌지를 판정한다. 독출 요구 화일수 N0이면, 단계 S50 이후의 처리를 반복한다. 독출 요구 화일수 N이 0이면, 단계 S42 이후의 처리를 반복한다.
도 13은 본 발명의 제 2 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도이다.
도 13의 실시예에서는 대상으로 하는 데이타가 기억 장치(37)로의 액세스 요구중 데이타 독출의 비율이 많고, 또한 대량이며 연속적이라는 특징이 있기 때문에, 기억 장치(37)에 캐시 메모리(48)를 설치해 두고, 캐시 메모리(48)로부터의 데이타 전송(히트 전송)이 행해지도록 해 둠으로써, 데이타 공급 능력을 향상시키고 있다.
그 때문에, 도 13의 실시예에서는 캐시 메모리(48)가 도 7의 구성에 첨가되어 있다.
즉, 도 13에 있어서, (35)는 서버, (36)은 독출 요구 접수 테이블, (36')은 데이타 버퍼, (40)은 기억 제어부, (41)은 기억 디바이스, (45)는 서버 인터페이스 모듈, (46)은 디바이스 인터페이스 모듈, (48)은 캐시 메모리, (50)은 제어부(MPU), (51)은 제어 기억부, (52)는 독출 요구 판정 프로그램, (54)는 독출 개시 판정 프로그램, (55)는 독출 요구 횟수 카운트 프로그램, (56)은 독출 요구 테이블, (57)은 캐시 제어 프로그램으로서, 캐시 메모리(48)의 제어를 행하는 프로그램, (60)은 캐시 메모리 관리 테이블로서, 캐시 메모리(48)를 관리하는 테이블이다.
도 13의 실시예의 동작은 캐시 메모리(48)에 관한 동작을 제외하고, 도 7의 실시예의 동작과 동일하다. 즉, 캐시 메모리 관리 테이블(60)은 캐시 메모리(48)에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과, 화일마다 블록의 격납의 우선도를 관리하는 블록 관리 테이블을 구비하고 있다.
서버(35)는 클라이언트로부터의 화일의 독출 요구에 기초하여 독출 요구가 있는 화일과 독출 요구를 행한 클라이언트를 대응시켜서 독출 요구 접수 테이블(36)에 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)와 독출 요구 판정 프로그램(52)에 의해 독출 요구가 있는 것을 판정하여 캐시 제어 프로그램(57)을 기동하고, 화일 관리 테이블에서 관리되는 화일중, 클라이언트로부터 요구된 화일의 캐시 메모리(48)에 유지하는 우선도를 가장 높은 우선도로 한다. 또한, 블록 관리 테이블(24)에서 관리되는 화일마다의 블록중, 가장 나중에 독출 요구가 있는 블록일수록 우선도가 높고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 한다.
또, 새롭게 데이타를 기록하는 블록의 영역이 캐시 메모리(48)에 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하여 삭제한다고 결정된 화일의 블록의 우선도가 낮은 순으로 블록의 삭제를 행한다.
또한, 제어 장치(47)는 독출 요구 횟수 카운트 프로그램(55)을 기동하여 독출 요구가 있는 화일의 독출 횟수를 갱신한다. 그리고, 독출 개시 결정 프로그램(54)은 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일이 존재하는지의 여부를 판정하여 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일을 독출 개시 화일이라 결정한다. 독출 개시 화일이 결정되면, 캐시 메모리 관리 테이블(60)의 화일 관리 테이블을 참조하여 독출 개시 화일이 화일 관리 테이블에 등록되어 있는지의 여부를 조사한다.
독출 개시 화일이 화일 관리 테이블에 등록되어 있는 경우, 제어부(50)는 서버 인터페이스 모듈(45)에 캐시 메모리(48)로부터 독출 개시 화일을 독출하도록 지시한다. 서버 인터페이스 모듈(45)은 독출 개시 화일을 캐시 메모리(48)로부터 독출하여 서버(35)에 송신한다.
독출 개시 화일이 화일 관리 테이블에 등록되어 있지 않은 경우, 제어부(50)는 디바이스 인터페이스 모듈(46)에 기억 디바이스(41)로부터 독출 개시 화일을 독출하도록 지시한다. 디바이스 인터페이스 모듈(46)은 독출 개시 화일을 기억 디바이스(41)로부터 독출하여 서버 인터페이스 모듈(45)에 송신하고, 서버 인터페이스 모듈(45)은 디바이스 인터페이스 모듈(46)로부터 수신한 독출 개시 화일을 서버(35)에 송신한다.
여기서, 캐시 제어 프로그램(57)은 가장 나중에 독출 요구가 있는 화일을 우선하여 화일의 캐시 메모리(48)에 격납하고 있으므로, 독출 요구의 빈도가 많은 화일은 캐시 메모리(48)로부터 독출되는 기회가 많아지고, 독출 요구가 이전에 없었던 화일이나 독출 요구가 이전에 행해지고 있어도 그 이후의 독출 요구가 없었던 화일들은 캐시 메모리(48)에 격납되어 있지 않으므로, 기억 디바이스(41)로부터 독출될 기회가 많아진다.
서버(35)는 서버 인터페이스 모듈(45)로부터 수신된 독출 개시 화일의 데이타를 데이타 버퍼(36')에 유지한다. 그리고, 독출 요구 접수 테이블(36)을 참조하여 독출 요구 접수 테이블(36)에 기록되어 있는 클라이언트에 독출 개시 화일의 데이타를 전송한다. 그리고, 각 클라이언트로의 데이타의 전송이 종료하면, 데이타 버퍼(36')의 데이타를 클리어하여 독출 요구 접수 테이블(36)의 독출 요구 화일의 접수의 기록을 클리어한다.
또한, 캐시 제어 프로그램(57)은 연속하여 액세스되는 일련의 데이타를 캐시 메모리(48)에 격납할 때, 그 일련의 데이타의 액세스 상황을 조사한다. 그리고, 연속하여 액세스되는 일련의 데이타로 구성되는 화일의 일부의 블록이 캐시 메모리(48)상에 격납되어 있고, 캐시 메모리(48)상에 격납되어 있는 블록으로부터 전의 블록으로의 액세스가 있었으면, 액세스가 있는 화일의 우선도를 가장 높게 한다.
또, 캐시 메모리(48)상에 격납되어 있는 블록의 삭제를 행하지 않고서, 액세스 요구가 있는 블록의 소정 후의 블록으로부터 캐시 메모리(48)상에 격납되어 있는 블록의 하나전 블록까지를 캐시 메모리(48)에 격납한다.
이와 같이, 액세스 요구가 있는 블록이 캐시 메모리(48)상에 격납되어 있지 않은 경우, 액세스 요구가 있는 블록 이후의 블록을 먼저 읽어서 캐시 메모리(48)상에 격납하여 놓도록 한다. 이것에 의해, 영화나 음악 등의 멀티미디어 데이타에서는 액세스 요구가 있는 블록이 독출되었을 때, 액세스 요구가 있는 블록 이후의 블록도 독출될 가능성이 높기 때문에, 액세스 요구가 있는 블록 이후의 블록에 대해서는 캐시 히트시키는 것이 가능해지며, 데이타의 전송 효율을 향상시킬 수 있다.
도 14는 도 13의 데이타 전송 시스템의 제 1 실시예의 동작을 나타내는 흐름도이다. 또, 도 14의 실시예는 도 11의 실시예에 캐시 메모리(48)에 의한 독출 동작을 추가한 것이다.
도 14에 있어서, 우선, 단계 S61에 나타낸 바와 같이, 초기 설정으로서, 독출 요구 화일수 N을 0으로 한다.
다음에, 단계 S62에 나타낸 바와 같이, 클라이언트로부터의 독출 요구가 있는지 없는지를 판정한다. 그리고, 독출 요구가 있으면, 단계 S63으로 진행하고, 독출 요구가 없으면, 단계 S74로 진행한다.
단계 S63에서는 요구된 화일이 이미 독출 요구된 화일과 동일 화일인지 판정한다. 그리고, 동일 요구 화일이 있으면, 단계 S68로 진행하고, 동일 요구 화일이 없으면, 단계 S64로 진행한다.
단계 S64에서는 단계 S63에서 그때까지 독출 요구가 되지 않았던 화일이라 판정되어 있으므로, 독출 요구 화일수 N을 1만큼 증분한다.
단계 S65, S66에서는 독출 요구 화일의 요구된 화일에 대한 독출 요구 횟수치 Cj에, 초기치 C0를 설정하여 단계 S67로 진행한다. 여기서, 초기치 C0는 독출을 개시할 때까지의 요구 횟수+1을 세트한다.
다음에, 단계 S67에서는 독출 요구가 신규로 행해진 화일의 캐시 메모리(48)로의 판독 지시를 행한다. 이 때, 독출 요구가 신규로 행해진 화일의 캐시 메모리(48)에 유지하는 우선도를 가장 높은 우선도로 한다. 또한, 독출 요구가 신규로 행해진 화일을 격납하는 영역이 캐시 메모리(48)에 없는 경우, 우선도의 가장 낮은 화일을 캐시 메모리(48)로부터 추출하고나서, 독출 요구가 신규로 행해진 화일을 캐시 메모리(48)에 격납한다.
다음에, 단계 S68에서는, 모든 화일에 대응하는 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S71로 진행한다.
단계 S69에서는 단계 S63에서 이미 동일 화일의 요구의 접수가 있다고 판정되었기 때문에, 동일 화일의 독출 요구의 접수가 있는 것으로 하여 단계 S70으로 진행한다.
다음에, 단계 S70에서는 독출 요구의 접수가 행해진 동일 화일의 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S71로 진행한다.
다음에, 단계 S71에서는 독출 요구 횟수치 Ci에 0인 것이 있는지 판정한다. 독출 요구 횟수치 Ci에 0인 것이 있으면, 단계 S72로 진행하고, 독출 요구 횟수치 Ci에 0인 것이 없으면, 단계 S62 이후의 처리를 반복한다.
다음에, 단계 S72에서는 캐시 메모리(48)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다. 이 때, 독출 요구 횟수치 Ci가 0인 화일의 데이타가 캐시 메모리(48)에 유지되어 있지 않은 경우, 기억 디바이스(41)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다.
다음에, 단계 S73에서는 독출 요구 화일수 N을 1만큼 감한다.
단계 S74에서는 단계 S62에서 독출 요구가 없으면, 독출 요구 화일수 N이 0인지 아닌지를 판정한다. 독출 요구 화일수 N0이면, 단계 S68 이후의 처리를 반복한다. 독출 요구 화일수 N이 0이면, 단계 S62 이후의 처리를 반복한다.
도 15는 도 13의 데이타 전송 시스템의 제 2 실시예의 동작을 나타내는 흐름도이다. 또, 도 15의 실시예는 도 12의 실시예에 캐시 메모리(48)에 의한 독출 동작을 추가한 것이다.
도 15에 있어서, 우선, 단계 S81에 나타낸 바와 같이, 초기 설정으로서, 독출 요구 화일수 N을 0으로 한다. 또한, 초기치 C0를 설정하는 동시에, 방식 설정을 행한다. 이 방식으로서는 방식 1∼3까지 있고, 방식 1은 풀-주문형 비디오 방식, 방식 2는 니어-주문형 비디오 방식, 방식 3은 독출 요구 횟수가 소정치에 도달한 화일을 송출하는 방식이다. 또, 방식 설정으로, 방식 1의 풀-주문형 비디오 방식을 선택한 경우, 초기치 C0를 1로 설정하고, 방식 2의 니어-주문형 비디오 방식을 선택한 경우, 초기치 C0를 독출을 행할 때까지의 일정 시간에 대응하는 값에 설정한다. 또한, 방식 3을 선택한 경우, 초기치 C0를 독출을 개시할 때까지의 요구 횟수+1로 세트한다.
다음에, 단계 S82에 나타낸 바와 같이, 클라이언트로부터의 독출 요구가 있는지 없는지를 판정한다. 그리고, 독출 요구가 있으면, 단계 S83으로 진행하고, 독출 요구가 없으면, 단계 S95로 진행한다.
단계 S83에서는 요구된 화일이 이미 독출 요구된 화일과 동일 화일인지 판정한다. 그리고, 동일 요구 화일이 있으면, 단계 S88로 진행하고, 동일 요구 화일이 없으면, 단계 S84로 진행한다.
단계 S84에서는 단계 S83에서 그때까지 독출 요구가 되지 않았던 화일이라 판정되고 있으므로, 독출 요구 화일수 N을 1만큼 증분한다.
단계 S85, S86에서는 독출 요구 화일의 요구된 화일에 대한 독출 요구 횟수치 Cj에, 초기치 C0를 설정하고, 단계 S87로 진행한다.
다음에, 단계 S87에서는 독출 요구가 신규로 행해진 화일의 캐시 메모리(48)로의 판독 지시를 행한다. 이 때, 독출 요구가 신규로 행해진 화일의 캐시 메모리(48)에 유지하는 우선도를 가장 높은 우선도로 한다. 또한, 독출 요구가 신규로 행해진 화일을 격납하는 영역이 캐시 메모리(48)에 없는 경우, 우선도가 가장 낮은 화일을 캐시 메모리(48)로부터 추출하고나서, 독출 요구가 신규로 행해진 화일을 캐시 메모리(48)에 격납한다.
다음에, 단계 S88에서는 모든 화일에 대응하는 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S51로 진행한다.
단계 S89에서는 단계 S83에서 이미 동일 화일의 요구의 접수가 있다고 판정되었기 때문에, 동일 화일의 독출 요구의 접수가 있는 것으로 하여 단계 S90으로 진행한다.
단계 S90에서는 단계 S81의 방식 설정으로 방식 2가 선택되었는지의 여부를 판정하여, 방식 설정으로 방식 2가 선택되었으면, 단계 S88로 진행하며, 방식 설정으로 방식 1 또는 방식 3이 선택되었으면, 단계 S91로 진행한다.
다음에, 단계 S91에서는 독출 요구의 접수가 행해진 동일 화일의 독출 요구 횟수치 Ci를 1만큼 감하여 단계 S92로 진행한다.
다음에, 단계 S92에서는 독출 요구 횟수치 Ci에 0인 것이 있는지 판정한다. 독출 요구 횟수치 Ci에 0인 것이 있으면, 단계 S93으로 진행하고, 독출 요구 횟수치 Ci에 0인 것이 없으면, 단계 S82 이후의 처리를 반복한다.
다음에, 단계 S93에서는 캐시 메모리(48)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다. 이 때, 독출 요구 횟수치 Ci가 0인 화일의 데이타가 캐시 메모리(48)에 유지되어 있지 않은 경우, 기억 디바이스(41)로부터 독출 요구 횟수치 Ci가 0인 화일의 데이타를 독출한다.
다음에, 단계 S94에서는 독출 요구 화일수 N을 1만큼 감한다.
단계 S95에서는 단계 S82에서 독출 요구가 없으면, 독출 요구 화일수 N이 0인지 아닌지를 판정한다. 독출 요구 ,화일수 N0이면, 단계 S88 이후의 처리를 반복한다. 독출 요구 화일수 N이 0이면, 단계 S82 이후의 처리를 반복한다.
도 16은 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법을 나타내 도면이다. 여기서, 도 16(a)는 LRU 법에 의한 화일 관리 방법의 설명도이고, 도 16(b)는 FIFO 법에 의한 블록 관리 방법의 설명도이다.
도 16(a)에 있어서, (71, 71')는 각각 화일 관리 테이블, 도 16(b)에 있어서, (72, 72')는 각각 블록 관리 테이블이다.
화일 관리 테이블(71)에는 화일 i, 화일 j, ···, 화일 k, ···, 화일 l이 격납되고, 화일 i의 우선도가 가장 높으며, 화일 l의 우선도가 가장 낮게 되어 있다. 이 화일 관리 테이블(71)의 상태에 있어서, 화일 k의 독출 요구가 발생하면, 화일 k의 우선도를 가장 높게 하여 화일 관리 테이블(71')을 생성한다.
이와 같이, 화일 관리는 LRU 법에 의해 행하며, 가장 가까운 시간에 독출된 화일의 우선도를 가장 높게 하고, 독출된 가장 오래된 화일을 가장 낮은 우선도로 한다.
캐시 메모리로부터 블록의 추출을 행하는 경우는 이 화일 관리 테이블(71)을 참조하여 가장 사용되지 않는 화일 l의 선두 블록으로부터 추출이 행해진다. 즉, 도 16(b)에 있어서, 화일 l의 블록 관리 테이블(72)에는 블록 p, ···, 블록 d, 블록 c, ···, 블록 b, 블록 n이 격납되고, 블록 p의 우선도가 가장 높고, 블록 n의 우선도가 가장 낮게 되어 있다. 그리고, 블록의 추출을 행하는 경우는 우선도가 가장 낮은 블록 n을 최초로 추출하고, 우선도가 2번째로 낮은 블록 b를 다음에 추출하도록 한다.
이와 같이 함으로써, 사용 빈도가 높은 화일의 일부의 블록이 추출될 가능성이 낮아지고, 히트 전송의 가능성이 향상된다.
또한, 캐시 메모리로부터의 블록의 추출은 FIFO 법 혹은 LRU 법으로 행하지만, 화일의 후반 부분만이 캐시 메모리상에 있는 경우에, 그 화일의 전반 부분으로의 독출 요구가 있었으면, 독출 요구가 있는 블록으로부터 화일의 후반 부분보다 전의 블록을 캐시 메모리상에 우선적으로 격납 처리를 행하여 히트 전송의 가능성을 증가시키도록 한다.
FIFO 법으로 블록을 관리하는 경우에는 뒤에서부터 독출 요구가 있는 화일의 입력(기록)이 우선도가 가장 높은 곳으로 움직여진다. LRU 법으로 블록을 관리하는 경우에는 독출 요구가 있는 블록의 입력이 우선도가 가장 높은 곳으로 움직여진다.
다음에, 도 16(b)을 참조하면서 FIFO 법에 의한 블록 관리 방법에 대해서 설명한다.
여기서는 블록의 캐시 메모리로부터의 추출과, 독출 요구가 있는 N개의 블록의 캐시 메모리로의 격납 처리의 순서에 대해서 설명한다.
우선, N개의 블록의 독출 요구에 의해, 도 16(a)의 화일 관리 테이블(71)을 참조하여 캐시 메모리상의 우선도가 낮은 화일의 입력을 찾아낸다.
다음에, 화일 관리 테이블(71)을 참조하여 수득된 우선도가 가장 낮은 화일 l의 블록 단위의 관리를 행하기 위한 블록 관리 테이블(72)을 참조하여 우선도가 낮은 N개의 블록을 선택한다. 도 16(b)의 예에서는 블록 c, ···, 블록 b, 블록 n이 선택된다. 그리고, 선택된 블록 c, 블록 b, 블록 n을 블록 n에서부터 순서대로 캐시 메모리로부터 추출한다.
다음에, 추출이 행해진 N개의 블록이 기억되어 있던 캐시 메모리내로, 독출 요구가 있는 N개의 블록의 내용을 기억한다. 도 16(b)의 예에서는 블록 e, ···, 블록 g가 캐시 메모리내로 기억된다. 이 때, 화일 l의 블록 관리 테이블(72)은 블록 e, ···, 블록 g의 우선도를 높게 하며, 블록 p, ···, 블록 d의 우선도를 낮게 한 블록 관리 테이블(72')에 갱신된다.
도 17은 본 발명의 일실시예에 따른 캐시 메모리의 블록 관리 방법을 나타내는 도면이다. 도 17의 실시예는 이제부터 사용하고자 하는 화일의 블록이 캐시 메모리로부터 불필요하게 추출되는 것을 막는 것이다.
도 17에 있어서, (71, 71')는 화일 관리 테이블, (72)는 화일 k의 블록 관리 테이블이다.
우선, 어떤 화일의 캐시 메모리로부터의 추출을 행하는 경우에, 그 화일로의 액세스 상황을 조사한다.
다음에, 추출을 행하려고 하고 있는 블록보다 전 블록으로 액세스가 있으면, 그 화일의 블록의 추출을 중지한다. 예컨대, 도 17(a)에 있어서, 화일 k의 도중에서 화일 k의 종단까지가 캐시 메모리에 격납되어 있고, 화일 k의 도중에서 화일 k의 종단까지의 블록이 캐시 메모리로부터의 추출의 대상이 되었다고 한다. 이 때, 화일 k의 선두의 블록 A에 액세스 요구가 있었으면, 화일 k의 도중에서 화일 k의 종단까지의 블록의 캐시 메모리로부터의 추출을 중지한다.
다음에, 블록의 추출이 중지된 경우, 화일 단위의 관리를 행하는 화일 관리 테이블의 가장 우선 순위가 높은 곳으로 그 화일의 입력을 움직인다. 예컨대, 도 17(b)에 있어서, 화일 관리 테이블 T1에는 화일 i, 화일 j, ···, 화일 k가 격납되며, 화일 i의 우선도가 가장 높고, 화일 k의 우선도가 가장 낮게 되어 있다. 그리고, 화일 k의 블록의 캐시 메모리로부터의 추출이 중지된 경우, 도 17(c)에 도시된 바와 같이, 화일 관리 테이블(71)의 화일 k의 우선도를 가장 높게 하여, 화일 관리 테이블(71)을 화일 관리 테이블(71')에 갱신한다.
또, 추출을 행하는 블록보다 전의 블록으로 액세스 요구가 없으면, 그 블록의 추출을 실행한다. 예컨대, 도 17(a)에 있어서, 화일 k의 도중에서 화일 k의 종단까지가 캐시 메모리에 격납되어 있고, 화일 k의 도중에서 화일 k의 종단까지의 블록이 캐시 메모리로부터의 추출의 대상이 되었다고 한다. 이 때, 화일 k의 선두의 블록 A에 액세스 요구가 없었다면, 화일 k의 도중에서 화일 k의 종단까지의 블록을 캐시 메모리로부터 추출한다.
도 18, 19는 본 발명의 일실시예에 따른 캐시 메모리의 제어 방법을 나타내는 흐름도이다.
도 18에 있어서, 우선, 단계 S101에 나타낸 바와 같이, 화일의 독출 요구가 있는 경우, 독출 요구가 있는 화일의 화일 관리 테이블에 있어서의 우선도를 가장 높게 한다.
다음에, 단계 S102에 나타낸 바와 같이, 독출 대상이 된 화일의 데이타 전체가 캐시 메모리내에 격납되어 있는지의 여부를 판정한다. 그리고, YES라고 판정된 경우, 처리를 종료하고, NO라고 판정된 경우, 단계 S103으로 진행한다.
다음에, 단계 S103에 나타낸 바와 같이, 독출 대상이 된 화일의 데이타의 후반 부분만이 캐시 메모리내에 격납되어 있는지의 여부를 판정한다. 그리고, YES라고 판정된 경우, 단계 Sl04로 진행하고, 독출 대상이 된 화일의 전반 부분의 블록수를 격납 대상 블록수 M으로 한다.
한편, 단계 S103에서 NO라고 판정된 경우, 단계 S105로 진행하며, 독출 대상이 된 화일의 블록수를 격납 대상 블록수 M으로 한다.
다음에, 단계 S106에 나타낸 바와 같이, 캐시 메모리의 빈 블록수 N을 설정한다.
다음에, 단계 S107에 나타낸 바와 같이, 캐시 메모리의 빈 블록수 N과 격납 대상 블록수 M을 비교하여 캐시 메모리의 빈 블록수 N이 격납 대상 블록수 M 이상인 경우, 단계 S108로 진행하고, 캐시 메모리의 빈 블록수 N에서 격납 대상 블록수 M을 뺀 값을 캐시 메모리의 빈 블록수 N으로 하여, 도 19의 단계 S113으로 진행한다.
한편, 단계 S107에서 캐시 메모리의 빈 블록수 N이 격납 대상 블록수 M보다 작다고 판정된 경우, 단계 S109로 진행하고, 격납 대상 블록수 M에서 캐시 메모리의 빈 블록수 N을 뺀 값을 추출하여 대상 블록수 K로 하여, 단계 S110으로 진행한다.
다음에, 단계 S110에 나타낸 바와 같이, 캐시 메모리의 빈 블록수 N을 0으로 설정한다.
다음에, 단계 S111에 나타낸 바와 같이, 화일 관리 테이블을 참조하여 우선도가 가장 낮은 화일을 결정한다.
다음에, 단계 S112에 나타낸 바와 같이, 우선도가 가장 낮은 화일중에서, 우선도가 낮은 순으로 K개의 블록을 선택하여 선택된 K개의 블록을 캐시 메모리로부터 추출함으로써, 캐시 메모리의 빈 블록으로 한다.
다음에, 도 19의 단계 S113에 나타낸 바와 같이, 캐시 메모리내의 빈 블록에 M개의 블록을 격납한다.
다음에, 단계 S114에 나타낸 바와 같이, N을 캐시 메모리의 빈 블록수로 한다.
도 20(a)은 본 발명의 제 1 실시예에 따른 캐시 메모리의 블록 격납 방법을 나타내는 도면이다. 도 20(a)의 실시예는 연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일부의 블록 데이타가 캐시 메모리상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있을 때, 액세스 요구가 있는 블록의 다음 블록으로부터 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 격납하는 경우의 동작의 순서의 설명도이다.
우선, 독출되는 화일의 후반 부분만이 캐시 메모리상에 있는 경우에, 그 화일의 전반 부분으로의 독출 요구가 행해진다. 예컨대, 도 20(a)에 있어서, 화일 k의 데이타에는 캐시 메모리에 격납되어 있는 부분 C와 캐시 메모리에 격납되어 있지 않은 부분 F가 있으며, 캐시 메모리에 격납되어 있지 않은 부분 F는 화일 k의 전반 부분에 대응하고, 캐시 메모리에 격납되어 있는 부분 C는 화일 k의 후반 부분에 대응하고 있다.
그리고, 화일 k의 선두의 블록 A에 액세스 요구가 있었다고 한다. 이 때, 화일 k의 블록 A의 독출 요구가 있음으로써, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 독출 요구가 가능성이 높기 때문에, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 추출은 행하지 않는다.
다음에, 독출 요구가 있는 블록으로부터 후반 부분보다 전의 블록을 캐시 메모리상에 우선적으로 격납한다. 예컨대, 도 20(a)에 있어서, 영화나 음악 등의 멀티미디어 데이타인 경우, 화일 k의 블록 A의 독출 요구가 있을 때에는 화일 k의 블록 A의 다음 블록 B에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지의 독출 요구의 가능성은 높아지고 있다. 그래서, 화일 k의 블록 B에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지를 순서대로 먼저 읽고 캐시 메모리에 격납한다.
도 20(b)는 본 발명의 제 2 실시예에 따른 캐시 메모리의 블록 격납 방법을 나타내는 도면이다. 도 20(b)의 실시예는 연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일부의 블록의 데이타가 캐시 메모리상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있을 때, 액세스 요구가 있는 블록의 소정후의 블록으로부터 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 격납하는 경우의 동작의 순서의 설명도이다.
우선, 독출되는 화일의 후반 부분만이 캐시 메모리상에 있는 경우에, 그 화일의 전반 부분으로의 독출 요구가 행해진다. 예컨대, 도 20(b)에 있어서, 화일 k의 데이타에는 캐시 메모리에 격납되어 있는 부분 C와 캐시 메모리에 격납되어 있지 않은 부분 F가 있으며, 캐시 메모리에 격납되어 있지 않은 부분 F는 화일 k의 전반 부분에 대응하고, 캐시 메모리에 격납되어 있는 부분 C는 화일 k의 후반 부분에 대응하고 있다.
그리고, 화일 k의 블록 A에 액세스 요구가 있었다고 한다. 이 때, 화일 k의 블록 A의 독출 요구가 있어, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 독출 요구의 가능성이 높기 때문에, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 추출은 행하지 않는다.
다음에, 독출 요구가 있는 블록으로부터 후반 부분보다 전의 블록을 캐시 메모리상에 우선적으로 격납한다. 예컨대, 도 20(b)에 있어서, 영화나 음악 등의 멀티미디어 데이타의 경우, 화일 k의 블록 A의 독출 요구가 있을 때에는 화일 k의 블록 A의 다음 블록 B에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지의 독출 요구의 가능성은 높아지고 있다. 여기서, 화일 k의 블록 A의 잠시 후의 블록까지는 즉시 독출되어 송출된다. 그래서, 화일 k의 블록 A의 약간 앞선 블록 D에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지를 순서대로 먼저 읽고 캐시 메모리에 격납한다.
도 20(c)은 본 발명의 제 3 실시예에 따른 캐시 메모리의 블록 격납 방법을 나타내는 도면이다. 도 20(c)의 실시예는 연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일부의 블록의 데이타가 캐시 메모리상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있을 때, 이미 격납되어 있는 블록의 하나전 블록으로부터 독출 요구를 한 블록을 향해 역순으로 격납하도록 한 경우의 동작 순서의 설명도이다.
우선, 독출되는 화일의 후반 부분만이 캐시 메모리상에 있는 경우에, 그 화일의 전반 부분으로의 독출 요구가 행해진다. 예컨대, 도 20(C)에 있어서, 화일 k의 데이타에는 캐시 메모리에 격납되어 있는 부분 C와 캐시 메모리에 격납되어 있지 않은 부분 F가 있고, 캐시 메모리에 격납되어 있지 않은 부분 F는 화일 k의 전반 부분에 대응하며, 캐시 메모리에 격납되어 있는 부분 C는 화일 k의 후반 부분에 대응하고 있다.
그리고, 화일 k의 블록 A에 액세스 요구가 있었다고 한다. 이 때, 화일 k의 블록 A의 독출 요구가 있음으로써, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 독출 요구의 가능성이 높기 때문에, 화일 k의 캐시 메모리에 격납되어 있는 부분 C의 추출은 행하지 않는다.
다음에, 독출 요구가 있는 블록으로부터 후반 부분보다 전의 블록을 캐시 메모리상에 우선적으로 격납한다. 예컨대, 도 20(c)에 있어서, 영화나 음악 등의 멀티미디어 데이타의 경우, 화일 k의 블록 A의 독출 요구가 있을 때에는 화일 k의 블록 A의 다음 블록 B에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지의 독출 요구의 가능성은 높아지고 있다. 그래서, 화일 k의 블록 B에서 캐시 메모리에 격납되어 있는 부분 C 직전의 블록까지를 캐시 메모리에 격납한다. 이 때, 화일 k의 블록 B에서부터 순서대로 송출되므로, 먼저 읽은 블록을 캐시 메모리에 격납되어 있는 부분 C 직전의 블록 E에서부터 역순으로 화일 k의 선두의 블록 A를 향해 먼저 읽어서 캐시 메모리에 격납한다.
도 21은 본 발명의 제 3 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도이다. 도 21의 구성은 클라이언트 인터페이스 모듈(49)을 도 7의 구성에 추가하여 기억 장치(31)로부터 독출된 데이타를 기억 장치(31)로부터 클라이언트에 직접 전송할 수 있도록 한 것이다.
도 21에 있어서, (35)는 서버, (36)은 독출 요구 접수 테이블, (36', 45', 46')는 데이타 버퍼, (37)은 기억 장치, (41)은 기억 디바이스, (45)는 서버 인터페이스 모듈, (46)은 디바이스 인터페이스 모듈, (47)은 제어 장치, (49)는 클라이언트 인터페이스 모듈, (50)은 제어부(MPU), (51)은 제어 기억부, (80)은 전송지 클라이언트 통지부, (81)은 데이타 출력부, (82)는 전송지 클라이언트 판정부, (83)은 데이타 입력부이다.
서버(35)는 클라이언트로부터의 화일의 독출 요구에 기초하여, 독출 요구가 있는 화일과, 독출 요구를 행한 클라이언트를 대응시켜서 독출 요구 접수 테이블(36)에 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일의 독출 요구를 접수한다.
제어 장치(47)는 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일이 존재하는지의 여부를 판정하여, 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일을 독출 개시 화일이라 결정한다. 독출 개시 화일이 결정되면, 제어부(50)는 디바이스 인터페이스 모듈(46)에 기억 디바이스(41)로부터 독출 개시 화일을 독출하도록 지시한다. 디바이스 인터페이스 모듈(46)은 독출 개시 화일을 기억 디바이스(41)로부터 독출하여 클라이언트 인터페이스 모듈(49)의 데이타 입력부(83)에 송신한다.
또한, 제어부(50)는 서버 인터페이스 모듈(45)의 전송지 클라이언트 통지부(80)가 독출 요구 접수 테이블(36)의 내용을 클라이언트 인터페이스 모듈(49)에 통지하도록 지시한다.
전송지 클라이언트 통지부(80)로부터 독출 요구 접수 테이블(36)의 내용을 수신된 클라이언트 인터페이스 모듈(49)은 독출 개시 화일의 전송지 클라이언트를 전송지 클라이언트 판정부(82)에서 판정한다. 그리고, 독출 개시 화일을 요구한 클라이언트에 데이타 출력부(81)를 통해 독출 개시 화일을 송신한다.
이와 같이, 도 21의 실시예에 따르면, 기억 디바이스(41)로부터 독출한 데이타를 클라이언트 인터페이스 모듈(49)을 통해 각 클라이언트에 직접 전송 가능하게 함으로써, 서버(35)의 부하를 경감할 수 있게 되는 동시에, 기억 디바이스(41)로부터 독출한 데이타를 각 클라이언트로 전송하는 시간의 전송 시간을 단축할 수 있다.
도 22는 본 발명의 제 4 실시예에 따른 데이타 전송 시스템의 구성을 나타내는 블록도이다. 도 22의 구성은 도 21의 구성에 캐시 메모리(48)를 설치한 것이다. 여기서, 캐시 메모리(48)를 설치하여 데이타 전송을 행하는 경우, 기억 디바이스(41)의 물리적 또는 논리적인 블록을 캐시 메모리(48)상의 교체 단위로 할 수있다. 새로운 데이타를 캐시 메모리(48)에 격납하는 경우, 캐시 메모리(48)상에 공간이 있으면 그곳에 기억시킨다. 캐시 메모리(48)상에 공간이 없으면 적당한 블록을 추출하여 공간을 만들어 새로운 블록을 격납한다.
여기서, 연속적인 데이타(화일)를 구성하는 블록의 캐시 메모리(48)상의 관리를 단순히 블록 단위로 행하면, 화일의 선두 블록으로부터 추출(삭제)이 행해진다. 그 때문에, 화일의 독출 요구가 시작된 후에 블록의 추출을 행하면, 독출 요구를 한 화일의 블록이 추출될 때가 있다. 그와 같은 경우에는 히트 전송은 행할 수 없게 되어 데이타 공급 능력이 저하한다. 이것을 막기 위해, 도 22의 실시예에서는 캐시 관리 테이블(85)을 구비하도록 하며, 캐시 메모리(48)상의 영역 관리를 화일 단위와 블록 단위로 병용하여 행하도록 하고 있다.
그리고, 연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일련의 데이타의 액세스 상황을 조사하여 그 일부의 블록의 데이타가 캐시 메모리(48)상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있었으면 그 화일의 우선도를 가장 높게 한다.
그리고, 액세스가 있는 화일의 블록을 삭제하지 않고서, 액세스가 있는 화일의 다음 블록 혹은 조금 후의 블록으로부터, 캐시 메모리(48)상에 격납되어 있는 블록의 하나전 블록까지를 격납하도록 하고 있다. 또는 이미 격납되어 있는 블록의 하나전 블록으로부터 독출 요구를 한 블록을 향해 역순으로 격납하도록 하고 있다.
도 22에 있어서, (35)는 서버, (36)은 독출 요구 접수 테이블, (36', 45', 46')는 데이타 버퍼, (37)은 기억 장치, (41)는 기억 디바이스, (45)는 서버 인터페이스 모듈, (46)은 디바이스 인터페이스 모듈, (48)은 캐시 메모리, (49)는 클라이언트 인터페이스 모듈, (50)은 제어부(MPU), (51)은 제어 기억부 , (80)은 전송지 클라이언트 통지부, (81)은 데이타 출력부, (82)는 전송지 클라이언트 판정부, (83)은 데이타 입력부, (84)는 캐시 제어 프로그램, (85)는 캐시 관리 테이블이다.
서버(35)는 클라이언트로부터의 화일의 독출 요구에 기초하여, 독출 요구가 있는 화일과, 독출 요구를 한 클라이언트를 대응시켜서 독출 요구 접수 테이블(36)에 기록한다. 그리고, 서버(35)로부터 기억 장치(37)의 서버 인터페이스 모듈(45)에 화일의 독출 요구가 전송된다. 서버 인터페이스 모듈(45)은 화일의 독출 요구를 접수한다.
제어 장치(47)는 제어부(50)에 의해 독출 요구가 있는 것을 판정하여 캐시 제어 프로그램(84)을 기동하고, 캐시 관리 테이블(85)에서 관리되는 파일중, 클라이언트로부터 요구된 화일의 캐시 메모리(48)에 유지하는 우선도를 가장 높은 우선도로 한다. 또한, 캐시 관리 테이블(85)에서 관리되는 화일마다의 블록중, 가장 나중에 독출 요구가 있는 블록일수록 우선도가 높고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 한다.
또, 새롭게 데이타를 기록하는 블록의 영역이 캐시 메모리(48)에 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하여 삭제한다고 결정된 화일의 블록의 우선도가 낮은 순으로 블록의 삭제를 행한다.
또한, 제어 장치(47)는 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일이 존재하는지의 여부를 판정하여 독출 횟수가 소정치가 된 화일 또는 독출 요구로부터 일정 시간이 경과한 화일을 독출 개시 화일이라 결정한다. 독출 개시 화일이 결정되면, 캐시 관리 테이블(85)을 참조하여 독출 개시 화일이 캐시 관리 테이블(85)에 등록되어 있는지의 여부를 조사한다.
독출 개시 화일이 캐시 관리 테이블(85)에 등록되어 있는 경우, 제어부(50)는 클라이언트 인터페이스 모듈(49)에 캐시 메모리(48)로부터 독출 개시 화일을 독출하도록 지시한다. 클라이언트 인터페이스 모듈(49)은 독출 개시 화일을 캐시 메모리(48)로부터 독출하여 데이타 입력부(83)에 입력한다.
또한, 제어부(50)는 서버 인터페이스 모듈(45)의 전송지 클라이언트 통지부(80)가 독출 요구 접수 테이블(36)의 내용을 클라이언트 인터페이스 모듈(49)에 통지하도록 지시한다.
전송지 클라이언트 통지부(80)로부터 독출 요구 접수 테이블(36)의 내용을 수신된 클라이언트 인터페이스 모듈(49)은 독출 개시 화일의 전송지 클라이언트를 전송지 클라이언트 판정부(82)에서 판정한다. 그리고, 독출 개시 화일을 요구한 클라이언트에 데이타 출력부(81)를 통해 독출 개시 화일을 송신한다.
독출 개시 화일이 캐시 관리 테이블(85)에 등록되어 있지 않은 경우, 제어부(50)는 디바이스 인터페이스 모듈(46)에 기억 디바이스(41)로부터 독출 개시 화일을 독출하도록 지시한다. 디바이스 인터페이스 모듈(46)은 독출 개시 화일을 기억 디바이스(41)로부터 독출하여 클라이언트 인터페이스 모듈(49)의 데이타 입력부(83)에 송신한다.
또한, 제어부(50)는 서버 인터페이스 모듈(45)의 전송지 클라이언트 통지부(80)가 독출 요구 접수 테이블(36)의 내용을 클라이언트 인터페이스 모듈(49)에 통지하도록 지시한다.
전송지 클라이언트 통지부(80)로부터 독출 요구 접수 테이블(36)의 내용을 수신된 클라이언트 인터페이스 모듈(49)은 독출 개시 화일의 전송지 클라이언트를 전송지 클라이언트 판정부(82)에서 판정한다. 그리고, 독출 개시 화일을 요구한 클라이언트에 데이타 출력부(81)를 통해 독출 개시 화일을 송신한다.
또한, 제어부(50)는 캐시 제어 프로그램(85)을 기동함으로써, 연속하여 액세스되는 일련의 데이타를 캐시 메모리(48)에 격납할 때, 그 일련의 데이타의 액세스 상황을 조사한다.
그리고, 연속하여 액세스되는 일련의 데이타로 구성되는 화일의 일부의 블록이 캐시 메모리(48)상에 격납되어 있고, 캐시 메모리(48)상에 격납되어 있는 블록보다 전의 블록으로의 액세스가 있었으면, 액세스가 있는 화일의 우선도를 가장 높게 한다. 또, 캐시 메모리(48)상에 격납되어 있는 블록의 삭제를 행하지 않고서, 액세스 요구가 있는 블록의 소정후의 블록으로부터 캐시 메모리(48)상에 격납되어 있는 블록의 하나전 블록까지를 캐시 메모리(48)에 격납한다.
이와 같이, 도 22의 실시예에 따르면, 캐시 메모리(48)로부터 독출한 데이타를 클라이언트 인터페이스 모듈(49)을 통해 각 클라이언트에 직접 전송가능하게 함으로써, 서버(35), 기억 디바이스(41), 서버 인터페이스 모듈(45) 및 디바이스 인터페이스 모듈(46)의 부하를 경감할 수 있게 되는 동시에, 캐시 메모리(48)로부터 독출한 데이타를 각 클라이언트에 전송할 때의 전송 시간을 단축할 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 대량의 연속 데이타를 기억하는 기억 장치에 있어서, 거의 동시기에 동일 화일에 대하여 데이타의 독출 요구가 발생하여도 일회의 독출로 각 요구원으로 데이타를 전송할 수 있으므로, 기억 장치로부터의 독출의 능률을 대폭 향상시킬 수 있다.
또한, 본 발명의 한 양상에 따르면, 대량의 연속 데이타를 독출할 때, 캐시 메모리의 제어를 대량의 연속 데이타를 처리하는 경우의 특징적 경향을 고려하여 제어를 행하도록 하였으므로, 캐시 메모리를 설치한 것에 의한 데이타의 전송 능력의 향상을 대폭으로 향상시킬 수 있다.

Claims (18)

  1. 화일 단위로 연속 데이타를 유지하는 기억부와, 상기 기억부에 유지되는 연속 데이타의 입출력을 제어하는 기억 제어부를 구비한 기억 장치에 있어서, 상기 기억 제어부는,
    상기 기억부의 연속 데이타의 독출 제어를 하는 독출 제어부와,
    상기 기억부에 유지되어 있는 동일 화일의 연속 데이타에 대한 독출 요구를 판정하는 독출 요구 판정부와,
    상기 독출 요구가 있을 때마다 화일의 독출 요구 횟수를 카운트하는 독출 요구 횟수 카운트부와,
    임의의 화일에 대한 독출 요구의 횟수의 카운트치가 소정의 일정치에 도달했을 때, 상기 독출 제어부에 대하여 해당하는 화일의 연속 데이타의 독출을 지시하는 독출 개시 결정부를 구비하는 것을 특징으로 하는 기억 장치.
  2. 제 1 항에 있어서, 상기 독출 요구 횟수 카운트부는 독출 요구가 있을 때마다 화일의 독출 요구 횟수를 카운트하는 동시에, 일정 시간 경과마다 각 화일의 해당 카운트치를 갱신하고,
    상기 독출 개시 결정부는 임의의 화일에 대한 독출 요구의 횟수가 소정의 일정 횟수에 도달했을 때 혹은 최초의 독출 요구로부터 소정의 일정 시간 경과후에, 해당 화일의 연속 데이타의 독출을 지시하는 것을 특징으로 하는 기억 장치.
  3. 화일 단위로 연속 데이타를 유지하는 기억부와, 상기 기억부에 유지되는 연속 데이타의 입출력을 제어하는 기억 제어부를 구비한 기억 장치의 데이타 독출 제어 방법에 있어서,
    상기 기억부의 연속 데이타의 독출 제어를 상기 기억 제어부에 의해 행하는 단계와,
    상기 기억부에 유지되어 있는 동일 화일의 데이타에 대한 독출 요구를 판정하는 단계와,
    상기 독출 요구가 있을 때마다 화일의 독출 요구 횟수를 카운트하는 단계와,
    일정 시간 경과마다 각 화일의 해당 카운트치를 갱신하는 단계와,
    임의의 화일에 대한 독출 요구 횟수의 카운트치가 소정의 일정치에 도달했을 때, 해당하는 화일의 독출을 지시하는 단계와,
    임의의 화일에 대한 독출 요구의 횟수가 미리 정한 일정 횟수에 도달했을 때 혹은 최초의 독출 요구로부터 일정 시간 경과후에 해당 화일의 독출을 행하는 단계를 구비하는 것을 특징으로 하는 기억 장치 제어 방법.
  4. 제 3 항에 있어서, 상기 기억 제어부는 캐시 메모리와 캐시 관리 테이블을 구비하고, 상기 캐시 관리 테이블은 상기 캐시 메모리에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과 화일마다 블록의 격납의 우선도를 관리하는 블록 관리 테이블에 의해 구성하며,
    상기 화일 관리 테이블에서, 요구된 화일의 우선도를 가장 높은 우선도로 하는 단계와,
    상기 블록 관리 테이블에서, 가장 나중에 독출 요구가 있던 블록일수록 우선도를 높게 하고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 하는 단계와,
    새롭게 데이타를 기록하는 블록의 기억 영역이 상기 캐시 메모리에 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하고, 이어서 그 화일의 블록의 우선도가 낮은 순으로 블록을 삭제하는 단계와,
    연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일련의 데이타의 액세스 상황을 조사하여 그 일부의 블록의 데이타가 상기 캐시 메모리상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있었으면 그 화일의 우선도를 가장 높게 하고, 그 블록의 삭제를 행하지 않고 액세스 요구가 있던 블록의 소정후의 블록으로부터 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 격납하는 단계를 구비하는 것을 특징으로 하는 기억 장치 제어 방법.
  5. 제 4 항에 있어서, 일련의 데이타를 상기 캐시 메모리에 격납할 때, 액세스 요구가 있던 블록의 다음 블록 혹은 소정후의 블록으로부터, 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 일련의 데이타의 순서에 따라서 격납하는 것을 특징으로 하는 기억 장치 제어 방법.
  6. 제 4 항에 있어서, 액세스 요구가 있는 일련의 데이타의 상기 캐시 메모리상에 격납되어 있지 않은 부분을 상기 캐시 메모리상으로 격납할 때, 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록으로부터 일련의 데이타의 순서와 역순으로 격납하는 것을 특징으로 하는 기억 장치 제어 방법.
  7. 화일 단위로 연속 데이타를 유지하는 기억부와 상기 기억부에 유지되는 연속 데이타의 입출력을 제어하는 기억 제어부를 구비한 기억 장치에 있어서의 화일 데이타의 기억 제어 장치에 있어서,
    캐시 메모리의 기억 영역을 관리하는 캐시 관리 테이블을 구비하며,
    상기 캐시 관리 테이블은 상기 기억 장치로부터 상기 캐시 메모리에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과,
    상기 화일 관리 테이블로 관리되어 있는 화일마다 블록의 격납 우선도를 관리하는 블록 관리 테이블을 구비하는 것을 특징으로 하는 기억 제어 장치.
  8. 화일 단위로 연속 데이타를 유지하는 기억부와, 상기 기억부에 유지되는 연속 데이타의 입출력을 제어하는 기억 제어부를 구비한 기억 장치에 있어서의 화일 데이타의 독출 제어 방법에 있어서,
    상기 기억 제어부는 캐시 메모리와 캐시 관리 테이블을 구비하고,
    상기 캐시 관리 테이블은 상기 캐시 메모리에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과, 화일마다 블록의 격납 우선도를 관리하는 블록 관리 테이블을 구비하며,
    상기 기억 제어부는, 상기 화일 관리 테이블에서, 요구된 화일이 상기 캐시 메모리에 유지되는 우선도를 가장 높은 우선도로 하는 단계와,
    상기 블록 관리 테이블에서, 가장 나중에 독출 요구가 있던 블록일수록 우선도를 높게 하고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 하는 단계와,
    새롭게 데이타를 기록하는 블록의 기억 영역이 상기 캐시 메모리에 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하고, 이어서 그 화일의 블록 우선도가 낮은 순으로 블록을 삭제하는 단계와,
    연속하여 액세스되는 일련의 데이타를 격납할 때에, 그 일련의 데이타의 액세스 상황을 조사하고, 그 일부의 블록 데이타가 상기 캐시 메모리상에 격납되어 있고, 그 부분으로부터 전반 부분으로의 액세스가 있었다면 그 화일의 우선도를 가장 높게 하고, 그 블록의 삭제를 행하지 않고 액세스 요구가 있던 블록의 소정후의 블록으로부터 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 격납하는 단계를 구비하는 것을 특징으로 하는 기억 장치 제어 방법.
  9. 제 8 항에 있어서, 일련의 데이타를 캐시 메모리에 격납할 때, 액세스 요구가 있던 블록의 다음 블록 혹은 소정후의 블록으로부터, 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 일련의 데이타의 순서에 따라서 격납하는 것을 특징으로 하는 기억 장치 제어 방법.
  10. 제 8 항에 있어서, 액세스 요구가 있던 일련의 데이타의 상기 캐시 메모리상에 격납되어 있지 않은 부분을 상기 캐시 메모리상으로 격납할 때, 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록으로부터 일련의 데이타의 순서와 역순으로 격납하는 것을 특징으로 하는 기억 장치 제어 방법.
  11. 요구원의 독출 요구에 따라서 기억 장치에 독출 요구하고, 요구한 데이타를 수신하여 상기 요구원에 전송하는 서버와, 상기 서버에 접속된 기억 장치를 구비한 데이타 전송 시스템에 있어서,
    상기 서버는 독출 요구된 화일과 상기 요구원을 대응시키는 독출 요구 접수 테이블을 구비하고,
    상기 기억 장치는 화일 단위로 연속 데이타를 유지하는 기억부와, 상기 기억부에 유지되는 연속 데이타의 입출력 제어를 행하는 기억 제어부를 구비하는데, 상기 기억 제어부는,
    상기 기억부의 데이타의 독출 제어를 하는 독출 제어부와,
    상기 기억부에 유지되어 있는 동일 화일의 연속 데이타에 대한 독출 요구를 판정하는 독출 요구 판정부와,
    상기 독출 요구가 있을 때마다 화일의 독출 요구 횟수를 카운트하며, 또는 일정 시간 경과마다 각 화일의 해당 카운트치를 갱신하는 독출 요구 횟수 카운트부와,
    임의의 화일에 대한 독출 요구의 횟수의 카운트치가 소정의 일정치에 도달했을 때, 상기 독출 제어부에 대하여 해당하는 화일의 연속 데이타의 독출을 지시하는 독출 개시 결정부를 구비하며,
    상기 서버는 상기 독출 지시에 의한 상기 기억 장치로부터의 일회의 연속 데이타의 독출에 의해, 상기 연속 데이타를 복수의 요구원으로 전송하는 것을 특징으로 하는 데이타 전송 시스템.
  12. 제 11 항에 있어서, 상기 기억 제어부는 캐시 메모리와 캐시 관리 테이블을 구비하고, 상기 캐시 관리 테이블은 상기 캐시 메모리에 격납하는 화일의 우선도를 관리하는 화일 관리 테이블과, 화일마다 블록의 격납의 우선도를 관리하는 블록 관리 테이블로 구성되고,
    상기 화일 관리 테이블에서는 요구된 화일의 우선도를 가장 높은 우선도로 하여,
    상기 블록 관리 테이블에서는 가장후에 독출 요구가 있는 블록에 대하여 우선도를 높게 하고, 독출 요구가 오래된 순으로 우선도의 순위를 낮게 하여, 새롭게 데이타를 기록하는 블록의 기억 영역이 상기 캐시 메모리에 없을 때에는 화일의 우선도가 낮은 순으로 블록을 삭제하는 화일을 결정하고, 이어서 그 화일의 블록의 우선도가 낮은 순으로 블록을 삭제하는 것으로서,
    연속하여 액세스되는 일련의 데이타를 격납할 때, 그 일련의 데이타의 액세스 상황을 조사하여, 그 일부의 블록의 데이타가 상기 캐시 메모리상에 격납되어 있고 그 부분에서 전반 부분으로의 액세스가 있었으면 그 화일의 우선도를 가장 높게 하여, 그 블록을 삭제하지 않고서 액세스 요구가 있는 블록의 소정후의 블록으로부터 상기 캐시 메모리상에 격납되어 있는 블록의 하나전 블록까지를 격납하는 것을 특징으로 하는 데이타 전송 시스템.
  13. 제 11 항 또는 제 12 항에 있어서, 상기 기억 장치는 상기 독출 요구 접수 테이블의 내용을 상기 서버로부터 독출하는 요구원 정보 독출부와,
    상기 독출 요구 접수 테이블의 내용에 기초하여, 상기 화일의 연속 데이타를 요구원에 전송하는 데이타 전송부를 추가로 구비하는 것을 특징으로 하는 데이타 전송 시스템.
  14. 요구원으로부터의 화일 독출 요구 횟수를 각 화일마다 계수하는 독출 요구 횟수 계수 수단과,
    상기 독출 요구 횟수가 소정치에 도달한 화일이 있는지의 여부를 판정하는 독출 요구 횟수 판정 수단과,
    상기 독출 요구의 횟수가 소정치에 도달한 화일의 상기 요구원으로의 송출을 지시하는 화일 송출 지시 수단을 구비하는 것을 특징으로 하는 데이타 분배 장치.
  15. 제 14 항에 있어서, 상기 독출 요구 횟수 판정 수단은 독출 요구 빈도가 큰 화일에 관해서는 상기 소정치를 큰 값으로 설정하고, 독출 요구 빈도가 작은 화일에 관해서는 상기 소정치를 작은 값으로 설정하는 것을 특징으로 하는 데이타 분배 장치.
  16. 제 14 항에 있어서, 상기 화일을 격납하고 있는 제 1 기억 수단과,
    상기 제 1 기억 수단보다도 독출 속도의 큰 제 2 의 기억 수단과,
    독출 요구 빈도가 큰 화일을 우선하여 상기 제 2 의 기억 수단에 격납하는 기억 제어 수단을 추가로 구비하는 것을 특징으로 하는 데이타 분배 장치.
  17. 제 15 항 또는 제 16 항에 있어서, 제 1 방식, 제 2 방식 또는 제 3 방식중 어느 한 방식을 선택하는 선택 수단과,
    상기 제 1 방식이 선택된 경우, 상기 소정치를 1로 설정함으로써, 풀-주문형비디오를 실행하는 풀-주문형 비디오 실행 수단과,
    상기 제 2 방식이 선택된 경우, 화일의 독출 요구로부터 소정의 시간의 경과후에, 상기 화일의 요구원으로의 송출을 지시함으로써, 니어-주문형 비디오를 실행하는 니어-주문형 비디오 실행 수단과,
    상기 제 3 방식이 선택된 경우, 상기 소정치를 2이상의 값으로 설정하는 초기치 설정 수단을 추가로 구비하는 것을 특징으로 하는 데이타 분배 장치.
  18. 요구원으로부터의 화일의 독출 요구 횟수를 각 화일마다 계수하는 기능과,
    상기 독출 요구 횟수가 소정치에 도달한 화일이 있는지의 여부를 판정하는 기능과,
    상기 독출 요구의 횟수가 소정치에 도달한 화일의 상기 요구원으로의 송출을 지시하는 기능을 구비하는 것을 특징으로 하는 컴퓨터를 제어하기 위한 프로그램을 격납한 컴퓨터 독해 가능한 기억 매체.
KR1019970001780A 1996-01-23 1997-01-22 데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템. KR19980063245A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP96-9248 1996-01-23
JP924896 1996-01-23
JP96-348030 1996-12-26
JP8348030A JPH09265429A (ja) 1996-01-23 1996-12-26 データ配信装置、記憶装置とその制御方法およびデータ転送システム

Publications (1)

Publication Number Publication Date
KR19980063245A true KR19980063245A (ko) 1998-10-07

Family

ID=26343931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970001780A KR19980063245A (ko) 1996-01-23 1997-01-22 데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템.

Country Status (4)

Country Link
EP (1) EP0786718A3 (ko)
JP (1) JPH09265429A (ko)
KR (1) KR19980063245A (ko)
CN (1) CN1167946A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020030381A (ko) * 2000-10-17 2002-04-25 송유진 네트워크상에서의 광고웹서버에 의한 광고전송시스템

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003521838A (ja) * 1999-04-09 2003-07-15 オープンティブイ・インコーポレーテッド ハイブリッド・ポイント・ツー・ポイント同報通信の帯域幅管理
KR20020022706A (ko) * 1999-06-18 2002-03-27 피터 엔. 데트킨 대화형 비디오 스트림을 이용한 강화된 시각 표현을 위한시스템 및 방법
FR2795834B1 (fr) * 1999-07-01 2001-09-14 Television Francaise 1 Soc Procede et systeme de gestion locale de la distribution de programmes multimedia
JP4505977B2 (ja) * 2000-11-10 2010-07-21 ソニー株式会社 データ蓄積装置およびその方法、ならびに記録媒体
AU2003209790A1 (en) * 2003-03-07 2004-09-28 Nokia Corporation A method and a device for frequency counting
JP4540556B2 (ja) * 2005-06-22 2010-09-08 株式会社神戸製鋼所 データアクセス方法及びそのプログラム
GB0524260D0 (en) * 2005-11-29 2006-01-04 Ibm Methods, apparatus and computer programs for managing access to storage
JPWO2010058790A1 (ja) * 2008-11-21 2012-04-19 日本電気株式会社 コンテンツ配信装置、コンテンツ配信制御方法、コンテンツ配信制御プログラム、キャッシュ制御装置
CN102209038B (zh) * 2011-06-15 2015-11-25 中山大学 一种交互式流媒体缓冲的实现方法及其装置
JP5514245B2 (ja) * 2012-03-15 2014-06-04 株式会社東芝 ビデオ配信サーバ及びビデオ配信方法
JP6901262B2 (ja) * 2017-01-05 2021-07-14 Kddi株式会社 コンテンツ配信システムの転送装置及びプログラム
CN108668142B (zh) * 2017-03-27 2021-02-12 华为技术有限公司 视频播放方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0368683B1 (en) * 1988-11-11 1996-01-24 Victor Company Of Japan, Limited Data handling apparatus
US5150472A (en) * 1989-10-20 1992-09-22 International Business Machines Corp. Cache management method and apparatus for shared, sequentially-accessed, data
JPH03231339A (ja) * 1990-02-07 1991-10-15 Toshiba Corp データベースアクセス方式
JP2618149B2 (ja) * 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
JPH06119218A (ja) * 1992-10-08 1994-04-28 Nippon Telegr & Teleph Corp <Ntt> ファイルキャッシュ制御方法
DE69327324T2 (de) * 1993-11-17 2000-07-27 Alcatel Sa Netzwerk für Video auf Anfrage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020030381A (ko) * 2000-10-17 2002-04-25 송유진 네트워크상에서의 광고웹서버에 의한 광고전송시스템

Also Published As

Publication number Publication date
JPH09265429A (ja) 1997-10-07
EP0786718A2 (en) 1997-07-30
EP0786718A3 (en) 1997-09-24
CN1167946A (zh) 1997-12-17

Similar Documents

Publication Publication Date Title
KR100747519B1 (ko) 티브이의 프로그램 공유 서비스 제공 장치
KR0149211B1 (ko) 완전 이동 비디오 화일 분배 시스템 및 방법
JP2601189B2 (ja) ビデオ・オン・デマンドシステム
US7433576B2 (en) Video data recording/reproducing apparatus and video data management method for use in the same
US5568180A (en) Video-on-demand system of reduced storage capacity which can provide noninterrupted broadcast to a plurality of users
US7882260B2 (en) Method of data management for efficiently storing and retrieving data to respond to user access requests
US7127735B1 (en) Video-on-demand system and video viewing assisting method
US8683534B2 (en) Method and apparatus for hierarchical distribution of video content for an interactive information distribution system
JP4396878B2 (ja) コンテンツを格納するための方法
US7765235B2 (en) Systems and methods for resolving conflicts and managing system resources in multimedia delivery systems
US20020166035A1 (en) Multimedia data storage system and method for operating a media server as a cache device and controlling a volume of data in the media server based on user-defined parameters
KR100967700B1 (ko) 피-투-피 방식의 주문형 비디오 서비스 시스템
KR19980063245A (ko) 데이타 분배 장치, 기억 장치와 그 제어 방법, 및 데이타 전송 시스템.
JP2007080161A (ja) データ配信システム、部分コンテンツ格納サーバ、応答高速化方法、及びプログラム
EP0801488B1 (en) Information transfer method and apparatus
JP2000209258A (ja) 時系列デ―タ蓄積配信システム
JP4127969B2 (ja) Mpegストリームの早送り早巻き戻しアルゴリズム
US20080101764A1 (en) Method and Apparatus for Managing Multimedia Content Recording Assets
JP3079208B2 (ja) プログラム送信の最適化方法および装置
JP4021648B2 (ja) 録画再生システム、録画再生方法及びデータベースサーバ
KR100303019B1 (ko) 프록시서버를이용한주문형비디오시스템
JP2735018B2 (ja) ビデオオンデマンドシステムのための継続視聴方法と装置
JP2004336464A (ja) Tv番組録画再生装置
JP4475853B2 (ja) 録画再生システム、録画再生方法、録画再生装置及びデータベースサーバ
JP2003158703A (ja) 録画再生システム、録画再生方法、録画再生装置及びデータベースサーバ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
SUBM Surrender of laid-open application requested