KR20080058016A - Apparatus and method for caching data - Google Patents
Apparatus and method for caching data Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
Description
도 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
전술한 바와 같이, 종래 컴퓨터 시스템(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
컴퓨터의 다양한 활용으로 주변 장치로의 연결이 점점 더 많아지고 있는 상황에서, 급격히 빨라지고 있는 컴퓨터의 처리 속도를 완전히 효율적으로 활용하기 위해서는 이와 같은 주변 장치로의 액세스에 의한 병목 효과를 줄이는 것이 요구된다.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
도 1에 도시된 CPU(120)는 주변 장치(160_1, 160_2, ..., 160_ n) 및 다양한 입력 장치(미도시)로부터 데이터를 수신하여 처리한 후, 그 결과를 주변 장치(160_1, 160_2, ..., 160_ n) 및 다양한 출력 장치(미도시)로 전송하는 일련의 과정을 제어하고 조정하는 장치이다. CPU(120)는 전술한 작업을 수행할 수 있는 공지된 장치 또는 앞으로 개발될 장치를 모두 포함하며, 본 명세서에서 그 상세한 설명은 생략한다.The
데이터 캐시 장치(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
CPU 인터페이스(142)는 CPU(120)에 접속되어 CPU(120)의 주변 장치(160_1, 160_2, ..., 160_ n)로의 액세스 요청을 검출하고, 해당 주변 장치에 대한 선택 신호(chip select)를 발행한다. 이후, 액세스 요청된 데이터 및 처리 완료 신호를 데이터 제어 장치(144)로부터 수신하여 CPU(120)로 전달한다. The
주변 장치 인터페이스(146)는 접속된 주변 장치(160_1, 160_2, ..., 160_ n)로 소정의 시간마다 액세스를 하여 주변 장치(160_1, 160_2, ..., 160_ n)에서의 데이터 업데이트 여부를 확인하고, 데이터 업데이트가 확인된 경우 데이터 제어 장치(144)로 데이터의 동기화(synchronization), 즉 해당 주변 장치의 데이터와 저장 장치(148)에 저장된 해당 장치의 데이터가 일치되도록 저장 장치(148)의 데이터를 업데이트하라는 요청을 전송한다.The
데이터 제어 장치(144)는 CPU 인터페이스(142)에 연결되어 CPU 인터페이스(142)로부터 주변 장치로의 데이터의 액세스 요청을 수신한다. 데이터 제어 장치(144)는 이와 같은 액세스 요청 수신에 응답하여, 중재(arbitration), 긴급 액세스 요청(urgent access request), 저장 장치(148)로의 액세스, 즉 저장 장치(148)에서 요청되는 해당 주변 장치의 데이터를 검색 및 판독하는 작업 및 요청된 데이터가 처리 완료되었음을 나타내는 신호(Dtack signal) 발행 등을 수행한다. 데이터 제어 장치(144)는 또한, 주변 장치 인터페이스(146)에 연결되어 주변 장치 인터 페이스(146)로부터 어느 주변 장치에 대한 데이터 동기화 요청을 수신한다. 데이터 제어 장치(144)는 데이터 동기화 요청 수신에 응답하여, 저장 장치(148)에서 해당 주변 장치에 대한 데이터를 업데이트시키는 작업을 수행한다.The
접속 인터페이스는(150)는 데이터 캐시 장치(140)와 주변 장치(160_1, 160_2, ..., 160_ n) 간의 연결을 담당한다. 접속 인터페이스(150)는 프린터나 디스플레이 장치와 같이 해당 주변 장치를 위한 전용 인터페이스를 포함한다. 접속 인터페이스(150)는 RS-232C와 같은 범용 직렬 인터페이스 및 하드 디스크나 MO 등의 보조 저장 장치를 위한 SCSI 또는 IDE를 포함하나, 본원의 접속 인터페이스(150)가 이로써 한정되는 것은 아니다.The
주변 장치(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
스테이트 머신(220)에 저장되는 스테이트는, 예컨대 업데이트 스테이트(update), 판독 스테이트(read) 및 유휴 스테이트(idle)를 포함할 수 있다. 업데이트 스테이트는 주변 장치와 저장 장치의 동기화를 위하여 해당 장치에 대한 저장 장치(148)의 데이터를 업데이트 하고 있음을 의미한다. 판독 스테이트는 해당 장치에 대한 저장 장치(148)의 데이터가 CPU의 요청에 의해 판독되고 있음을 의미한다. 유휴 스테이트는 해당 장치 또는 CPU 어느 것과도 액세스하고 있지 않은 상태를 의미한다. 스테이트 머신(220)은, 예컨대 RAM 등의 기억 장치를 포함하여 스테이트를 저장할 수 있다.The state stored in the
중재부(240)는 수신된 요청 신호에 응답하여 스테이트 머신(220)의 스테이트 및 소정의 우선순위에 따라 동작을 스케쥴링하고, 스테이트 머신(220)의 스테이트를 천이시킨다. 표 1은 스테이트 머신(220)의 스테이트에 따라 데이터 중재부(240)가 요청을 처리하는 내용 및 스테이트 천이의 일 예시를 정리한 표이다.The
표 1에 도시된 바와 같이, 중재부(240)는 유휴 스테이트에 있는 장치에 대하여 업데이트부(280)부터 데이터 동기화 요청이 수신된 경우, 스테이트 머신(220) 내 해당 장치의 스테이트를 업데이트로 변경하고, 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 기록 요청 신호를 전달한다. 일 실시예에서, 중재부(240)는 CPU의 액세스 요청에 의해 판독 중인, 즉 판독 스테이트에 있는 장치에 대하여 업데이트 요청이 수신된 경우, 판독이 완료될 때까지 저장 장치(148)의 데이터 업데이트를 보류할 수 있다. 판독이 완료되면, 중재부(240)는 스테이트 머신(220) 내 해당 장치의 스테이트를 업데이트로 변경하고 저장 장치(148)로 해당 장치에 대한 캐시 주소 및 캐시 기록 요청 신호를 전달한다. As shown in Table 1, when the
마찬가지로, 중재부(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
일 실시예에서, 중재부(240)는 저장 장치(148)에 대해 현재 수행 중인 동작이 완료한 경우, 보류된 동작 유무를 확인하여 보류된 동작이 있는 경우, 소정의 우선순위에 따라 동작을 수행하고 보류된 동작이 없는 경우, 스테이트 머신(320) 내 해당 장치의 스테이트를 유휴로 변경한다. In one embodiment, the
이와 같이, 본 발명의 실시예에 따르면, 저장 장치에 주변 장치의 데이터를 저장해 두고, 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
도 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
도 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
데이터 제어 장치(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
이와 같이 본 발명의 실시예에 따르면, 소정의 주기로 데이터 캐시 장치에 저장된 데이터를 주변 장치와 동기화함으로써 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 인터페이스(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
데이터 제어 장치(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
CPU 인터페이스(142)는 데이터 제어 장치(144)로부터 데이터(cache_data)(632) 및 처리 완료 신호(cache_dtack)(633)를 수신한 것에 응답하여 CPU로 수신된 신호들을 전달한다((cpu_data)(634) 및 처리 완료 신호(cpu_dtack)(635)).The
도 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
단계(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
본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들을 참조하여 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 반송파(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)
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) |
-
2006
- 2006-12-21 KR KR1020060132032A patent/KR20080058016A/en not_active Application Discontinuation
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 |