KR20080058016A - Apparatus and method for caching data - Google Patents

Apparatus and method for caching data Download PDF

Info

Publication number
KR20080058016A
KR20080058016A KR1020060132032A KR20060132032A KR20080058016A KR 20080058016 A KR20080058016 A KR 20080058016A KR 1020060132032 A KR1020060132032 A KR 1020060132032A KR 20060132032 A KR20060132032 A KR 20060132032A KR 20080058016 A KR20080058016 A KR 20080058016A
Authority
KR
South Korea
Prior art keywords
data
cpu
peripheral device
peripheral
storage device
Prior art date
Application number
KR1020060132032A
Other languages
Korean (ko)
Inventor
김신수
Original Assignee
엘지노텔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지노텔 주식회사 filed Critical 엘지노텔 주식회사
Priority to KR1020060132032A priority Critical patent/KR20080058016A/en
Publication of KR20080058016A publication Critical patent/KR20080058016A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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

Abstract

A device and a method for caching data are provided to improve entire processing speed of a computer system by reducing delay caused by access from a CPU to peripheral devices, as the previously stored data of the peripheral device is transmitted when the CPU requests the access to the peripheral device. A storage device(148) stores data of more than one peripheral device(160_1 to 160_n). A CPU interface(142) receives a data access request to the peripheral device from a CPU(120). A data controller(144) searches the corresponding data from the storage device by responding to the received data access request and transfers the searched data to the CPU interface. The CPU interface transfers the data received from the data controller to the CPU. A peripheral device interface(146) is connected to the peripheral devices, and transmits a synchronization request to the data controller when the data of the peripheral device is updated by accessing the peripheral device periodically. The data controller updates the data of the peripheral device by responding to the synchronization request. A connection interface(150) connects a data cache device(140) to the peripheral devices.

Description

데이터 캐시 장치 및 데이터 캐시 방법{APPARATUS AND METHOD FOR CACHING DATA}Data cache device and data cache method {APPARATUS AND METHOD FOR CACHING DATA}

도 1은 본 발명의 일 실시예에 따른 데이터 캐시 장치가 사용될 수 있는 컴퓨터 시스템을 도시한 도면.1 illustrates a computer system in which a data cache device may be used in accordance with one embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 데이터 제어 장치의 구성을 나타낸 도면.2 is a diagram illustrating a configuration of a data control device according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 주변 장치와 데이터를 동기화하는 신호의 흐름을 나타내는 도면.3 is a diagram illustrating a signal flow for synchronizing data with a peripheral device in a data cache device according to one embodiment of the present invention;

도 4는 본 발명의 일 실시예에 따른 주변 장치 내 스테이터스 레지스터를 나타내는 도면.4 illustrates a status register in a peripheral device according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 동기화가 요청되는 장치의 선택 신호를 나타내는 도면.5 is a diagram illustrating a selection signal of a device for which synchronization is requested in the data cache device according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서, CPU로부터 주변 장치에 대한 액세스 요청이 있는 경우의 데이터 흐름을 나타내는 도면.6 is a diagram illustrating a data flow when there is a request for access to a peripheral device from a CPU in a data cache device according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 CPU와 주변 장치 간에 데이터를 전달하기 위한 방법의 논리적인 흐름도.7 is a logical flow diagram of a method for transferring data between a CPU and a peripheral device in a data cache device in accordance with one embodiment of the present invention.

도 8은 종래 컴퓨터 시스템에서 CPU와 주변 장치 간의 연결을 나타내는 도 면.8 illustrates a connection between a CPU and a peripheral device in a conventional computer system.

본 발명은 컴퓨터 시스템에 관한 것이며, 보다 구체적으로는 CPU(Central Processing Unit)의 주변 장치(peripheral device)로의 액세스를 처리하는 것에 관련되어 있다.TECHNICAL FIELD The present invention relates to a computer system, and more particularly, to processing access to a peripheral device of a central processing unit (CPU).

최근 컴퓨터 시스템은 컴퓨터를 호스트로 하여 디지털 카메라, mp3 플레이어와 같은 휴대용 멀티미디어 재생 장치 또는 휴대용 멀티미디어 형성 장치의 연결, USB나 IEEE 1394 등의 유선 연결을 이용한 각종 보조 저장 장치의 접속, CD-ROM, DVD-ROM과 같은 자기 저장 장치의 접속, WiBro, WiFi, 또는 BlueTooth 등의 무선 연결을 이용한 각종 휴대용 장치의 접속 등 주변 장치의 연결이 점점 많아지고 있는 추세이다. 종래 컴퓨터 시스템에서는 CPU가 이와 같은 주변 장치로 직접 액세스(direct access)를 수행하였다. In recent years, computer systems have been used as a host to connect portable multimedia playback devices such as digital cameras, mp3 players, or portable multimedia forming devices, to connect various auxiliary storage devices using a wired connection such as USB or IEEE 1394, CD-ROM, DVD, etc. Increasingly, peripheral devices are increasingly connected, such as the connection of a magnetic storage device such as a ROM, a connection of various portable devices using a wireless connection such as WiBro, WiFi, or BlueTooth. In conventional computer systems, the CPU performs direct access to such peripheral devices.

도 8은 종래 컴퓨터 시스템에서 CPU와 주변 장치 간의 연결을 나타내는 도면이다. 도 8에 도시된 바와 같이, CPU(820)는 주변 장치(860_1, 860_2, 860_3 및 860_4)로 직접 액세스를 수행한다. CPU(820)는 먼저 액세스하기를 원하는 주변 장치들(860_1, 860_2, 860_3 및 860_4)의 주소(cpu_addr)(821)와 제어 신호(cpu_rw)(822)를 발행한다. 이 주소는 주소 디코딩 로직(840)에 의해 해당 주변 장치의 칩 선택 신호(cs_peri)(841)로 변환되어 접속 인터페이스(850)를 통해 주변 장치들(860_1, 860_2, 860_3 및 860_4)로 전달된다. 선택된 장치는 액세스 요청(판독 또는 기록)을 처리한 후, 처리 완료 신호를 발행한다. 도 8에서, 처리 완료 신호는 주변 장치 1에서 발행된 처리 완료 신호(peri_dtack1(861_1)), 주변 장치 2에서 발행된 처리 완료 신호(peri_dtack2(861_2)), 주변 장치 3에서 발행된 처리 완료 신호(peri_dtack3(861_3)) 및 주변 장치 4에서 발행된 처리 완료 신호(peri_dtack4(861_4))로 도시되어 있다. CPU(820)가 주소 디코딩 로직(840)을 통해 처리 완료 신호(cpu_dtack(842)) 및 데이터(cpu_data)(843)를 수신한다.8 is a diagram illustrating a connection between a CPU and a peripheral device in a conventional computer system. As shown in FIG. 8, the CPU 820 directly accesses the peripheral devices 860_1, 860_2, 860_3, and 860_4. The CPU 820 first issues an address (cpu_addr) 821 and a control signal (cpu_rw) 822 of peripheral devices 860_1, 860_2, 860_3, and 860_4 that are desired to be accessed. This address is converted by the address decoding logic 840 into the chip select signal (cs_peri) 841 of the corresponding peripheral device and transferred to the peripheral devices 860_1, 860_2, 860_3 and 860_4 through the connection interface 850. The selected device processes the access request (read or write) and then issues a processing complete signal. In FIG. 8, the processing completion signal includes the processing completion signal peri_dtack1 861_1 issued by the peripheral device 1, the processing completion signal peri_dtack2 861_2 issued by the peripheral device 2, and the processing completion signal issued by the peripheral device 3 ( peri_dtack3 861_3 and a processing completion signal peri_dtack4 861_4 issued by the peripheral device 4. The CPU 820 receives the processing completion signal cpu_dtack 842 and data cpu_data 843 through the address decoding logic 840.

전술한 바와 같이, 종래 컴퓨터 시스템(800)에서 CPU(820)의 직접 수행 액세스는 CPU(820)가 처리 완료 신호(cpu_dtack(842)) 및 데이터(cpu_data)(843)를 수신한 이후에야 비로소 액세스가 종료하는데, 이는 상당한 지연을 초래한다. 예를 들어, 도 8에 도시된 주변 장치들(860_1, 860_2, 860_3 및 860_4)로의 액세스 시간이 각각 90ns, 120ns, 150ns 및 50ns라 하고, 이 장치들로의 액세스가 거의 동시에 차례로 발행되었다고 가정하자. 제일 먼저 액세스가 시작된 주변 장치 1(860_1)로의 액세스가 종료할 때까지 즉, 90ns의 시간 동안 나머지 주변 장치들로의 액세스는 모두 정지되어야 한다. 다음은 주변 장치 2(860_2)로의 액세스가 종료할 때까지 나머지 장치들로의 액세스도 마찬가지로 정지된다. 따라서, 주변 장치 4(860_4)로의 액세스는 실제 액세스 시간이 50ns에 불과하지만 다른 장치들로의 액세스를 기다려야 하기 때문에 360ns나 지연이 된다. 이와 같이 CPU에서 직접 액세스하는 구조는 하나의 주변 장치로 액세스하는 경우 나머지 주변 장치로의 액세스는 모두 정지해야 하므로 지연 시간이 길어진다. 컴퓨터의 처리 속도가 증가될 수 록 이러한 주변 장치로의 액세스에 기인한 지연 효과는 병목 현상으로 더욱 두드러지게 나타난다. As described above, direct performing access of the CPU 820 in the conventional computer system 800 is only accessed after the CPU 820 receives the processing completion signal cpu_dtack 842 and data cpu_data 843. Terminates, which causes a significant delay. For example, suppose that the access times to the peripheral devices 860_1, 860_2, 860_3, and 860_4 shown in FIG. 8 are 90 ns, 120 ns, 150 ns, and 50 ns, respectively, and that accesses to these devices are issued in sequence almost simultaneously. . All accesses to the remaining peripheral devices must be stopped until the access to the peripheral device 1 860_1 to which access is first started ends, that is, for a time of 90 ns. Next, access to the remaining devices is likewise stopped until the access to peripheral device 2 860_2 ends. Thus, access to Peripheral Device 4 860_4 is delayed 360 ns because the actual access time is only 50 ns but must wait for access to other devices. As such, the structure directly accessed by the CPU increases the delay time because all accesses to one peripheral device need to be stopped. As computer processing speeds increase, the delay effect due to access to these peripherals becomes even more pronounced as a bottleneck.

컴퓨터의 다양한 활용으로 주변 장치로의 연결이 점점 더 많아지고 있는 상황에서, 급격히 빨라지고 있는 컴퓨터의 처리 속도를 완전히 효율적으로 활용하기 위해서는 이와 같은 주변 장치로의 액세스에 의한 병목 효과를 줄이는 것이 요구된다.In a situation where more connections to peripheral devices are being made by using various computers, in order to fully utilize the processing speed of the rapidly increasing computer, it is required to reduce the bottleneck effect of access to such peripheral devices.

본 발명의 목적은, CPU에서 주변 장치로의 액세스에 의한 지연을 줄여 컴퓨터 시스템의 전체적인 처리 속도를 향상시킬 수 있는 데이터 캐시 장치 및 데이터 캐시 방법을 제공하는 데 있다. SUMMARY OF THE INVENTION An object of the present invention is to provide a data cache device and a data cache method capable of improving the overall processing speed of a computer system by reducing delay caused by access to a peripheral device from a CPU.

본 발명의 일 실시예에 따르면, CPU와 하나 이상의 주변 장치에 접속된 데이터 캐시 장치가 제공된다. 상기 데이터 캐시 장치는 접속된 주변 장치의 데이터를 저장하기 위한 저장 장치를 포함하고, 상기 CPU에서 상기 접속된 주변 장치로 액세스가 요청되면, 상기 저장 장치에 저장된 상기 데이터를 상기 CPU로 전송한다.According to one embodiment of the invention, there is provided a data cache device connected to a CPU and one or more peripheral devices. The data cache device includes a storage device for storing data of the connected peripheral device, and when access is requested from the CPU to the connected peripheral device, the data cache device transmits the data stored in the storage device to the CPU.

본 발명의 다른 실시예에 따르면, CPU와 하나 이상의 주변 장치에 접속된 데이터 캐시 장치가 제공된다. 상기 데이터 캐시 장치는 접속된 주변 장치의 데이터를 저장하기 위한 저장 장치, 상기 CPU로부터 상기 접속된 주변 장치로의 액세스 요청을 수신하기 위한 CPU 인터페이스, 및 상기 수신된 액세스 요청에 응답하여 상기 저장 장치로 해당 데이터를 요청하고, 상기 저장 장치로부터 상기 해당 데이터 를 수신하여 상기 CPU 인터페이스로 전달하기 위한 데이터 제어 장치를 포함한다. 상기 CPU 인터페이스는 상기 데이터 제어 장치로부터 상기 해당 데이터를 수신하여 상기 CPU로 전송한다.According to another embodiment of the present invention, there is provided a data cache device connected to a CPU and one or more peripheral devices. The data cache device includes a storage device for storing data of a connected peripheral device, a CPU interface for receiving an access request from the CPU to the connected peripheral device, and a response to the storage device in response to the received access request. And a data control device for requesting the data and receiving the data from the storage device and transferring the data to the CPU interface. The CPU interface receives the corresponding data from the data control device and transmits the data to the CPU.

일 실시예에서, 상기 데이터 캐시 장치는, 상기 주변 장치에 연결되고 상기 주변 장치를 소정의 시간마다 액세스하여 상기 주변 장치의 데이터가 업데이트된 경우 상기 데이터 제어 장치로 동기화 요청을 전송하기 위한 주변 장치 인터페이스를 더 포함한다. 상기 데이터 제어 장치는, 상기 동기화 요청에 응답하여 상기 저장 장치의 해당 데이터를 업데이트시킨다.In one embodiment, the data cache device is connected to the peripheral device, the peripheral device interface for transmitting a synchronization request to the data control device when the data of the peripheral device is updated by accessing the peripheral device every predetermined time It further includes. The data control device updates corresponding data of the storage device in response to the synchronization request.

본 발명의 다른 실시예에 따르면, CPU와 주변 장치 사이에 연결된 데이터 캐시 장치에서 데이터를 전달하기 위한 방법이 제공된다. 상기 방법은, 상기 주변 장치의 데이터를, 상기 데이터 캐시 장치 내에 위치한 저장 장치에 저장하는 단계, 상기 CPU에서 상기 주변 장치로 액세스 요청을 수신한 것에 응답하여, 상기 저장 장치에 저장된 데이터를 상기 CPU로 전송하는 단계를 포함한다.According to another embodiment of the invention, a method is provided for transferring data in a data cache device coupled between a CPU and a peripheral device. The method includes storing data of the peripheral device in a storage device located within the data cache device, and in response to receiving an access request from the CPU to the peripheral device, transferring data stored in the storage device to the CPU. Transmitting.

이하에서는 도 1 내지 도 7을 참조하여 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to FIGS. 1 to 7.

도 1은 본 발명의 일 실시예에 따른 데이터 캐시 장치가 사용될 수 있는 컴퓨터 시스템을 도시한 도면이다. 컴퓨터 시스템(100)은 CPU(central processing unit; 120), 데이터 캐시 장치(140) 및 접속 인터페이스(150)를 통해 데이터 캐시 장치(140)에 연결된 하나 이상의 주변 장치(160_1, 160_2, ..., 160_ n)를 포함할 수 있다. 본 발명에 따르면, 데이터 캐시 장치(140)는 주변 장치(160_1, 160_2, ..., 160_ n)의 데이터를 저장한다. 일 실시예에서, CPU(120)로부터 주변 장 치(160_1, 160_2, ..., 160_ n) 중 어느 하나로 데이터의 액세스 요청이 있는 경우, 액세스 요청된 주변 장치(160_1, 160_2, ..., 160_ n)로 직접 액세스를 수행하는 대신, 데이터 캐시 장치(140)에 저장된 해당 주변 장치의 데이터를 검색하여 검색된 데이터를 CPU(120)로 전송한다. 이와 같이 주변 장치로 직접 액세스를 수행하는 대신, 빠른 처리가 가능한 데이터 캐시 장치(140)에서 액세스 요청을 수행함으로써 상대적으로 속도가 느린 주변 장치로의 액세스에 기인한 속도 지연 및 병목 현상을 방지할 수 있다. 1 is a diagram illustrating a computer system in which a data cache device according to an embodiment of the present invention may be used. The computer system 100 may include one or more peripheral devices 160_1, 160_2,..., Connected to the data cache device 140 via a central processing unit 120, a data cache device 140, and a connection interface 150. 160_n). According to the present invention, the data cache device 140 stores data of the peripheral devices 160_1, 160_2,..., 160_n. In one embodiment, when there is a request for access of data from the CPU 120 to any of the peripheral devices 160_1, 160_2,..., 160_ n, the peripheral device 160_1, 160_2,... 160_n) instead of performing direct access, the data of the peripheral device stored in the data cache device 140 is searched and transmitted to the CPU 120. Instead of performing direct access to the peripheral device as described above, the access request is performed by the data cache device 140 capable of fast processing, thereby preventing the speed delay and the bottleneck caused by the access to the relatively slow peripheral device. have.

도 1에 도시된 CPU(120)는 주변 장치(160_1, 160_2, ..., 160_ n) 및 다양한 입력 장치(미도시)로부터 데이터를 수신하여 처리한 후, 그 결과를 주변 장치(160_1, 160_2, ..., 160_ n) 및 다양한 출력 장치(미도시)로 전송하는 일련의 과정을 제어하고 조정하는 장치이다. CPU(120)는 전술한 작업을 수행할 수 있는 공지된 장치 또는 앞으로 개발될 장치를 모두 포함하며, 본 명세서에서 그 상세한 설명은 생략한다.The CPU 120 shown in FIG. 1 receives and processes data from peripheral devices 160_1, 160_2,..., 160_ n and various input devices (not shown), and then outputs the results to peripheral devices 160_1 and 160_2. , ..., 160_n) and a device for controlling and adjusting a series of processes for transmitting to various output devices (not shown). The CPU 120 includes both a known device capable of performing the above-described operation or a device to be developed in the future, and the detailed description thereof will be omitted herein.

데이터 캐시 장치(140)는 주변 장치(160_1, 160_2, ..., 160_ n)의 데이터를 저장하고, CPU로부터 주변 장치(160_1, 160_2, ..., 160_ n)로의 데이터의 액세스 요청이 있는 경우 해당 데이터를 CPU(120)로 전송한다. 일 실시예에서, 데이터 캐시 장치(140)는 CPU(120)와의 인터페이스를 수행하는 CPU 인터페이스(142), 주변 장치(160_1, 160_2, ..., 160_ n)와의 인터페이스를 수행하는 주변 장치 인터페이스(146), 주변 장치(160_1, 160_2, ..., 160_ n)의 데이터를 저장하는 저장 장치(148), 및 CPU 인터페이스(142), 주변 장치 인터페이스(146) 및 데이터 저장 장 치(148)에 연결되어 이들을 제어하는 데이터 제어 장치(144)를 포함할 수 있다. 일 실시예에서 저장 장치(148)는 캐시 데이터 램(cache data RAM)을 포함하여 CPU(120)와 신속한 데이터 통신을 도모한다. The data cache device 140 stores data of the peripheral devices 160_1, 160_2,..., And 160_n, and requests for access of data from the CPU to the peripheral devices 160_1, 160_2,..., 160_n. If the data is transmitted to the CPU (120). In an embodiment, the data cache device 140 may include a CPU interface 142 that interfaces with the CPU 120 and a peripheral device interface that interfaces with the peripheral devices 160_1, 160_2,..., 160_ n. 146), the storage device 148 that stores data of the peripheral devices 160_1, 160_2,..., 160_ n, and the CPU interface 142, the peripheral device interface 146, and the data storage device 148. It may include a data control device 144 connected to and control them. In one embodiment, the storage device 148 includes cache data RAM to facilitate rapid data communication with the CPU 120.

CPU 인터페이스(142)는 CPU(120)에 접속되어 CPU(120)의 주변 장치(160_1, 160_2, ..., 160_ n)로의 액세스 요청을 검출하고, 해당 주변 장치에 대한 선택 신호(chip select)를 발행한다. 이후, 액세스 요청된 데이터 및 처리 완료 신호를 데이터 제어 장치(144)로부터 수신하여 CPU(120)로 전달한다. The CPU interface 142 is connected to the CPU 120 to detect a request for access to the peripheral devices 160_1, 160_2,..., 160_ n of the CPU 120, and select a chip for the peripheral device. Issue a. Thereafter, the access request data and the processing completion signal are received from the data control device 144 and transferred to the CPU 120.

주변 장치 인터페이스(146)는 접속된 주변 장치(160_1, 160_2, ..., 160_ n)로 소정의 시간마다 액세스를 하여 주변 장치(160_1, 160_2, ..., 160_ n)에서의 데이터 업데이트 여부를 확인하고, 데이터 업데이트가 확인된 경우 데이터 제어 장치(144)로 데이터의 동기화(synchronization), 즉 해당 주변 장치의 데이터와 저장 장치(148)에 저장된 해당 장치의 데이터가 일치되도록 저장 장치(148)의 데이터를 업데이트하라는 요청을 전송한다.The peripheral device interface 146 accesses the connected peripheral devices 160_1, 160_2,..., 160_ n every predetermined time to update data in the peripheral devices 160_1, 160_2,..., 160_ n. If the data update is confirmed, the data control device 144 synchronizes the data, that is, the data of the corresponding peripheral device and the data of the corresponding device stored in the storage device 148 match. Send a request to update the data in.

데이터 제어 장치(144)는 CPU 인터페이스(142)에 연결되어 CPU 인터페이스(142)로부터 주변 장치로의 데이터의 액세스 요청을 수신한다. 데이터 제어 장치(144)는 이와 같은 액세스 요청 수신에 응답하여, 중재(arbitration), 긴급 액세스 요청(urgent access request), 저장 장치(148)로의 액세스, 즉 저장 장치(148)에서 요청되는 해당 주변 장치의 데이터를 검색 및 판독하는 작업 및 요청된 데이터가 처리 완료되었음을 나타내는 신호(Dtack signal) 발행 등을 수행한다. 데이터 제어 장치(144)는 또한, 주변 장치 인터페이스(146)에 연결되어 주변 장치 인터 페이스(146)로부터 어느 주변 장치에 대한 데이터 동기화 요청을 수신한다. 데이터 제어 장치(144)는 데이터 동기화 요청 수신에 응답하여, 저장 장치(148)에서 해당 주변 장치에 대한 데이터를 업데이트시키는 작업을 수행한다.The data control device 144 is connected to the CPU interface 142 to receive a request for access of data from the CPU interface 142 to the peripheral device. In response to receiving such an access request, the data control device 144 receives an arbitration, an urgent access request, access to the storage device 148, that is, a corresponding peripheral device requested by the storage device 148. Searching and reading the data of the data, and issuing a stack signal indicating that the requested data has been processed. The data control device 144 is also connected to the peripheral device interface 146 to receive a data synchronization request for a peripheral device from the peripheral device interface 146. In response to receiving the data synchronization request, the data control device 144 updates the data of the peripheral device in the storage device 148.

접속 인터페이스는(150)는 데이터 캐시 장치(140)와 주변 장치(160_1, 160_2, ..., 160_ n) 간의 연결을 담당한다. 접속 인터페이스(150)는 프린터나 디스플레이 장치와 같이 해당 주변 장치를 위한 전용 인터페이스를 포함한다. 접속 인터페이스(150)는 RS-232C와 같은 범용 직렬 인터페이스 및 하드 디스크나 MO 등의 보조 저장 장치를 위한 SCSI 또는 IDE를 포함하나, 본원의 접속 인터페이스(150)가 이로써 한정되는 것은 아니다.The connection interface 150 is responsible for the connection between the data cache device 140 and the peripheral devices 160_1, 160_2,..., 160_n. The connection interface 150 includes a dedicated interface for a corresponding peripheral device, such as a printer or a display device. The connection interface 150 includes a general-purpose serial interface such as RS-232C and a SCSI or IDE for an auxiliary storage device such as a hard disk or an MO, but the connection interface 150 herein is not limited thereto.

주변 장치(160_1, 160_2, ..., 160_ n)는 CPU에 접속되어 CPU의 제어를 받으나 물리적으로 CPU와 상이한 장소에 위치하는 입출력 장치 및 보조 저장 장치를 포함한다. 주변 장치(160_1, 160_2, ..., 160_ n) 중 입력 장치로는 카드 판독기, 카드 펀치, 종이 테이프 판독기, 펀치, 키보드, 마우스, 스캐너, 라이트 펜 등을 포함하며, 출력 장치로는 디스플레이 장치, 프린터, 플로터 등을 포함할 수 있다. 보조 저장 장치로는 자기 테이프나 자기 디스크, 광 디스크 등을 포함하나, 본원의 주변 장치(160_1, 160_2, ..., 160_ n)가 이로써 한정되는 것은 아니다. The peripheral devices 160_1, 160_2,..., 160_n include an input / output device and an auxiliary storage device connected to the CPU and controlled by the CPU but physically located at a different location from the CPU. Among the peripheral devices 160_1, 160_2, ..., 160_ n, input devices include card readers, card punches, paper tape readers, punches, keyboards, mice, scanners, light pens, etc., and output devices include display devices. , Printers, plotters, and the like. Auxiliary storage devices include magnetic tapes, magnetic disks, optical disks, and the like, but the peripheral devices 160_1, 160_2,..., 160_n of the present application are not limited thereto.

도 2는 본 발명의 일 실시예에 따른 데이터 제어 장치의 구성을 나타낸 도면이다. 데이터 제어 장치(200)는 주변 장치 인터페이스(146)(도 1)를 통해 접속된 각 주변 장치에 대한 저장 장치(148)(도 1)에서의 현재 스테이트(state)를 저장하는 스테이트 머신(state machine)(220), 저장 장치(148)로의 액세스를 스케쥴링하 는 중재부(arbiter)(240), CPU로 전송할 처리 완료 신호를 발행하는 Dtack 형성부(260) 및 주변 장치 인터페이스(146)로부터 동기화 요청을 수신하여 중재부(240)로 전달하는 업데이트부(280)를 포함한다. 2 is a diagram illustrating a configuration of a data control device according to an embodiment of the present invention. The data control device 200 is a state machine that stores the current state in the storage device 148 (FIG. 1) for each peripheral device connected via the peripheral interface 146 (FIG. 1). (220), an arbiter 240 for scheduling access to the storage device 148, a synchronization request from the dtack forming unit 260 and peripheral device interface 146 that issues a processing completion signal to be sent to the CPU. Update unit 280 to receive and deliver to the arbitration unit 240.

스테이트 머신(220)에 저장되는 스테이트는, 예컨대 업데이트 스테이트(update), 판독 스테이트(read) 및 유휴 스테이트(idle)를 포함할 수 있다. 업데이트 스테이트는 주변 장치와 저장 장치의 동기화를 위하여 해당 장치에 대한 저장 장치(148)의 데이터를 업데이트 하고 있음을 의미한다. 판독 스테이트는 해당 장치에 대한 저장 장치(148)의 데이터가 CPU의 요청에 의해 판독되고 있음을 의미한다. 유휴 스테이트는 해당 장치 또는 CPU 어느 것과도 액세스하고 있지 않은 상태를 의미한다. 스테이트 머신(220)은, 예컨대 RAM 등의 기억 장치를 포함하여 스테이트를 저장할 수 있다.The state stored in the state machine 220 may include, for example, an update state, a read state, and an idle state. The update state means that data of the storage device 148 for the corresponding device is updated for synchronization between the peripheral device and the storage device. The read state means that data in storage 148 for that device is being read at the request of the CPU. Idle state means that no device or CPU is being accessed. The state machine 220 may store a state including a storage device such as a RAM, for example.

중재부(240)는 수신된 요청 신호에 응답하여 스테이트 머신(220)의 스테이트 및 소정의 우선순위에 따라 동작을 스케쥴링하고, 스테이트 머신(220)의 스테이트를 천이시킨다. 표 1은 스테이트 머신(220)의 스테이트에 따라 데이터 중재부(240)가 요청을 처리하는 내용 및 스테이트 천이의 일 예시를 정리한 표이다.The arbitration unit 240 schedules operations according to the state of the state machine 220 and a predetermined priority in response to the received request signal, and transitions the state of the state machine 220. Table 1 is a table showing the data processing unit 240 processes the request according to the state of the state machine 220 and an example of state transition.

스테이트State 동기화(업데이트) 요청Sync (Update) Request 판독 요청Read request 유휴Idle 업데이트 스테이트 천이Update State Transition 업데이트update 판독 스테이트 천이Read State Transition 판독Reading 업데이트update XX XX 스테이트 유지State maintenance 보류Hold 판독Reading 스테이트 유지State maintenance 보류Hold XX XX

표 1에 도시된 바와 같이, 중재부(240)는 유휴 스테이트에 있는 장치에 대하여 업데이트부(280)부터 데이터 동기화 요청이 수신된 경우, 스테이트 머신(220) 내 해당 장치의 스테이트를 업데이트로 변경하고, 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 기록 요청 신호를 전달한다. 일 실시예에서, 중재부(240)는 CPU의 액세스 요청에 의해 판독 중인, 즉 판독 스테이트에 있는 장치에 대하여 업데이트 요청이 수신된 경우, 판독이 완료될 때까지 저장 장치(148)의 데이터 업데이트를 보류할 수 있다. 판독이 완료되면, 중재부(240)는 스테이트 머신(220) 내 해당 장치의 스테이트를 업데이트로 변경하고 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 기록 요청 신호를 전달한다. As shown in Table 1, when the mediation unit 240 receives a data synchronization request from the update unit 280 for the device in the idle state, the arbitration unit 240 changes the state of the device in the state machine 220 to update. The storage device 148 transmits a cache address and a cache write request signal for the device. In one embodiment, the arbitration unit 240 updates the data of the storage device 148 until the reading is complete when an update request is received for the device being read by the CPU's access request, that is, for the device in the read state. You can withhold it. When the reading is complete, the arbitration unit 240 changes the state of the device in the state machine 220 to update and sends a cache address and cache write request signal for the device to the storage device 148.

마찬가지로, 중재부(240)는 유휴 스테이트에 있는 장치에 대하여 CPU로부터 판독 요청이 수신된 경우, 스테이트 머신(220) 내 해당 장치의 스테이트를 판독으로 변경하고, 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 판독 요청 신호를 전달한다. 일 실시예에서, 중재부(240)는 업데이트 스테이트에 있는, 즉 주변 장치와 동기화 중인 장치에 대하여 CPU로부터 판독 요청이 수신된 경우, 업데이트가 완료될 때까지 판독을 보류할 수 있다. 업데이트가 완료되면, 중재부(240)는 스테이트 머신(220) 내 해당 장치의 스테이트를 판독으로 변경하고, 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 판독 요청 신호를 전달한다. 중재부(240)는 저장 장치(148)로부터 데이터를 수신하면, Dtack 형성부(260)로 Dtack 신호 형성을 요청하고, 수신된 데이터를 CPU 인터페이스로 전달한다. Similarly, when a read request is received from the CPU for a device in an idle state, the arbitration unit 240 changes the state of the device in the state machine 220 to read and the storage device 148 for the device. Carries a cache address and a cache read request signal. In one embodiment, the arbitration unit 240 may suspend the read until the update is complete, if a read request is received from the CPU for the device that is in the update state, that is, in synchronization with the peripheral device. When the update is completed, the arbitration unit 240 changes the state of the device in the state machine 220 to read, and sends the cache address and the cache read request signal for the device to the storage device 148. When the mediation unit 240 receives data from the storage device 148, the arbitration unit 240 requests the stack forming unit 260 to form a stack signal, and transfers the received data to the CPU interface.

일 실시예에서, 중재부(240)는 저장 장치(148)에 대해 현재 수행 중인 동작이 완료한 경우, 보류된 동작 유무를 확인하여 보류된 동작이 있는 경우, 소정의 우선순위에 따라 동작을 수행하고 보류된 동작이 없는 경우, 스테이트 머신(320) 내 해당 장치의 스테이트를 유휴로 변경한다.  In one embodiment, the arbitration unit 240 checks whether a pending operation is completed when the current operation on the storage device 148 is completed, and performs an operation according to a predetermined priority when there is a pending operation. If there is no pending operation, the state of the device in the state machine 320 is changed to idle.

이와 같이, 본 발명의 실시예에 따르면, 저장 장치에 주변 장치의 데이터를 저장해 두고, CPU로부터 주변 장치로의 액세스 요청이 수신된 경우 주변 장치로 직접 접속을 수행하지 않고 데이터 캐시 장치에 저장된 데이터를 전송함으로써 고성능 고속 시스템에서 병목현상의 요인이 되는 주변 장치로의 액세스 시간을 현저히 감소시킬 수 있다. As described above, according to an embodiment of the present invention, the data of the peripheral device is stored in the storage device, and when the request for access to the peripheral device is received from the CPU, the data stored in the data cache device is not directly connected to the peripheral device. Transmission can significantly reduce access time to peripheral devices, which are the bottleneck in high-performance, high-speed systems.

도 3은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 주변 장치와 데이터를 동기화하는 신호의 흐름을 나타내는 도면이다. 데이터 캐시 장치(140)(도 1)의 주변 장치 인터페이스(146)는 주변 장치에서의 데이터 업데이트 여부를 확인한다. 일 실시예에서 이와 같은 확인은 주변 장치 내 소정의 스테이터스 레지스터(status register)를 액세스하여 이벤트 발생 여부를 판독함으로써 수행될 수 있다. 일 실시예에서 주변 장치 인터페이스(146)는 소정의 주기로 주변 장치 내 스테이터스 레지스터를 액세스할 수 있다. 3 is a diagram illustrating a signal flow for synchronizing data with a peripheral device in a data cache device according to an embodiment of the present invention. The peripheral interface 146 of the data cache device 140 (FIG. 1) checks whether data is updated in the peripheral device. In one embodiment, such confirmation may be performed by accessing a predetermined status register in the peripheral device and reading whether an event has occurred. In one embodiment, the peripheral device interface 146 may access the status register in the peripheral device at predetermined intervals.

도 4는 본 발명의 일 실시예에 따른 주변 장치 내 스테이터스 레지스터를 나타내는 도면이다. 도 4에 도시된 바와 같이 스테이터스 레지스터의 소정의 비트값이 1인 경우, 예시에서 3번째 비트값이 1인데 이 경우 이 장치의 데이터가 업데이트되었음을 의미한다.4 is a diagram illustrating a status register in a peripheral device according to an embodiment of the present invention. As shown in FIG. 4, when the predetermined bit value of the status register is 1, the third bit value in the example is 1, which means that data of the device has been updated.

주변 장치에서 이벤트가 발생한 것으로, 즉 주변 장치에서의 데이터 업데이트가 확인된 경우, 주변 장치 인터페이스(146)는 장치 선택 신호(ref_cs)(311)를 데이터 제어 장치(144)로 전송하여 저장 장치(148)의 동기화를 요청한다. 일 실시예에서 ref_cs(311)는 n비트의 장치 선택 신호를 포함한다.When an event occurs in the peripheral device, that is, when the data update in the peripheral device is confirmed, the peripheral device interface 146 transmits a device selection signal (ref_cs) 311 to the data control device 144 to store the storage device 148. Request synchronization). In one embodiment, ref_cs 311 includes an n-bit device selection signal.

도 5는 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 동기화가 요청되는 장치의 선택 신호를 나타내는 도면이다. 도 5에 도시된 바와 같이 n비트 중 데이터 동기화가 요청되는 장치에 해당되는 비트값을 1로 하여 장치를 선택할 수 있다. 도 5의 예시에서는 주변 장치 3에 해당되는 세번째 비트값을 1로 하여, 저장 장치(148)의 데이터 중 주변 장치 3에 대한 데이터 업데이트를 요청한다.5 is a diagram illustrating a selection signal of a device for which synchronization is requested in a data cache device according to an embodiment of the present invention. As shown in FIG. 5, the device may be selected by setting the bit value corresponding to the device for which data synchronization is requested among n bits as 1. In the example of FIG. 5, the third bit value corresponding to the peripheral device 3 is set to 1 to request a data update of the peripheral device 3 among the data of the storage device 148.

데이터 제어 장치(144)는 ref_cs(311)를 수신한 것에 응답하여 해당 장치에 대한 저장 장치(148)의 동기화를 스케쥴링한다. 일 실시예에서, 도 2를 참조하면 ref_cs(311)는 업데이트부(280)로 전송되고, 업데이트부(280)는 ref_cs(311)를 수신한 것에 응답하여 중재부(240)로 해당 장치에 대한 저장 장치(148)의 동기화를 요청한다. 데이터 제어 장치(144)에서 해당 장치에 대한 저장 장치(148)의 동기화를 결정하면, 주변 장치 인터페이스(146)는 장치 선택 신호(cs_peri)(313), 주소(peri_addr)(314), 및 판독 요청 신호(peri_r)(315)를 해당 주변 장치로 전송하고, 해당 장치로부터 데이터(peri_data)(317)를 수신한다. 주변 장치 인터페이스(146)는 수신된 데이터를 데이터 제어 장치(144)로 전달한다(ref_data(319)). 데이터 제어 장치(144)는 ref_data(319)를 수신한 것에 응답하여 저장 장치(148)로 해당 장치에 대한 캐시 주소, 캐시 기록 요청 신호(w(325)) 및 수신된 데이터(cs_data(326))를 전달한다. 일 실시예에서, 캐시 주소는 장치 선택 신호(cs)(323) 및 캐시 주소(cs_addr)(324)를 포함한다. 일 실시예에서, cs(416)는 n비트의 선택 신호를 포함한다. 일 실시예에서, cs_addr(317)는 32비트의 주소 데이터를 포함한다. 일 실시예에서, 도 2를 참조하면, ref_data(319)는 중재부(240)에서 수신되고, 중재부(240)는 ref_data(319)를 수신한 것에 응답하여 저장 장치(148)로 해당 장치 선택 신호, 주소 및 판독 요청 신호를 전송할 수 있다.The data control device 144 schedules synchronization of the storage device 148 with the device in response to receiving ref_cs 311. In an embodiment, referring to FIG. 2, the ref_cs 311 is transmitted to the updater 280, and the updater 280 sends the mediation unit 240 to the arbitration unit 240 in response to receiving the ref_cs 311. Request synchronization of storage device 148. When the data control device 144 determines the synchronization of the storage device 148 with the device, the peripheral device interface 146 sends a device selection signal (cs_peri) 313, an address (peri_addr) 314, and a read request. A signal peri_r 315 is transmitted to the peripheral device, and data peri_data 317 is received from the device. Peripheral interface 146 forwards the received data to data control device 144 (ref_data 319). In response to receiving the ref_data 319, the data control device 144 transmits a cache address, a cache write request signal w 325, and the received data cs_data 326 for the device to the storage device 148. To pass. In one embodiment, the cache address includes a device selection signal (cs) 323 and a cache address (cs_addr) 324. In one embodiment, cs 416 includes n bits of select signal. In one embodiment, cs_addr 317 contains 32 bits of address data. In one embodiment, referring to FIG. 2, ref_data 319 is received at the arbitrator 240, and the arbitrator 240 selects the device as storage 148 in response to receiving ref_data 319. The signal, address and read request signal can be sent.

이와 같이 본 발명의 실시예에 따르면, 소정의 주기로 데이터 캐시 장치에 저장된 데이터를 주변 장치와 동기화함으로써 CPU로부터 주변 장치로의 액세스 요청시 주변 장치에 액세스하지 않고도 데이터를 액세스할 수 있으며 이로써 액세스 시간이 오래 걸려 컴퓨터 시스템의 성능을 전체적으로 저하시키는 현상을 크게 줄일 수 있다. As described above, according to an exemplary embodiment of the present invention, the data stored in the data cache device is synchronized with the peripheral device at predetermined intervals so that the data can be accessed without accessing the peripheral device when requesting access from the CPU to the peripheral device, thereby increasing access time. This can significantly reduce the overall performance of the computer system.

도 6은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서, CPU로부터 주변 장치에 대한 액세스 요청이 있는 경우의 데이터 흐름을 나타내는 도면이다. 데이터 캐시 장치(140)의 CPU 인터페이스(142)는 CPU로부터 주변 장치의 주소 (cpu_addr)(611)와 판독 요청 신호(cpu_r)(612)를 수신한다. 일 실시예에서, cpu_addr(611)는 32비트의 주소 데이터를 포함한다.6 is a diagram illustrating a data flow when there is a request for access to a peripheral device from a CPU in a data cache device according to an embodiment of the present invention. The CPU interface 142 of the data cache device 140 receives an address (cpu_addr) 611 and a read request signal (cpu_r) 612 of a peripheral device from the CPU. In one embodiment, cpu_addr 611 contains 32 bits of address data.

CPU 인터페이스(142)는 cpu_addr(611) 및 cpu_r(612) 신호를 수신한 것에 응답하여, 해당 주변 장치에 대한 캐시 주소 및 캐시 판독 요청 신호(cache_r)(616)를 데이터 제어 장치(144)로 전송한다. 일 실시예에서, 캐시 주소는 장치 선택 신호(cs_cache)(614) 및 캐시 주소(cache_addr)(615)를 포함한다. 일 실시예에서, cs_cache(614)는 n비트의 선택 신호를 포함한다. 일 실시예에서, cache_addr(615)는 32비트의 주소 데이터를 포함한다.In response to receiving the cpu_addr 611 and cpu_r 612 signals, the CPU interface 142 sends the cache address and cache read request signal (cache_r) 616 for the peripheral device to the data control device 144. do. In one embodiment, the cache address includes a device selection signal (cs_cache) 614 and a cache address (cache_addr) 615. In one embodiment, cs_cache 614 includes n bits of select signal. In one embodiment, cache_addr 615 contains 32 bits of address data.

데이터 제어 장치(144)는 cs_cache(614), cache_addr(615) 및 cache_r(616)을 수신한 것에 응답하여 스케쥴링에 따라 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 판독 요청 신호(r)(620)를 전달하고, 데이터(cd)(631)를 수신한다. 일 실시예에서, 캐시 주소는 장치 선택 신호(cs)(618) 및 캐시 주소(cs_addr)(619)를 포함한다. 일 실시예에서, cs(618)는 n비트의 선택 신호를 포함한다. 일 실시예에서, cs_addr(619)는 32비트의 주소 데이터를 포함한다. cd(631)는 32비트의 데이터 신호를 포함한다. 데이터 제어 장치(144)는 저장 장치(148)로부터 데이터(cd)(631)를 수신한 것에 응답하여 CPU 인터페이스(142)로 수신된 데이터를 전달하며(cache_data)(632), 처리 완료 신호(cache_dtack)(633)를 전송한다. In response to receiving the cs_cache 614, cache_addr 615, and cache_r 616, the data control device 144 sends the cache address and cache read request signal r for the device to the storage device 148 according to the scheduling. 620 is received, and data (cd) 631 is received. In one embodiment, the cache address includes a device selection signal (cs) 618 and a cache address (cs_addr) 619. In one embodiment, cs 618 includes n bits of select signal. In one embodiment, cs_addr 619 contains 32 bits of address data. The cd 631 contains a 32-bit data signal. The data control device 144 transfers the received data to the CPU interface 142 in response to receiving the data (cd) 631 from the storage device 148 (cache_data) 632, and a processing completion signal (cache_dtack). 633).

CPU 인터페이스(142)는 데이터 제어 장치(144)로부터 데이터(cache_data)(632) 및 처리 완료 신호(cache_dtack)(633)를 수신한 것에 응답하여 CPU로 수신된 신호들을 전달한다((cpu_data)(634) 및 처리 완료 신호(cpu_dtack)(635)).The CPU interface 142 transmits the received signals to the CPU in response to receiving the data (cache_data) 632 and the processing completion signal (cache_dtack) 633 from the data control device 144 (cpu_data) 634 And processing completion signal (cpu_dtack) 635.

도 7은 본 발명의 일 실시예에 따른 데이터 캐시 장치에서 CPU와 주변 장치 간에 데이터를 전달하기 위한 방법의 논리적인 흐름도이다. 단계(710)에서 접속된 주변 장치의 데이터가 업데이트되었는지 여부를 확인한다. 일 예시에서 단계(710)는, 도 3에 도시된 바와 같이, 데이터 캐시 장치(140)의 주변 장치 인터페이스(146)에서 주변 장치 내 스테이터스 레지스터를 판독하여 이벤트 발생 여부를 확인함으로써 수행될 수 있다. 주변 장치의 데이터 업데이트가 확인된 경우, 데이터 캐시 장치 내 저장 장치의 해당 장치에 대한 데이터를 동기화(업데이트)한다(단계 720). 일 예시에서 단계(720)는, 도 3에 도시된 바와 같이, 주변 장치 인터페이스(146)에서 데이터 제어 장치(144)로 해당 주변 장치에 대한 동기화를 요청하고, 데이터 제어 장치(144)의 제어 하에 저장 장치(148)로 업데이트된 데이터를 전달함으로써 수행될 수 있다. 일 실시예에서 업데이트 요청 신호 및 업데이트 데이터는, 도 2에 도시된 바와 같이, 데이터 캐시 장치(200)의 업데이트부(280) 및 중재부(240)로 각각 전달될 수 있다. 이 경우, 중재부(240)는 스테이트 머신(220)의 스테이트 및 소정의 우선순위에 따라 스케쥴링하여 저장 장치로 업데이트 데이터를 전달할 수 있다.7 is a logical flow diagram of a method for transferring data between a CPU and a peripheral device in a data cache device according to one embodiment of the invention. In operation 710, it is checked whether data of the connected peripheral device is updated. In one example, step 710 may be performed by reading the status register in the peripheral device from the peripheral device interface 146 of the data cache device 140 to confirm whether an event has occurred. If the data update of the peripheral device is confirmed, the data of the storage device in the data cache device is synchronized (updated) (step 720). In one example, step 720, as shown in FIG. 3, requests the data control device 144 to synchronize to the peripheral device from the peripheral device interface 146, and under the control of the data control device 144. This can be done by delivering the updated data to the storage device 148. In one embodiment, the update request signal and the update data may be delivered to the update unit 280 and the arbitration unit 240 of the data cache apparatus 200, as shown in FIG. 2. In this case, the arbitration unit 240 may deliver the update data to the storage device by scheduling the state according to the state of the state machine 220 and a predetermined priority.

단계(730)에서 CPU로부터 주변 장치로의 액세스 요청을 수신한 것에 응답하여, 저장 장치에 저장된 해당 주변 장치의 데이터를 CPU로 전달한다. 일 예시에서 단계(730)는, 도 6에 도시된 바와 같이, 데이터 캐시 장치(140)의 CPU 인터페이스(142)에서 CPU로부터 주변 장치로의 액세스 요청을 수신한 것에 응답하여 데이터 제어 장치(144)로 저장 장치(148)의 액세스를 요청하고, 데이터 제어 장치(144)의 제어 하에 저장 장치(148)로부터 해당 데이터를 수신함으로써 수행될 수 있다. 일 실시예에서 저장 장치(148)에 대한 액세스 요청은, 도 2에 도시된 바와 같이, 데이터 캐시 장치(200)의 중재부(240)에서 스테이트 머신(220)의 스테이트 및 소정의 우선순위에 따라 스케쥴링하여 저장 장치로 판독을 요청함으로써 액세스를 수행할 수 있다. In response to receiving the access request from the CPU to the peripheral device in step 730, data of the peripheral device stored in the storage device is transferred to the CPU. In one example, step 730 is the data control device 144 in response to receiving an access request from the CPU to the peripheral device at the CPU interface 142 of the data cache device 140, as shown in FIG. 6. By requesting access to the storage device 148 and receiving the corresponding data from the storage device 148 under the control of the data control device 144. In one embodiment, the request for access to the storage device 148, in accordance with the state and predetermined priority of the state machine 220 in the arbitration unit 240 of the data cache device 200, as shown in FIG. Access can be performed by scheduling and requesting a read from the storage device.

본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들을 참조하여 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 반송파(carrier wave)로 구체화되는 컴퓨터 데이터 신호 또는 반송파에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.While the invention and its various functional components have been described with reference to specific embodiments, the invention may be implemented in hardware, software, firmware, middleware, or a combination thereof, and the system, subsystem, components, or subs thereof. It should be understood that it can be utilized as components. If implemented in software, the elements of the invention are instructions / code segments for performing the necessary tasks. The program or code segments may be stored in a machine readable medium, such as a processor readable medium, a computer program product, or transmitted by a computer data signal or a signal modulated by a carrier that is embodied in a carrier wave. It can be sent over the link. Machine readable media or processor readable media may include any medium that can store or transmit information in a form readable and executable by a machine (eg, processor, computer, etc.).

이러한 본원 발명은 실시예를 참고하여 설명되고 도시되었으나, 당해 분야에서 통상적 지식을 가진 자라면, 첨부된 특허청구범위에 의해 정해지는 본원발명의 기술적 사상 및 범위를 벗어나지 않고 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. Although the present invention has been described and illustrated with reference to the embodiments, those skilled in the art, various modifications and equivalent other embodiments without departing from the spirit and scope of the present invention defined by the appended claims It will be appreciated that examples are possible.

본 발명에 따르면, 다음과 같은 효과를 얻을 수 있다.According to the present invention, the following effects can be obtained.

첫째, CPU에서 주변 장치로의 액세스 요청시 미리 저장된 주변 장치의 데이터를 CPU로 전송함으로써 주변 장치로의 액세스에 의한 지연을 줄여 컴퓨터 시스템의 전체적인 처리 속도를 향상시킬 수 있다. First, when a request for access from a CPU to a peripheral device is transmitted, data of a pre-stored peripheral device is transmitted to the CPU, thereby reducing the delay caused by access to the peripheral device, thereby improving the overall processing speed of the computer system.

둘째, 접속된 주변 장치의 업데이트 여부를 확인하여 업데이트된 경우 저장된 해당 주변 장치의 데이터를 업데이트함으로써 CPU의 액세스 요청시 직접 액세스 하는 것과 동일한 데이터의 전송이 가능하면서도, 업데이트된 경우에만 저장된 데이터를 업데이트하므로 전체 컴퓨터 시스템에 무리한 부하를 주지 않는다.Second, it checks whether the connected peripheral device is updated and updates the data of the peripheral device, if it is updated, so that the same data can be transmitted when the CPU requests access, but only the updated data is updated. Do not overload the entire computer system.

Claims (8)

CPU와 하나 이상의 주변 장치에 접속된 데이터 캐시 장치로서,A data cache device attached to a CPU and one or more peripherals, 상기 하나 이상의 주변 장치의 데이터를 저장하기 위한 저장 장치A storage device for storing data of the one or more peripheral devices 를 포함하고, Including, 상기 CPU에서 상기 주변 장치로 액세스가 요청되면, 상기 저장 장치에 저장된 상기 데이터를 상기 CPU로 전송하는, 장치.And send the data stored in the storage device to the CPU when access is requested from the CPU to the peripheral device. 제1항에 있어서, 상기 장치는 상기 주변 장치를 소정의 시간마다 액세스하여 상기 주변 장치의 데이터가 업데이트된 경우 상기 저장 장치의 데이터와 상기 업데이트된 주변 장치의 데이터를 동기화시키는, 장치.The device of claim 1, wherein the device accesses the peripheral device every predetermined time to synchronize data of the storage device with data of the updated peripheral device when the data of the peripheral device is updated. 제1항에 있어서, 상기 저장 장치는 캐시 램(cache RAM)을 포함하는, 장치.The apparatus of claim 1, wherein the storage device comprises cache RAM. CPU와 하나 이상의 주변 장치에 접속된 데이터 캐시 장치로서,A data cache device attached to a CPU and one or more peripherals, 상기 하나 이상의 주변 장치의 데이터를 저장하기 위한 저장 장치;A storage device for storing data of the one or more peripheral devices; 상기 CPU로부터 상기 주변 장치로의 데이터의 액세스 요청을 수신하기 위한 CPU 인터페이스; 및A CPU interface for receiving a request to access data from the CPU to the peripheral device; And 상기 수신된 액세스 요청에 응답하여 상기 저장 장치로부터 해당 데이터를 검색하고 상기 검색된 데이터를 상기 CPU 인터페이스로 전달하기 위한 데이터 제어 장치A data control device for retrieving corresponding data from the storage device in response to the received access request and transferring the retrieved data to the CPU interface 를 포함하고, 상기 CPU 인터페이스는 상기 데이터 제어 장치로부터 상기 검색된 데이터를 수신하여 상기 CPU로 전송하는, 장치.Wherein the CPU interface receives the retrieved data from the data control device and transmits the retrieved data to the CPU. 제4항에 있어서, The method of claim 4, wherein 상기 주변 장치에 연결되고, 상기 주변 장치를 소정의 시간마다 액세스하여 상기 주변 장치의 데이터가 업데이트된 경우 상기 데이터 제어 장치로 동기화 요청을 전송하기 위한 주변 장치 인터페이스Peripheral device interface connected to the peripheral device, for accessing the peripheral device every predetermined time to transmit a synchronization request to the data control device when the data of the peripheral device is updated 를 더 포함하고,More, 상기 데이터 제어 장치는, 상기 동기화 요청에 응답하여 상기 저장 장치의 해당 데이터를 업데이트시키는, 장치.And the data control device updates corresponding data of the storage device in response to the synchronization request. CPU와 주변 장치 사이에 연결된 데이터 캐시 장치에서 데이터를 전달하기 위한 방법으로서,A method for passing data in a data cache device connected between a CPU and a peripheral device, 상기 주변 장치의 데이터를 상기 데이터 캐시 장치 내의 저장 장치에 저장하는 단계, Storing the data of the peripheral device in a storage device in the data cache device, 상기 CPU에서 상기 주변 장치로의 액세스 요청을 수신한 것에 응답하여, 상기 저장 장치에 저장된 데이터를 상기 CPU로 전송하는 단계In response to receiving the access request from the CPU to the peripheral device, transmitting data stored in the storage device to the CPU. 를 포함하는, 방법.Including, the method. 제6항에 있어서, 상기 주변 장치의 데이터를, 상기 데이터 캐시 장치 내에 위치한 저장 장치에 저장하는 단계는,The method of claim 6, wherein storing the data of the peripheral device in a storage device located in the data cache device comprises: 상기 주변 장치를 액세스하여 상기 주변 장치의 데이터가 업데이트되었는지 여부를 확인하는 단계, 및Accessing the peripheral device to check whether data of the peripheral device has been updated; and 상기 주변 장치의 데이터가 업데이트된 경우, 상기 저장 장치에 저장된 상기 주변 장치의 데이터를 상기 업데이트된 주변 장치의 데이터와 동기화시키는 단계If data of the peripheral device is updated, synchronizing data of the peripheral device stored in the storage device with data of the updated peripheral device 를 포함하는, 방법.Including, the method. 제6항 또는 제7항 중 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터 실행가능한 명령어들을 저장하는 컴퓨터 판독가능 기록매체.A computer readable recording medium storing computer executable instructions for performing the method of claim 6.
KR1020060132032A 2006-12-21 2006-12-21 Apparatus and method for caching data KR20080058016A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060132032A KR20080058016A (en) 2006-12-21 2006-12-21 Apparatus and method for caching data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060132032A KR20080058016A (en) 2006-12-21 2006-12-21 Apparatus and method for caching data

Publications (1)

Publication Number Publication Date
KR20080058016A true KR20080058016A (en) 2008-06-25

Family

ID=39803723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060132032A KR20080058016A (en) 2006-12-21 2006-12-21 Apparatus and method for caching data

Country Status (1)

Country Link
KR (1) KR20080058016A (en)

Similar Documents

Publication Publication Date Title
KR100296633B1 (en) Dynamic deferred transaction mechanism
CN101939731B (en) Processing a variable length device command word at a control unit in an I/O processing system
CN107590099B (en) Method for accessing slave machines by multiple hosts, extension device and storage medium
US7340551B2 (en) Bridge permitting access by multiple hosts to a single ported storage drive
US7620747B1 (en) Software based native command queuing
US8244950B2 (en) Buffering non-posted read commands and responses
JP3857661B2 (en) Information processing apparatus, program, and recording medium
US20100287323A1 (en) Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
KR20160060527A (en) Pci device and pci system including the same
KR102168487B1 (en) Continuous read burst support at high clock rates
US20060168366A1 (en) Direct memory access control method, direct memory access controller, information processing system, and program
KR100195856B1 (en) Data-processing system with bidirectional synchronous multidrop data bus
US8589601B2 (en) I/O controller and descriptor transfer method
US20060212652A1 (en) Information processing device and data control method in information processing device
JPH05502526A (en) Enhanced VMEbus protocol using pseudo-synchronous handshaking and block mode data transfer
US20240078045A1 (en) Hardware queue handling system, method, solid state drive controller, and solid-state drive
US9584268B2 (en) Device level enablement of a communications protocol
CN111651396B (en) Optimized PCIE (peripheral component interface express) complete packet out-of-order management circuit implementation method
EP3036648B1 (en) Enhanced data transfer in multi-cpu systems
CN104866432A (en) Memory subsystem with wrapped-to-continuous read
US7600074B2 (en) Controller of redundant arrays of independent disks and operation method thereof
JP2010267259A (en) Memory device and unit for controlling the same
KR100843199B1 (en) High speed IDE interface device and method for the same
US9003129B1 (en) Techniques for inter-storage-processor cache communication using tokens
CN109634532B (en) Method for sharing access storage medium by multiple VxWorks hosts

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination